マクロの頭についている Sub とは Subroutine のこと。つまり、全てのマクロは他のマクロのサブルーチンとしてはたらくことができるということです。特にあるマクロの中で、引数を指定して他のマクロを呼び出すようなプログラムを作成すれば、全体として構造の分かりやすいシステムを作り上げることができるのです。こばとの講義と同じように、マクロだってわかりやすく作るのが一番ですねー(自分で言っちゃったー)。
文字 a を b に変換するマクロ
簡単な例として、任意の文字列の中に含まれる a という文字を b に変換するマクロを作ってみましょう。
ab変換マクロ
まずサブルーチンから作ってみます。
Dim w2 As String
‘任意の文字 w1 の a を b に変換
w2 = Replace(w1, “a”, “b”)
‘変換された文字をプリント
Debug.Print w2
End Sub
マクロ名のあとの ( ) に変数とデータ型宣言が記述されています。
これは文字列型 w1 を引数としてはたらくマクロであることを示しています。このように、引数の指定されたマクロは単体では実行できないようになっていて、このマクロを動かすための本体が必要となります。3行目の
では Riplace関数が使われています。上のコードは w1 という文字に含まれる a を b に置き換えるという意味です。
文字置換マクロ
サブルーチンを動かす本体はちょー簡単なマクロです。
ab変換 “aaa”
ab変換 “aac”
ab変換 “abc”
End Sub
たったこれだけですよー。本体でサブルーチンを動かすには
と書くだけでいいのです。楽ちんですねー。上のマクロは aaa, aac, abc という文字列を「 ab変換マクロ」の変数 w1 に受け渡して「含まれている a を b に変えてくださいな」とお願いしているわけです。このマクロを実行するとイミディエイトウィンドウに bbb, bbc, bbc と表示されるですよ。ぜひお試しくださいなー。
コメント