はじめてのマクロを作って、実行し、保存してみます。
マクロを自分で作ることで、基本的なことが理解でき、マクロのことがよりわかるようになるのは間違いない。
いずれ Copilot にマクロコードの作成をお願いする場合でも、自分でやらなければならない項目もあるので、これら基本的なことを学びます。
Excel マクロのコードを入力する場所「標準モジュール」は、VBEのメニュー「挿入」-「標準モジュール」をクリックすると作成できる。
右側のコードエリアは真っ白になっているが、このあとここにコードを入力する。
挿入した標準モジュールを削除するとか、名前を変更する操作については、本ページの「G-4. 標準モジュールの削除と名前の変更」を参照する。
Excel マクロの最小単位は「Sub プロシージャ」と呼ばれる、ひとまとまりのプログラムだ。
「Sub」ではじまる行が Sub プロシージャの最初で、「End Sub」の行が Sub プロシージャの最後だ。
Sub プロシージャの中には、最低1行の指示を書く。
複数な処理を行うマクロでは、複数の Sub プロシージャを組み合わせて作る。
図で示すように VBA のキーワード sub などの入力は全てアルファベットの小文字で入力する.
入力した文字のスペルがキーワードとして正しければ、カーソルが他の行に移動したときに先頭文字が大文字に変換される。
なお「"(ダブルクオーテーション)」で囲まれたものは、単なる文字列なので変換は行われない。
VBA のキーワードのつもりで入力していても合致しなければ先頭文字が大文字に自動変更されないことで、VBA のキーワード入力時のミスをすぐに確認できる。
尚、どのようにでもできる変数は、変数宣言をもともと小文字で宣言しておけば、自動で先頭文字が大文字に変更されない。(先頭文字を含めて大文字で宣言した変数はその通りの入力が必要。)
常に小文字で入力するのをクセにしよう。
Sub に続き「はじめてのマクロ」と入力する。
これが、Sub プロシージャの名前で、「マクロ」ダイアログボックスに表示されるマクロ名になる。
プロシージャ名に、アルファベット、漢字、ひらがな、カタカナ、数字、「_(アンダーバー)」を使えるが、他の記号は使えないし、
1文字目には数字と「_」は使えない。
また半角255文字を超える名前を付けることもできない。
「=」の左側の入れ物に、右側のデータを入れる処理を「代入」といい、この「=」を代入演算子という。
ここで使われる記号「=」は、算数でおなじみの「左のものと右のものが等しい」という意味は全く無い。
右から左に矢印が向かっているようなイメージを持つと良い。右から左へ向かう矢印の代わりに「=」が使われていると考えると良い。
「Range」は操作対象セルを指定する記述で、ドット(.)に続けて「Value」を入力すると、セルの値を扱えるようになる。「.」は、日本語にすると「の」と訳せると、当面は考えても良い。なので、「Range("A1").Value」は「Range("A1") の Value」つまり「A1という(セル)範囲の値」という意味になる。
このコードを「=」の左側に置き、右側に数値や文字列を置くと、セルにデータを代入する命令になり、データが書き込まれることになる。
2行目の「Range("A1").Value = 100」は、セル A1 に「100」を代入し、3行目の「Range("B1").Value = "合格"」は、セル B1 に「合格」という文字列を代入する命令だ。
「range("A1").」「range("B1").」まで入力したときに、ドロップダウンリストが表示される。
「range("A1").」のあとに続く単語は限られているので、続く可能性のある単語だけが一覧表示される。この機能を「自動メンバー表示」という。
ドロップダウン表示されたあとで「v」キーを押すと「V」で始まる単語だけが選択表示された状態になるので、正しい単語 Value を選択しやすくなる。
数値の場合は、「"(ダブルクォーテーション)」で括る必要は無く、「100」のままで良く、文字列の場合は「"」でくくり「"合格"」とする。
これにて、一つのマクロプロシージャが作成されたことになる。
Excel の上に VBE が重なって表示されている状態なので、両方の画面が見えている状態にしておく。
今回は、Excel 画面の A1 セルと B1 セルだけが見えればよいが、両方とも大幅の領域を表示するには、PC 一台の画面を半分に分けて左に Excel、右に VBE 画面を表示することでも良い。また外部モニターを使用できる環境であれば、PC画面と外部モニター画面にそれぞれ Excel 画面、VBE 画面を表示することでも可能。
[F5] キーは、VBEでは「実行」を意味している。
Excel マクロは Excel ファイルに含まれているため、Excel からでも VBE からでも保存できる。VBE には「名前を付けて保存」コマンドは用意されてなく、はじめて「上書き保存」を実行した時には「名前を付けて保存」ダイアログボックスが表示される。
マクロを含むブックは、拡張子「.xlsm」で保存する事。
マクロを含んだブックを、通常の「.xlsx」で保存しようとすると、「次の機能はマクロなしのブックに保存できません」というメッセージが表示され、モジュールが削除され、せっかく作ったマクロが消えてしまう。
「.xslm」で保存した場合、通常の「.xslx」ブックとは異なるアイコンになる。
VBE のプロパティウィンドウを使って、(オブジェクト名)欄に入力することで、モジュール名を変更できる。