【Excel-VBA】「Private sub」と「Private function」「Function」の違いとは

2020年3月4日

Excel VBAでプログラミングを記述する際、各サブルーチン単位で文頭に表示されている「Private Sub」「Private Function」「Function」。

しかし、これらをどのように使い分けていくのかわからない方のために、各々の使い方とこの3つの違いについて詳しく解説していきましょう。

「Private Sub」の使い方

Private Subとは・・・・

同一Module内でしか呼び出すことができないサブルーチンのことを言います。

Module1内にあるサブルーチンから、別のModule2にあるサブルーチンをCall文で呼び出した場合、位置がModule2に移動してしまいます。

このタイミングでModule1上で入っていた変数の中身は全てなくなり、解放されてしまいます。

これが「Private」の意味を示します。

 

「Private Function」の使い方

これに対して、もう一つ「Private Function」というのがあります。

Private Functionとは・・・・

これは何を示すのかというと、このサブルーチン自体に値をもつことができるということです。

下記をご確認下さい。

 

【Functionのサブルーチンについて】

TestFそのものを変数にすることができ、Integer型で値を出力することができます。最後のブレークポイントでintCodeからTestFに値を引き渡しています。

「Function」の使い方

Functionとは・・・

「Public Function」の省略形で、使い方は、上記で説明した「Private Function」と同じです。Private Functionとは、下記の点が異なります。

  • どこのModuleからでも呼び出すことができる
  • そのサブルーチン自体に値を返すことができる

 

という利点があります。

3つに共通することとは

この上記3つに共通することが一つだけあります。それは、こちらをご覧ください。

「Private Sub」「Private Function」「Function」の3つはマクロ名には表示されません。

サブルーチン自体に値を持てることができる「Function」「Private Function」のように、「Function」という文字が記述されているものは、マクロ名としてもつことはできません。

 

又「Private Sub」というものに関しても同様マクロ名には表示されません。

 

表示されるのは、「Sub」「Public Sub」のみとなります。覚えておきましょう。

 

 

「Private sub」と「Private function」「Function」の3つの違いとは

それでは、この3つの違いについて詳しく解説していきましょう。

まず「PrivateとPublic」「SubとFunction」2つの分解して考えましょう。

 

「PrivateとPublic」の違い

  • Privateが付くもの :同一Module内でしか使用できない
  • Publicが付くもの,もしくは無いもの:どのModuleからでも呼び出せる

 

「SubとFunction」の違い

  • Fuctionが付くもの :そのサブルーチンの名称自体を変数にできる(値を持てる)
  • Subが付くもの   :値を持てない

 

またこれに対して、Functioin」という文字が記述されているものに関しては、このサブルーチン自体に値をもつことができるを意味します。

 

※Functionがつくものには、この名称自体を変数にすることができます。

これらが理解できれば3つの違いがおのずと分かってくるかと思います。

 

結局どれを使えば良いの?

結局どれを使えばよいのか?というところに行きつくかと思いますが、

ここまで聞いてあまりよくわからなかった場合には、「Public Function」「Function」「Sub」を使用していれば、基本的に問題ありません。

 

「Private」を使用するのは、メモリー容量を低減するために利用されます。

 

なので、まずは記述を学びたいという方であれば、上記3つを使用することをおすすめします。

 

まとめ

このように、3つの違いは、メモリー容量の消費量が多きく関わってきます。

特にシステムが大きなものであればあるほど、そのメモリー使用量が肥大化するため、できるだけPrivateを活用しながら、メモリーを消費しないプログラミンギ技術が要求されます。

しっかり活用方法を覚えて、上手にプログラミングしていきましょう。

 

 

 

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


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

無料テーマから有料テーマにしただけなのに、0円だった収益が2~3万円まで上がったんです!

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

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

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

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

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

レビュー

公式サイト



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