[Excel2013 で VBA] 初めての VBA (2)

前ページで記述した VBA ソースコードをもとに若干の補足を加えてゆく。


保存と読み込み

記述したプログラムについて堀り下げる前に、VBA で記述したプログラムを保存し、それを起動する方法を学ぼう。
通常の Excel ファイルの保存と読み込みに比べると若干癖があるので注意しよう。

まず、Visual Basic の画面のままでは保存ができないので、Visual Basic から Excel に戻る必要がある。

そのため、下図の「Miscrosoft Excel」ボタンをクリックしよう。



そして、Excel の左上の ファイル タブ をクリックしよう。



ここで「名前を付けて保存」を選択し、さらに、保存先を「最近使用したフォルダー」や「参照」から選択する。



保存するときに、「ファイルの種類」として「Excel マクロ有効ブック (*.xlsm)」を選択することに注意。





次に、保存したファイルを読み込んで起動してみよう。ファイルをダブルクリックすると、
以下のようにセキュリティの警告がリボンの下に現れるので、「コンテンツの有効化」ボタンをクリックしよう。



すると、以下のダイアログが現れる。
「ファイルにはマクロが含まれているので危険である」と警告しているのであるが、
この講義では開くファイルは基本的に自分で作成したファイルであり、無害であることがわかっているので、「はい」ボタンを押す。

ただし、見知らぬ人からメール等で送られた素性の怪しいファイルでマクロを有効にすることは危険なので避けるべきである。



マクロを有効にしたら、開発タブの Visual Basic アイコンを押すことで記述したプログラムが再び現れる。





複数行を一行に

前のページで記述したプログラムを一行にまとめることを考えてみる。

具体的には、以下のように 3 行を「: (コロン)」でつないで記述する。確認してみよ。



このコロンがないとプログラムが正しく実行できない。
これでわかるのは、「Visual Basic では、各命令は行単位で区切られていなければならない」ことである。

そして、1行ごとに分かれているべき複数の命令を1行にまとめたいときはコロンを用いる。

[補足] (プログラミングに興味がある人向け。そうでない人は読み飛ばして構わない)

このように、Visual Basic というプログラミング言語では基本的に行で命令を区切るのであるが、
C/C++/Java/C# などの言語では、行ではなく命令間を「; (セミコロン)」で区切る。




一行を複数行に

逆に、一行に書くべき命令を複数行に分けて書きたい場合はどうすればよいだろうか。
その場合、下図のように命令を区切る場所で「_ (アンダーバー)」を記述すれば良い。 (下の図はやや見にくいが、注意してみるとアンダーバーがあることがわかる)



長い命令を書かねばならないとき、このように複数行にわけて見やすくすることはしばしば行われる。



コメント文

プログラムのソースコード中に、コメント文を挿入したいことがしばしばある。
(「コメント文」とは、ソースコード中で実行されずに無視される文のことである)

長いプログラムを書いている時、「この命令はどういう意図で書いたのか」を コメント文として残しておくと後々便利である。

コメント文は以下のように 「' (アポストロフィ)」によって書き始める。
アポストロフィから行末まではコメント文として無視される。





←初めての VBA (1)ボタンからのプログラムの起動→

Excel 2013 で学ぶ Visual Basic for Applications (VBA)に戻る