前回の記事ではVBAの概要やExcelでVBAを学習するための設定変更について学習しました
今回から実際にVBAのプログラムを書いていきたいと思います
まずはExcelを開いて「開発」タブのリボン左端の「Visual Basic」ボタンをクリックし「Microsoft Visual Basic for Applications」画面を起動して、その画面の「挿入」タブの「標準モジュール」を選択してプログラミングの準備をしましょう

挨拶1(出力)
最初はシンプルに挨拶を出力するプログラムを書いてみましょう
VBAはSub プログラム名()で始まりEnd Subで終わる構成で、その間の箇所にプログラムを書きます
今回は「挨拶1」というプログラム名にしようと思います
sub 挨拶1 まで書いてEnterキーを押すと自動でsub 挨拶1 の後に()と最終行にEnd Subが追加されます
また、全て小文字で入力しても自動的にsubとendの先頭の文字が大文字に変換されます
_プログラム名入力例.gif)
なおプログラム名は記号を含んだ名前「挨拶@1」や数字で始まる名前「1挨拶」はエラーとなります
また、VBAのプログラムで使用する特定のキーワード(「dim」や「for」や「sleep」など多数)は「予約語」と言ってプログラム名として使えなくなっているので使用するとエラーとなります
もしプログラム自体に問題が無さそうなのにエラーが発生する場合はプログラム名が原因の可能性があるので別のプログラム名を試してみましょう

では、続いてSub 挨拶1() ~ End Subで挟まれた部分にプログラムの内容を書いていきます
ここでは「こんにちは」というメッセージを表示するだけのプログラム内容にしたいので、以下のようにプログラムを書きましょう

MsgBoxとはメッセージボックスというメッセージ出力用の画面を呼び出すプログラムで、MsgBoxの後ろに書いた文字や数字を表示します
なお、文字の場合はダブルクォーテーションという記号「”」で文字の前後を挟む必要があります
また、Sub 挨拶1()~End Subで挟まれた部分がプログラムの内容だという事を分かりやすくするためにキーボードのTabキーを押して左端から一定の隙間を空けましょう
この一定の隙間のことをインデントと言い、無くてもエラーにはなりませんがあった方がプログラムが読みやすいのでインデントを必ず空けるように癖をつけましょう
では実際にプログラムを実行して動かしてみましょう
実行方法として以下の2つのどちらかを実施してください
・キーボードのF5キーを押す(F5キーだけで実行できない場合はFnキー + F5キーを押す)
・プログラムの上の▶マークをクリックする

実行すると以下のように「こんにちは」というメッセージがExcelの現在のsheet上に表示されます

MsgBoxを2行続けてプログラムを書くとメッセージボックスが2連続で表示されます
また、MsgBoxの後ろが数字の場合はダブルクォーテーション記号は不要です
MsgBox2連続.gif)
コメントの書き方
プログラムを読む人に向けて説明をしたい時にはコメントを残すと良いでしょう
コメントはプログラム中にシングルクォーテーションという記号「 ‘」を入力すると、それ以降右側から行の最後まで全てコメント扱いとなりプログラムの実行には影響しません
コメントは書き終えてカーソルを違う行へ移動したタイミングで緑色になります
_コメントの書き方.gif)
プログラムの読みやすさのことを「可読性」と言いますが、先ほどのインデントやコメントを丁寧に付けることで「可読性」が高い読みやすいプログラムになります
プログラミングが上手な人ほど綺麗なプログラムを書く人が多いのでプログラムを見やすく書くように意識することが大切です
上記のプログラムと同じ内容を以下に記載します
なるべく自分でプログラムを書いた方が良いですがうまく動かなかった方は以下をコピーして「Microsoft Visual Basic for Applications」の画面に貼り付けて正しく動くことを確認してください
Sub 挨拶1()
MsgBox "こんにちは"
MsgBox 4649 '4649は「よろしく」という意味です
End Sub
VBAのプログラムを含むExcelブックの保存方法
VBAのプログラムを含むExcelブック(Excelファイル)を保存する場合は必ずファイルの種類を「Excelマクロ有効ブック(*.xlsm)」にしてください
普段の「Excelブック(*.xlsx)」で保存するとVBAのプログラムは残らず消えてしまいます

ちなみにマクロとはExcelのVBAプログラムを自動的に作成してくれる機能のことですが、上記のファイルの種類の「Excelマクロ有効ブック」については「ExcelのVBAプログラムを含んでいるブック」という意味でとらえてください
VBAのプログラムを含むExcelブックをインターネット経由で入手して開く方法
VBAのプログラミングを使えば色々なことが出来るので非常に便利ではありますが、逆に色々なことが出来てしまうため悪意のある人がVBAにウイルスのような悪さをするプログラムを仕込んでいる場合があります(そのようなプログラムを「マクロウイルス」と呼びます)
そのため、ExcelはインターネットからダウンロードしたVBAを含むExcelブックに対して、標準ではマクロを無効(VBAプログラムを無効)にする設定となっており、そのまま開いて「保護ビュー」の「編集を有効にする」をクリックしても以下のような警告メッセージが表示されます
※保護ビューについては「Excel(実践5)選手一覧」で説明しております

そのままVBAのプログラムを実行すると以下の警告メッセージが表示され実行出来ません

もしインターネット経由でダウンロードしたVBAのプログラムを含むExcelブックでVBAのプログラムを実行したい場合は、Excelブックを右クリックして「プロパティ」を選択し、「プロパティ」画面の「全般」タブの下のセキュリティの項目の「☑許可する」にチェックを付けて「OK」ボタンをクリックしてください
※ただし、Excelブックの出典元が安全であることが明確に分かっている場合に限ります
※良くわからないサイトや知らないメールアドレスから入手したExcelブックでは許可してはいけません

今回はVBAのプログラミングと言うよりVBAの書き方のルールやVBAを含んだExcelブックの扱い方について学習しました
次回から本格的なVBAのプログラミング学習に入って行こうと思います
コメント