スポンサードリンク
最近仕事で使うことが多くなってきたVBA
プログラムは組めるけど
VBAの構造とかはわかりませんでした。
なので、少しづつですが
VBAの知識を増やしていこうと思います。
スポンサードリンク
標準モジュールとシートモジュールとは
VBAでプログラムを記述する場所はいくつかあって
どこに書くのかよくわかりませんでした。
基本的にプログラムを書く場所は3つあります。
- 標準モジュール
- ブックモジュール
- シートモジュール
標準モジュール
エクセルのブックファイルに属しています。
エクセルのブックファイル内に自由に挿入・削除できます。
いくつでも挿入できるし、なくてもよい。
シートを指定せずにRange(“A1”)、Cells(1,1)と書いた場合
アクティブブックのアクティブシートの【A1】を指す
ブックモジュール
エクセルのブックファイルに属しています。
初期名称は「ThisWorkbook」
エクセルのブックファイル内に一つだけしかありません。
シートを指定せずにRange(“A1”)、Cells(1,1)と書いた場合
アクティブブックのアクティブシートの【A1】を指す
シートモジュール
エクセルのシートに属しています。
エクセルのシートと対になっているため
シートを削除すれば、シートモジュールも削除されます。
シートを指定せずにRange(“A1”)、Cells(1,1)と書いた場合
シートモジュールが記述されているシートの【A1】を指す
モジュールの使い分け
3つモジュールがあるけど
結局どこにプログラムをどこに書けばいいのか?
シートモジュール
シートに依存するもの
特定のシートのセルに値を入力するなど
特定のシートで作業を行うものに対しては
シートモジュールに書いたほうがよい。
標準モジュール
シートに依存しないもの
各シートで同じような共通作業となるもの
また、エクスポートして
別のファイルでも使えるので
汎用性が高いものは標準モジュールに書いたほうがいい。
スポンサードリンク
まとめ
いままでシートモジュールにゴリゴリ書いていたときに
会社でVBAを任されている外注さんと
お話していたら
標準モジュールの使い方を教えてくれたので
この機会に色々と調べてみました。
シートモジュールに書いていたら
やけにプログラムが長くなって
コードが美しくないなって思っていたので
これで考え方がすっきりした気がします。
参考
モジュールの違いがわかりやすかったです。
『VBA シートと不可分のマクロはシートモジュールに書くとスッキリする』
VBAをMVCで説明されていた内容がわかりやすかったです。
CakePHPを使用してたからイメージがしやすかったのかも。
スポンサードリンク