グローバル変数を定義する方法を知りたい
Constで定数を定義する方法についてもしりたい
こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。
皆さんは、VBAでグローバル変数を使ったことがありますか?グローバル変数を使うと、色んな処理で使う値をまとめて登録しておくことができます。そこで今回は、グローバル変数とはといった基礎的なことから、
- VBAでグローバル変数を使う方法
- グローバル変数を使いこなすためのテクニック
といった応用的な方法まで、徹底的に解説します!
VBAのグローバル変数
グローバル変数とは
はじめに、グローバル変数について簡単に解説します。グローバル変数とは、どこからでもアクセスできる変数のことです。複数のSub・Functionをまたいで同じ変数を使うことができるので、よく使う変数はグローバル変数にしておくのがおすすめです!
グローバル変数を定義する方法
標準モジュールにPublicをつけて変数宣言するだけで、簡単にグローバル変数を作ることができます。
Public Dim 変数名 as 型名 '変数のグローバル変数 Public Const 定数名 = 値 '定数のグローバル変数
Constは、定数の意味で、Constをつけた変数・定数を後から値が変更できなくなります。
シート名、設定シートの情報、消費税率、部署名、会社名など、よく使う変数はグローバル変数にしておくのがおすすめです。
グローバル変数を使いこなすためのテクニック
ただ、グローバル変数はどの処理からでも呼び出して書き換えることができてしまうため、どこで書き換えられたかわからなくなってしまうことがあります。
そのため、値書き換えができない定数のみで使うのがおすすめです!定数のみで使ったサンプルコード:
'シート名 Public Const glbWsNameRegist = "新規登録" Public Const glbWsNameSeachResult = "検索結果一覧" Public Const glbWsNameSummaryData = "サマリーデータ" '設定シートのセル場所一覧 Public Const glbCellDeptCode = "B2" '部署コード Public Const glbCellDeptName = "C2" '部署名称 Public Const glbCellTaxRate = "D2" '消費税率 Public Const glbCellOutFolPath = "E2" 'ファイル出力先フォルダパス
定数名の先頭にglbを付けていますが、開発時に変数を見つけやすくするためにつけています。VBAでは途中まで文字を打ってから「Ctrl + スペース」を押すことで入力候補を出すことができるので、glbまたはpubなどわかりやすい名称を先頭につけておくのがおすすめです!
よく使う変数をまとめておくことで、同じコードを複数の処理で書く必要がなくなるため、速く正確に書くことができるようになります。また、修正時も「よく使う定数一覧」を修正するだけなので、メンテナンスも楽ですね。
補足:変数・定数について理解を深めたい方へ
今回は変数、定数についての基礎的な使い方の説明は省いています。以下記事で詳しく解説しているので、理解を深めたい方は見てみてくださいね!
まとめ
今回は、VBAでグローバル変数を使う方法について解説しました。Publicを付けたグローバル変数 + Constを使った定数を標準モジュールでまとめておくだけで、開発がしやすく綺麗なコードを書くことができます。
メンテナンス性も上がるので、ぜひ使ってみてくださいね!