【Excel-VBA】Private変数とPublic変数との違いとは

2020年5月26日

Excel VBAを利用していると、Private変数とPublic変数というものをよく見かけますが、この2つの違いにはどんな点があるかわからない方のために、その違いと使い方について解説していこうと思います。

Private変数って何?

Private変数とは・・・

「同モジュール内からしか利用できない変数」と覚えておきましょう。

 

Public 変数って何?

Public変数とは・・・

「どこのモジュールやシートからでも利用できる変数」と覚えておきましょう。

 

Public 変数とPrivate変数の違いとは

Private変数とPublic変数には、どのような違いがあるの解説していきましょう。

 

<Private変数とPublic変数の違いとは>

  • メモリー消費量: Public変数 > Private変数
  • Public変数は、どこからでも呼び出せる変数だが、Private変数は同Module内からしか呼び出せない。

 

Private変数とPublic変数では、まずメモリー容量を消費する度合いが全く異なります。

 

使い方をわかりやすく解説

それでは、Private変数の使い方とPublic変数の使い方をそれぞれ例をとって解説していきましょう。

Private変数の使い方

こちらを例にして解説していきましょう。

「Private B」という変数は、Module1上に記載されているため、このModule1にあるプログラム上からであれば、どこでも使用できます。

しかし、それ以外のモジュールから呼び出すことはできません。

他のモジュール、例えばmodule2に実行処理が移った時点で、変数内の情報はクリアされてしまいます。

そのため、Module間のデータの移動がない場合にのみ使用が可能です。

 

Public変数の使い方

続いて、Public変数の使い方について解説していきましょう。

下記画面をご覧ください。

「Public B」という変数は、Module2上に記載されていますが、どこのModuleからでも利用できるため、Module1にあるプログラム上からでも使用できます。

そのため、実行中は、変数に値が入っている場合は、処理が終わってもデータがクリアされることはありません。

 

 

どちらを利用するべき?

それでは、どちらを利用する方がよいのかというと、これは、Moduleをどのように整理して、ソースを記述していくかによってきますので、もし同じModuleを使用して、どのように整理するかでPublicかPrivateを使い分けるとよいでしょう。

その変数の使い分けには、下記2つの方法があります。

 

1つのModuleを使用のみでプログラムを作成する場合

・Private変数のみでもよい

 

それは、同じModuleしか使用していないので、Private変数でも呼び出すことができるからです。

だから、Public変数を使用して呼び出さなくてもよいからです。

 

Moduleを複数に分割する場合

・Public変数を使用しよう

逆に、Moduleを分割している場合には、Module間同士で処理が移動する場合があります。そんな時には、Public変数を使用するとよいでしょう。

 

 

Public ConstとPrivate Constの定数についても覚えておこう!(おまけ)

続いて、Public ConstとPrivate Constという定数の違いについても簡単に触れておきましょう。

この2つには下記のような違いがあります。

下記画面をご覧ください。

 

①「intE」という定数は、Module2上に記載されていますが、どこのModuleからでも利用できます。

②「intG」という定数は、Module2上に記載されているため、Module1にあるプログラム上でしか使用することができません。

 

 

まとめ

このように、Private変数とPublic変数の違いには、メモリー容量の影響がでてきます。そのため、メモリーを多く積んだPCであれば、Public変数を使用していても問題ありません。

またPublic変数を多数使っても大きな影響を受けるものではありませんが、この変数が1万個等の個数をもち、一度に処理する場合には、非常に大きな影響を受ける可能性がありますので、乱用には十分注意しながら、Public変数を使用するようにしましょう。

また上手にPrivate変数とPublic変数を使い分けながら、プログラムが記述できるようになると非常によいですね。

 

 

【おすすめ:WordPressテーマ 「WING(AFFINGER5)」について
     ※ブログを始めるなら絶対おすすめ【特典あり】


私も新たなサイト【育チルnet」にて、検索エンジンの上位の多くを占めると言われるSEO対策に強いWordpressテーマを導入してみました。

実際に利用した所感は、デザイン性能がかなり整っていますし、表示速度もやっぱりかなり速いです。人気なWordpressテーマなだけはあると感じました。

無料のテーマでも私は悪いとは思っていませんが、やはり検索エンジンからの評価はだいぶ違いました。

初めて数ヶ月ですが、もうすでに検索エンジンから大きく表示されるようになっています。

どうせやるなら、しっかりgoogle社からの評価を受けられる整えられた環境でブログ運営する方が絶対にいいと感じたため、当サイトをご覧下さった皆様にもお伝えさせて頂きました!

Wordpressテーマを新たにご検討方は、今しかない期間限定の特典も付いていますので、お早めにご確認下さい。

公式サイト



 ←ためになったら押してね^^