【ExcelVBA】覚えておくと超便利なグローバル変数の使い方とは?





こんにちは、ExcelVBAマスターのシロです。

皆さんは、VBAで変数を使うときに便利なグローバル変数を知っていますか?

シート名、ブック名、フォルダパスなどよく使う変数はグローバル変数としてまとめておくと、どこからでもアクセスして利用することができるのでとても便利です。

そこで今回は、グローバル変数の使い方・メリット・有効的な使い方など、実務で使えるレベルまで徹底的に解説します!

こんな方におすすめ!
  • 変数をもっと使いこなせるようになりたい方
  • 実務に即したVBAのテクニックを知りたい方
  • 見やすく修正しやすいコードを書けるようになりたい方

※最後にグローバル変数をより使いこなすためのテクニックについても解説しています。数分で読み終わるので、最後までお付き合いいただければと思います。

グローバル変数とは

wikipediaでは次のように説明されています。

グローバル変数(大域変数、英: global variable)は、コンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことである。

つまり、どこからでも使うことができる変数です。

例えば、シート名のように複数の処理で使うような値の場合は、グローバル変数がとても便利です。

グローバル変数を使いこなすために覚える事前知識とは

グローバル変数はどこからでもアクセスできるため非常に便利なのですが、使い方を間違えるとどこで何を書き変えたのかわからなくなってしまう可能性があります。

意図しない場所で値が変わってしまうとバグの原因となってしまうため、グローバル変数は「値書き換え不可の定数」として使うのがおすすめです。

グローバル変数の書き方とは

それでは次に、定数をグローバル変数にするための具体的な書き方について説明します。

先頭にpublicを付けることで、グローバル変数にすることができます。

 
Public Const glbWsNameRegistList = "登録一覧" '「登録一覧シート」のシート名
 

上記の例では、「登録一覧」シートのシート名をグローバル変数に設定しています。

このように設定しておくことで、どの処理からでも「glbWsNameRegistList」を使うことができます。

グローバル変数のおすすめな使い方とは

ここまで、グローバル変数の意味や書き方について説明してきました。

しかし、具体的にどのように使っていくべきか悩む方もいるのではないでしょうか。

Siro
グローバル変数は定数で使ったほうがいいのはわかった。
でも、具体的にどうやって使っていけばいいんだろう?

そんな方向けに、おすすめな使い方についてご紹介します!

グローバル変数一覧を集めた標準モジュールを1つ作る

グローバル変数だけを書いた標準モジュールを1つ用意する方法です。

ぶっちゃけこれだけ覚えておけば、実務では問題ないです。

例えば、次のようにシート名や設定シートに用意したセル場所などに使うと効果的です。

'シート名
Public Const glbWsNameRegist = "予算管理"
Public Const glbWsNameSeachResult = "検索結果一覧"
Public Const glbWsNameAnalysisResult = "分析結果一覧"

'設定シートのセル場所一覧
Public Const glbCellDeptCode = "B2"    '部署コード
Public Const glbCellTaxRate = "C2"     '消費税率
Public Const glbCellOutFolPath = "C2"  'ファイル出力先フォルダパス

また、変数名には先頭にglbを付けています。

  • グローバル変数であることを変数名のみ見たときにすぐに把握できる
  • Ctrl + Spaceキーで入力補完を使ったときにすぐにグローバル変数を呼び出せる

など、変数名はグローバル変数の使いやすさを左右するため、先頭文字にルールを付けることをおすすめします。

※先頭文字はglbまたはpubがおすすめです。

補足:シート操作をする場合に合わせて覚えておきたいテクニックとは

今までグローバル変数で定数を使う方法をご紹介してきました。

ただ、シート名に限って言えば、シート名が変わるとVBAのコードを修正する必要がありますよね。

個人のみで利用または、運用保守を作成者が実施するのであれば問題ありませんが、そうではないケースもあるはずです。

そんな時は、「シート名に依存せずシート操作をする方法」を覚えておくと便利です!

シート名に依存せずシート操作を行うための設定方法・使い方とは?

2018.06.19

まとめ

今回は、グローバル変数の使い方について徹底的に解説しました!

グローバル変数を使いこなすと、ミスが少なく速くVBAを書くための力が身に付きます。

また、修正が起こった時の修正コストも抑えることができるので、ぜひ使ってみてくださいね!

The following two tabs change content below.

Siro

ネコ好きフリーランスエンジニア。
開発、技術、働き方、ツールなどについて発信しています。
楽しく、開発しようぜ!