マクロ(VBA)のコードを
実際に書いてみましょう。
VBA導入編では、マクロ(VBA)の概要や「モジュール」・「オブジェクト」・「メソッド」といった用語に加え、コードを書く際のコツについて解説してきました。
これだけ予備知識が揃えば、いよいよ実践です。
といっても、いきなり難しいことから始める必要はありません。
まずは簡単なコードを書いて、その意味をしっかり理解していくことから始めましょう。
1つ1つ着実に意味を理解し、自分の中でコード化できる操作を増やしていきましょう。
コード化できる操作が増えれば増えるほど、自動化の幅は広がります。
何にでも言えることですが、自分でできることが増えてくると、それは自信にも繋がりますし
マクロ(VBA)が面白いと感じるようになってくると思います。
僕の場合、最初に焦ってサンプルコードの全体を理解しようとして、わからないことだらけで挫折しそうでした。
アプローチの仕方を変えて、どんなことができるのか1つずつ覚えていこうと考えるようになってから、マクロ(VBA)の勉強が楽しくなっていきました。
自分で使える技が増えていくような気持ちで、楽しみながらコードを覚えられました。
あまり焦らず、楽しみながら勉強するというのも大事だと思います。
この記事では、 マクロ(VBA)のコードを初めて書くという方のために、セルに文字を入力する方法・メッセージボックスを表示する方法を、僕が当時知りたかったことも含めてまとめてあります。
今、 「 マクロ(VBA)のコードを実際に書いてみたい 」と考えている方がマクロ(VBA)のコードを書き始めるきっかけとなれば幸いです!
① セルに文字を入力する・メッセージボックスを表示する 【基本編】
セルに文字を入力するコードの書き方
マクロ(VBA)で、セルに文字を入力するコードは以下の通りです。
実際にVisual Basic Editerに記載して、マクロを実行してみてください。
A1セルに、「ボーン・レス」と表示されるはずです。
「Visual Basic Editer 」と「マクロの実行」については「Excelマクロ(VBA)実際の流れを知る」を参照してください。
‘A1セルに「ボーン・レス」と入力する
Range(“A1”) = “ボーン・レス”
End Sub
直感的に、A1セルに「ボーン・レス」と入力するということが、なんとなくわかると思います。
文字を入力するコードは、Rangeオブジェクト = “入力したい文字” の形式です。
この形を覚えてしまいましょう。
「オブジェクト」については、「Excelマクロ(VBA)オブジェクトとメソッド」を参照してください。
メッセージボックスを表示するコードの書き方
マクロ(VBA)で、 メッセージボックスに文字を入力するコードは以下の通りです。
実際にVisual Basic Editerに記載して、マクロを実行してみてください。
「ボーン・レス」と記載されたメッセージボックスが表示されるはずです。
「Visual Basic Editer 」と「マクロの実行」については「Excelマクロ(VBA)実際の流れを知る」を参照してください。
Sub メッセージボックス()
‘「ボーン・レス」と記載されたメッセージボックスを表示する
MsgBox “ボーン・レス”
End Sub
「Msgbox」が文字通り「メッセージボックス」を意味しています。
その「Msgbox」には、「ボーン・レス」と表示するコードになります。
② セルに文字を入力する・メッセージボックスを表示する 【応用編】
セルに入力されている文字を、メッセージボックスに表示する
先程は、セルに文字を入力する方法を解説しました。
その応用として、セルに文字を入力し、その文字を更にメッセージボックスに表示させる方法を解説します。
セルに入力されている文字を、メッセージボックスに表示させるコードは以下の通りです。
実際にVisual Basic Editerに記載して、マクロを実行してみてください。
「ボーン・レス」と記載されたメッセージボックスが表示されるはずです。
「Visual Basic Editer 」と「マクロの実行」については「Excelマクロ(VBA)実際の流れを知る」を参照してください。
‘A1セルに「ボーン・レス」と入力
Range(“A1”) = “ボーン・レス”
‘A1セルの値(この場合は「ボーン・レス」)が記載されたメッセージボックスを表示する
MsgBox Range(“A1”).Value
End Sub
【実行結果】
プロパティについて
A1セルに文字を入力させるところまでは先程と同様です。
変わったのは、「MsgBox Range(“A1”).Value」の部分です。
「.Value」の部分をプロパティと言います。
「プロパティ」はよく、「属性」なんて言い方をしますが、初めのうちはイメージが湧きにくいと思います。
なので僕は、「プロパティ」を「オブジェクトの種類」と捉えるようにしています。
セル(Rangeオブジェクト)には、セルの値(あたい)、色、罫線、文字の色など、操作できる対象にいろいろな種類がありますよね。
「.Valueプロパティ」は、「値(あたい)」の意味です。
なので、 「.Valueプロパティ」 は「Rangeオブジェクトの値(あたい)」と考えるとイメージしやすくなると思います。
メッセージボックスのいろいろ
先程は、「OKボタン」のみのシンプルなメッセージボックスを表示させましたが、メッセージボックスには様々な種類があります。
以下はその内の、よく使うものの一覧です。
【ボタンに関するコード】
コード | ボタンの種類 |
vbOKOnly | 「OK」ボタンのみ表示する |
vbOKCancel | 「OK」と「キャンセルボタン」を表示する |
vbYesNo | 「はい」と「いいえ」ボタンを表示する |
vbYesNoCancel | 「はい」と「いいえ」と「キャンセル」ボタンを表示する |
【アイコンに関するコード】
コード | アイコン |
vbCritical | 警告アイコンを表示する |
vbQuestion | 問い合わせアイコンを表示する |
vbExclamation | 注意アイコンを表示する |
vbInformation | インフォメーションアイコンを表示する |
「OK」ボタンと「キャンセル」ボタンを表示する
先程の一覧の中の、「vbOKCancel」を使って「OK」ボタンと「キャンセル」ボタンの付いたメッセージボックスを表示させます。
コードは以下の通りです。
Sub OKボタンとキャンセルボタン()
MsgBox “ボーン・レスデ部に入部しますか?”, vbOKCancel
End Sub
【実行結果】
このように、メッセージボックスに表示するボタンを「OK」と「キャンセル」ボタンにしたい場合には、表示させたい文字の後ろに「, vbOKCance」を付けます。
「, vbYesNo 」なら、「はい」と「いいえ」ボタンが表示されます。
先程の一覧を参考に任意のものを設定してください。
この候補から任意のものをダブルクリックして入力することも可能です。
メッセージボックスにアイコンを付ける
先程の一覧の中の、「vbQuestion」を使ってアイコンの付いたメッセージボックスを表示させます。
コードは以下の通りです。
Sub アイコンを付ける()
MsgBox “ボーン・レスデ部に入部しますか?”, vbOKCancel + vbQuestion
End Sub
【実行結果】
このように、ボタンの種類の後ろに「+ vbQuestion」を付けるとメッセージボックスにアイコンが付与されます。
ボタンの種類と同じように、「+」を入力した時点でメッセージボックスのオプション候補が表示されますので、そこから選択することも可能です。
メッセージボックスのタイトルを指定する
最後に、メッセージボックスにタイトルを指定して表示させます。
コードは以下の通りです。
Sub タイトル指定()
MsgBox “ボーン・レスデ部に入部しますか?”, vbOKCancel + vbQuestion, “入部の意思”
End Sub
【実行結果】
このように、末尾に「, “タイトルにしたい文字”」を付けるとメッセージボックスにタイトルを指定することができます。
③まとめ
Range(“A1”) = “表示させたい文字”
メッセージボックスを表示させるコードは、
MsgBox “表示させたい文字”
セルの値をメッセージボックスに表示させるコードは、
MsgBox Range(“A1”).Value
この記事では、「セルに文字を入力する・メッセージボックスを表示する方法」について解説しました。