アーシの毎日インプット

毎日1つ以上学習する。学習した内容を公開する。を目標に自分のスキルアップを目指します。

【VBA】モジュール

スポンサードリンク

システムエンジニアとしてExcelVBAで色々なツールを作ることができるようになってからはや数年が経ちました。

 

が、

 

ExcelVBAは我流でマスターしたのでまだまだ知らないことがいっぱいあります。

 

今回はその中の一つ。

 

VBAを体系的に学習したかたならおそらく序盤で学ぶことになるのでしょうが、

VBAのモジュールには5種類のモジュールがあるそうです。

 

そもそもモジュールというのはVBAにおけるプログラムを記述する箇所の単位です。

VBAのプログラムをSheetごとに記述したり、それとは独立したモジュールを作ることもできます。

 

5種類のモジュールの記載先は以下の通りです。

f:id:arshii:20201122094353p:plain

Sheet1の箇所がシートモジュール

ThisWorkbookの箇所がブックモジュール

UserForm1の箇所がフォームモジュール

Module1の箇所が標準モジュール

Class1の箇所がクラスモジュール

 

私は今までシートモジュールとブックモジュールばかり使って色々なExcelVBAのツールを作っていました。

 

その際はモジュールの種類というものを全く意識していなかったのですが、シートごとの個別処理はシートモジュールに、共通処理はブックモジュールに書くようにしていました。

 

ですが、その使い方はExcelVBAの使用方法としては適切ではないそうで、

共通な処理は標準モジュールに書くべきなのだそうです。

 

今回、改めてExcelVBAの初歩とも思われるモジュールについて調べたのかといえば、ExcelVBAを使って、複数のフォームを使ったそれなりの規模の開発をしようと思ったからです。 

それなりの規模の開発をするうえで、プロジェクト全体から参照可能な定数を定義しようと思ったところ・・・

 

プロジェクト全体から参照可能な定数は標準モジュールにしか定義できないことがわかり、そこでそもそもVBAのモジュールとは何かということになり、調べました。

 

 

結局、今回も我流でVBAの知識を広げてしまいました。

 

 

VBAのみならずJavaScriptCSSなんかも、私が興味を持った場所についてだけ使ってみており、プログラミング言語はしっかり体系的に学んだ方がいいのかなと考えてしまいます。

【アーシの原点】

【頭を鍛える迷路集】


スポンサードリンク