【第6講】Excelマクロで電卓を自作しよう③(InputBox)

インプットボックス
スポンサーリンク

こんにちは!かいけつマクロです!

今回は、前回作った電卓Ver1に対し、インプットボックスを導入していきます。

このインプットボックスを使えば、電卓がとっても使いやすくなります!それでは、今回も張り切っていきましょう!

スポンサーリンク

インプットボックスから、数字や四則演算を入力できるようにする

それでは、インプットボックスを作っていきます!

・・・と言っても、「インプットボックス」って何?という方も多いはず。それは、こんなものです!

インプットボックスのイメージ

マクロを実行すると、このようなポップアップが上がります。そこに値を入力することで、

インプットボックスに入力した内容が反映された

このように、入力した内容が反映されます。(ちゃんと計算結果6+2=8も反映できてますね!)

インプットボックスを実装する

それでは実際に、インプットボックスを実装してきましょう!

とは言っても、ここまでしっかりと読んで・実践してきていただいた皆さんであれば、おちゃのこさいさいだと思います。インプットボックスのプログラムは、こちら!

a = InputBox(“1つ目の数字を入力”)

それでは、1つ1つ見ていきましょう。

左側の「a」は、第4講で定義した変数aなので、大丈夫そうですかね?(つまり、aは、何かしらの入れ物です)

このあたりちょっと不安だなー

という方は、第4講をおさらいしてみましょう。

そして、問題は、右側ですが、、、そのまんまですね。上でみた、インプットボックスの画像と一緒に見てみましょう。

InputBox(×××)の、「×××」の部分が表示される

インプットボックスで入力してほしい内容を、InputBox(×××)の「×××」の部分に書く、ということですね!

それでは、この調子で、変数a以外も、InputBoxを実装していきましょう。

第5講までで作成した電卓Ver1のExcelマクロのコードを用意し、以下の要領でコードの追加を行ってください。

●コードを追加する場所:「変数定義(Dim)の塊」と、「a・b・operatorの代入処理の塊」の間

●追加するコード:

'1つ目の数字
a = InputBox("1つ目の数字を入力")

'やりたい計算(+、-、×、÷)
operator = InputBox("やりたい計算の種類(+、-、×、÷)を入力")

'2つ目の数字
b = InputBox("2つ目の数字を入力")

実際のVBEの画面は、こんな感じです。

InputBoxの処理を追加

インプットボックス導入による、追加修正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
セルへの反映処理を実装完了

お疲れさまでした!

これで、インプットボックスから、数字や四則演算を入力できるようになりました!ぜひ、いろいろ動かして、正しく計算されるか試してみましょう!

本日のまとめ

今回は、インプットボックスを導入して、電卓をパワーアップしてきました。

何度か触ってみた方は、いかがですか?いちいちセルに入力するよりも、思っているより楽チンだったりしますよね!

これは余談になりますが、実際のマクロ開発も、今回のインプットボックスのように、

  • 使っている人はどんな機能が必要なんだろう
  • どうやったら使っている人が使いやすいんだろう

ということを、考えながら、設計・開発を進めていくことになります。今回のブログを通し、「使い手」という目線も頭の片隅にでも置いてもらえれば、とてもうれしいです!

ぜひ、また次回のブログでお会いしましょう。それでは!

本日の学びポイント
  • インプットボックスは、ユーザに、ポップアップで入力してもらうときに使う
  • 複数行をまとめてコメントアウトするときは、コメントブロックをクリック
  • 「使い手」のことを考えながら、設計・開発を進めることが大切!

コメント

タイトルとURLをコピーしました