エクセルマクロ・VBA入門 第2回:メッセージボックスを使おう!

こんにちは、「仕事を楽に回そう!」デスクワークラボの吉井良平です。

「ノンプログラマーのためのエクセルマクロ・VBA講座」の第2回は、メッセージボックスを使おう!ということで、今回から実際にプログラムを書いていきます。

簡単なプログラムなので、あまり面白いものはできませんが、無理やり(?)面白要素を足してみました^^

ということで、メッセージボックスというのをマスターしましょう!

msgbox作成例

マクロを作り始める準備

 

前回の第1回目の講座で、ビジュアルベーシックエディターを立ち上げましたね。

まずは、その通りにビジュアルベーシックエディター(以下、VBEと略します)を立ち上げてください。

*立ち上げ方が分からない方は、第1回目の記事をチェック

 

VBEを立ち上げたら、プログラムを書きながらエクセルの画面も確認できるよう、VBEのウインドウの大きさを調整して下さい。

(大きさは適当で良いです。大体の大きさは、下の画像を参考にしてくださいね。)

VBE大きさ調整

大体。このぐらいの大きさで

こういう時は、画面の大きいパソコンの方がやりやすいです^^

 

実際にマクロを書いていきましょう

 

準備ができたので、実際にマクロを書いていきましょう!

VBEの画面に、「Sub メッセージ」 と入力して、エンターキーを押してください。

Sub と マクロ名(今回は ”メッセージ”)の間には、スペースを空けます。

Subは、大文字でも小文字でも大丈夫です。自動的に VBE が変換してくれます。

ここまでの解説

たった10秒ぐらいの作業ですが、とても重要なので解説をしますね。

 

マクロの始まりと終わり

1つのマクロは、Subで始まって、End Subで終わります。

マクロの始まりが Sub で、終わりが End Sub です。

この間に、プログラムを書いていきます。

専門用語では、プロシージャといいますが、今のところ覚えなくても大丈夫です。

 

なお、Sub マクロ名 を押してエンターキーを押すと、End Subは自動的に出てくるので、自分で入力する必要はありません。

 

マクロ名にも決まりがある

Sub の後ろに書いた「メッセージ」というのが、今回のマクロの名前です。

マクロの名前には、

  • 先頭に数字が使えない
  • 途中にスペースを入れられない ( _ アンダースコアで代用)
  • ?や! などの記号は使えない
  • プログラムで使われる言葉(If とか Do とか)は使えない

などの決まりがあります。

最初のうちは、覚えるのが大変なので、日本語の名前にしておけば間違いありません。

 

マクロの名前は、そのマクロの中身が分かるような名前にしましょう。

「鼻くそ」とか、変な名前にしても大丈夫ですが、それだと何のマクロだか分かりませんし、人から見られた時に恥ずかしいです^^

なお、名前の後の () は自動で入力されるので、自分で入力する必要はありません。

 

メッセージボックスを表示させよう

 

メッセージを表示させるには、MsgBox関数という関数を使います。

かんたんにいうと、MsgBoxという命令をエクセルにすると、メッセージボックスが表示されるということです。

 

文字を表示させよう

先ほどのマクロの中に、Msgbox と入力して、その後に表示させたい言葉を””(ダブルコーテーション)で囲ってください。

大文字小文字は自動的に変換されるので、msgbox とすべて小文字で入力してOKです。

msgboxを使ってみた

言葉は何でも良いので入力してください

VBAを勉強していくのに、やる気の出る言葉を入力してみました^^

この状態で、上の方にある実行ボタンを押すと・・・

msgboxの実行

実行ボタンを押す

エクセルの画面に、こんな表示が出てきましたよね。

Msgbox使用例2

これで、メッセージボックスを使うことができるようになりましたね!

 

 

このメッセージボックスはどんな時に使うかというと、マクロが終了した時に「処理が完了しました」と表示させる時に、よく使います。

