システムエンジニアとしてExcelVBAで色々なツールを作ることができるようになってからはや数年が経ちました。
が、
ExcelVBAは我流でマスターしたのでまだまだ知らないことがいっぱいあります。
今回はその中の一つ。
VBAを体系的に学習したかたならおそらく序盤で学ぶことになるのでしょうが、
VBAのモジュールには5種類のモジュールがあるそうです。
そもそもモジュールというのはVBAにおけるプログラムを記述する箇所の単位です。
VBAのプログラムをSheetごとに記述したり、それとは独立したモジュールを作ることもできます。
5種類のモジュールの記載先は以下の通りです。
Sheet1の箇所がシートモジュール
ThisWorkbookの箇所がブックモジュール
UserForm1の箇所がフォームモジュール
Module1の箇所が標準モジュール
Class1の箇所がクラスモジュール
私は今までシートモジュールとブックモジュールばかり使って色々なExcelVBAのツールを作っていました。
その際はモジュールの種類というものを全く意識していなかったのですが、シートごとの個別処理はシートモジュールに、共通処理はブックモジュールに書くようにしていました。
ですが、その使い方はExcelVBAの使用方法としては適切ではないそうで、
共通な処理は標準モジュールに書くべきなのだそうです。
今回、改めてExcelVBAの初歩とも思われるモジュールについて調べたのかといえば、ExcelVBAを使って、複数のフォームを使ったそれなりの規模の開発をしようと思ったからです。
それなりの規模の開発をするうえで、プロジェクト全体から参照可能な定数を定義しようと思ったところ・・・
プロジェクト全体から参照可能な定数は標準モジュールにしか定義できないことがわかり、そこでそもそもVBAのモジュールとは何かということになり、調べました。
結局、今回も我流でVBAの知識を広げてしまいました。
VBAのみならずJavaScriptやCSSなんかも、私が興味を持った場所についてだけ使ってみており、プログラミング言語はしっかり体系的に学んだ方がいいのかなと考えてしまいます。