【ExcelVBA】グローバル変数を使って開発効率を上げる方法とは

VBAでグローバル変数の使い方がいまいちわからない
グローバル変数を定義する方法を知りたい
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を使った定数を標準モジュールでまとめておくだけで、開発がしやすく綺麗なコードを書くことができます。

メンテナンス性も上がるので、ぜひ使ってみてくださいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次