また、途中で何か不備があって、強制的にマクロを終了させる時に、エラー内容を表示して終了させる時にも使います。

あとは、ここに「OK」だけじゃなくて「はい」「いいえ」のボタンを出すこともできるので、「はい」と「いいえ」で処理を分ける時にも使えますが、それは少し難しいので今回は紹介しません。

今回は、文字を表示させる場合には、ダブルコーテーションで囲むということを覚えておいてください。

 

数字も表示できます

メッセージボックスには、文字だけじゃなくて数字も表示させることができます。

数字を表示させる場合は、ダブルコーテーションは必要ありません。

逆に言うと、” ”で囲ってあるものを、VBAでは文字列と判断します。

 

また新しく、Sub マクロ名で、一つマクロを作ってみてください。

先ほどのマクロのEnd Subの下の行に、Subと入力し始めればOKです。

 

数字をメッセージボックスに表示させるプログラムは、このようになります。

Msgboxで数字を表示

数字を表示させるプログラム

マクロ名は、良い子のみんなはマネしないでくださいね^^ これでも動くという例です。

これで実行すると、次のようなメッセージボックスが出てきますね。

msgboxで数字を表示

2が表示されます

 

計算結果も表示できます

計算に関しては、また別の回で詳しく取り上げますが、四則計算(足し算、引き算、かけ算、割り算)は普通のエクセルと同じ記号を使います。

そんなに難しくないと思うので、ここで例を出しますね。

先ほどのマクロを少し変えて、数字の部分を足し算にしてみます。

msgboxで計算結果を表示

足し算にしてみました

そうすると、ちゃんと足し算の結果が表示されています。

msgboxで足し算

足し算の結果が表示された

文字と数字の違い

文字はダブルコーテーションで囲って、数字は囲まないということでしたよね。

これをおさらいするために、また新しいマクロを作ってみます。

msgbox文字と数字

数字として表示する場合と、文字として表示する場合

上側の方は、2+3 を、ダブルコーテーションで囲っていません。

下側の方は、2+3 を、ダブルコーテーションで囲みました。

なお、プログラムを続けて書く場合は、上の例では1行空けていますが、別に空けなくても大丈夫です。2行空けても、3行空けても大丈夫です。

自分が読みやすいように改行してくださいね。

 

さておき、先ほどのプログラムを実行すると、1回目のメッセージボックスと2回目のメッセージボックスで表示に違いがでてきます。

数字として表示させる場合

1回目:計算結果が表示

計算式の表示

2回目:計算式が表示される

 

ちょっと難しいかもしれませんが、ダブルコーテーションで囲むと文字として認識されるということが、分かっていただけたんじゃないかと思います。

 

今回のまとめ

 

  • 一つのマクロは、Subで始まり、End Subで終わります。
  • マクロ名の付け方には決まりがあります。日本語の名前をつけておけば、決まりから外れることはありません。
  • MsgBox関数で、メッセージボックスを表示させます。
  • 表示する内容が文字の場合は、” ” ダブルコーテーションで囲みます。
  • 表示する内容が数字の場合は、ダブルコーテーションで囲まず、そのまま数字を入力します。

です。

コード(プログラム)をコピペできるようにしても良いのですが、覚えるためには実際に手を動かした方が良いので、今回はコードの表示はありません。

(と言っても、たいして入力することはありませんけど!)

 

一つずつ着実にマスターしていくために、ご自分の好きな言葉をいくつかメッセージボックスに表示させてみてくださいね。

 

次回は、セルに値を入れたり、消したりする方法です。

エクセルマクロ・VBA講座 第3回:セルに値を入れる・消す

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

昭和48年広島県生まれ。現在も広島に住んでいます。 趣味は音楽鑑賞(邦楽、洋楽問わず、クラシック、童謡も)、マンガです。エクセルを効率的に使う方法を紹介して、あなたのお役に立ちたいと思っています。