クリエイティブを楽しむ新メディア 牛の歩みで更新中!クリエイティブを楽しむ新メディア 牛の歩みで更新中!
プログラム・IT
モジュールに名前をつける!~VBAで"脱コピペ"プログラミング②
2023年5月14日(日曜日)

「脱コピペ」によってプログラミング初心者の階段をのぼるためにやることの第2弾は「モジュールに名前をつける」です。

標準モジュールは「本棚」のようなもの

すでにVBAに触れている方はご存じのとおり、VBAで扱うマクロは「標準モジュール」という場所に記述することになります。プログラムのコードを「本」に例えれば、標準モジュールは「本棚」のようなものです。本が売れない時代にこの例はいかがなものかとちょっと思いますが、あまり気にせず先へ進めます。

ネットで見つけたマクロを自分の環境で扱うときは、まず標準モジュールを挿入し、続いてマクロをコピペする感じになると思います。そして、このとき新たに追加された標準モジュールは自動で「Module1」とか「Module2」といった名前になります。

なにかひとつだけマクロをコピペしてくる場合はこのままでも良いのですが、複数のマクロを扱う場合は次のどちらにするかを考える必要があります。

①ひとつの標準モジュールのなかに複数のマクロを置く
②複数のモジュールを作成し、マクロをわけて置く

①は、あとから新たなマクロを追加していくことでモジュールがどんどん長くなり、特定のマクロを探しにくくなるなどの問題があります。

そこで②の標準モジュールをわける方法をとりたいのですが、名前が「Module1」とか「Module2」のままでは中身が何なのかわからなくなってしまいます。

というわけで、標準モジュールの名前を変えて、中身のマクロがわかりやすいようにしようというわけです。

標準モジュールの名前を変える

標準モジュールの名前を変える手順は、まずプロジェクトウィンドウから名前を変えたい標準モジュール(Module1など)を選択し、プロパティウィンドウの「オブジェクト名」に新しい名前を入力するだけです。

今回の例では「Module1」を「MainMacro」に、「Module2」を「SubRoutine」に変えてみました。「MainMacro」にはExcelやWordなどのOfficeアプリケーションから直接実行するマクロを置き、「SubRoutine」にはその他の関数(Functionで始まるコード)やプロシージャ(Subで始まるコード)を置く想定です。

いずれはもう少し細かく分類した方がいいのですが、初めのうちはこれで充分です。あとは、新たなマクロをコピペしてくるときに「どのモジュールに置くべきか」を考えるようになると、少し上達への道が拓けることでしょう。

まだたくさんのマクロを扱わない場合でも、とりあえずこうやって「本棚」をわけておくと、あとあと整理が楽になります。ぜひ試してみてください。

(つづく)

コメントを記入

メールアドレスが公開されることはありません。 が付いている欄は必須項目です