こんにちは!かいけつマクロです!
今回は、前回作った電卓Ver1に対し、インプットボックスを導入していきます。
このインプットボックスを使えば、電卓がとっても使いやすくなります!それでは、今回も張り切っていきましょう!
インプットボックスから、数字や四則演算を入力できるようにする
それでは、インプットボックスを作っていきます!
・・・と言っても、「インプットボックス」って何?という方も多いはず。それは、こんなものです!
マクロを実行すると、このようなポップアップが上がります。そこに値を入力することで、
このように、入力した内容が反映されます。(ちゃんと計算結果6+2=8も反映できてますね!)
インプットボックスを実装する
それでは実際に、インプットボックスを実装してきましょう!
とは言っても、ここまでしっかりと読んで・実践してきていただいた皆さんであれば、おちゃのこさいさいだと思います。インプットボックスのプログラムは、こちら!
a = InputBox(“1つ目の数字を入力”)
それでは、1つ1つ見ていきましょう。
左側の「a」は、第4講で定義した変数aなので、大丈夫そうですかね?(つまり、aは、何かしらの入れ物です)
このあたりちょっと不安だなー
という方は、第4講をおさらいしてみましょう。
そして、問題は、右側ですが、、、そのまんまですね。上でみた、インプットボックスの画像と一緒に見てみましょう。
インプットボックスで入力してほしい内容を、InputBox(×××)の「×××」の部分に書く、ということですね!
それでは、この調子で、変数a以外も、InputBoxを実装していきましょう。
第5講までで作成した電卓Ver1のExcelマクロのコードを用意し、以下の要領でコードの追加を行ってください。
●コードを追加する場所:「変数定義(Dim)の塊」と、「a・b・operatorの代入処理の塊」の間
●追加するコード:
'1つ目の数字
a = InputBox("1つ目の数字を入力")
'やりたい計算(+、-、×、÷)
operator = InputBox("やりたい計算の種類(+、-、×、÷)を入力")
'2つ目の数字
b = InputBox("2つ目の数字を入力")
実際のVBEの画面は、こんな感じです。
インプットボックス導入による、追加修正2点
さて、これで、変数a、b、operatorを、第5講までは、セルの値から取得していたのですが、インプットボックスから入力するよう変更できました!
そこで、実はなのですが、次の2つの修正が追加で必要になります。
- セルから、変数a、b、operatorに代入するための処理の削除
- インプットボックスの内容を、Excelシートに反映する処理の追加
なんのこっちゃ!
という感じだと思うので、1つ1つ見ていきましょう。
まず、1点目は、要らなくなったコードの削除です。Deleteボタンで消してしまってもよいのですが、ぜひ、「コメント」を使ってみましょう。複数行をまとめてコメントアウトするには、
- コメントアウトしたい箇所を選択して、
- VBEの上部にある、「コメントブロック」をクリック
すればOKです。
知らないと、1行ずつコメント化する羽目になるので、
超効率的ですね
イメージはこんな感じ。
続いて、2点目、「インプットボックスの内容を、Excelシートに反映する処理の追加」です。こちらは、なんとなくやり方のイメージがついている方も多いのではないでしょうか。
・・・そうです!第5講でもやった、「セルへの値の反映」、つまり、代入処理を使えばOKです。
それでは、実際に記述していきましょう。
'1つ目の数字
a = InputBox("1つ目の数字を入力")
Cells(4, 2).Value = a
'やりたい計算(+、-、×、÷)
operator = InputBox("やりたい計算の種類(+、-、×、÷)を入力")
Cells(4, 3).Value = operator
'2つ目の数字
b = InputBox("2つ目の数字を入力")
Cells(4, 4).Value = b
お疲れさまでした!
これで、インプットボックスから、数字や四則演算を入力できるようになりました!ぜひ、いろいろ動かして、正しく計算されるか試してみましょう!
本日のまとめ
今回は、インプットボックスを導入して、電卓をパワーアップしてきました。
何度か触ってみた方は、いかがですか?いちいちセルに入力するよりも、思っているより楽チンだったりしますよね!
これは余談になりますが、実際のマクロ開発も、今回のインプットボックスのように、
- 使っている人はどんな機能が必要なんだろう
- どうやったら使っている人が使いやすいんだろう
ということを、考えながら、設計・開発を進めていくことになります。今回のブログを通し、「使い手」という目線も頭の片隅にでも置いてもらえれば、とてもうれしいです!
ぜひ、また次回のブログでお会いしましょう。それでは!
コメント