【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入門】変数をDimで宣言し、 Asでデータ型を定義する方法
更新日 : 2019年10月1日
【ExcelVBA入門】定数を使ってミスを減らしつつ開発する方法とは
更新日 : 2018年8月20日

まとめ

今回は、VBAでグローバル変数を使う方法について解説しました。Publicを付けたグローバル変数 + Constを使った定数を標準モジュールでまとめておくだけで、開発がしやすく綺麗なコードを書くことができます。

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

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

Sanshiro Wakizaka

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!

侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー