【Excel-VBA】「Public sub」と「Private sub」と「Sub」の3つの違いとは

2020年3月4日

Excel-VBAを利用しているとよくある悩み。「Public sub」と「Private sub」と「Sub」の3つには、

ユーザー
ユーザー

・どのように使い分けするのか?

・どんな使い方があるのか?

 

この3つの使い分けと利用の仕方について詳しく解説していきましょう。

「Public sub」と「Private sub」と「Sub」の3つの違いとは

それでは、まず「Public sub」と「Private sub」と「Sub」の3つについて解説していきましょう。

 

「Public sub」「Private sub」「Sub」はプロシージャーの定義をするもの

そもそもこの3つの使い方には、プログラミングを記述する際のプロシージャーとして定義付けを行うためのものです。

どれでプログラミングを記述しても問題ないのですが、主に下記の点に注力しながら使い分けをしていきます。

 

Public Sub とSubはイコールのもの

基本的に、

・Public Sub = Sub

です。

つまり、どちらで記述しても同じものです。なので、この2つには違いはありません。

 

Subで記載されているものは、あくまで略して書かれているだけですので、頭で理解していれば、どちらで記述しても同じです。

 

 

「Public sub、Sub」「Private sub」の違いは?

 

「Public Sub、Sub」「Private sub」には、3つの違いがあります。

<「Public Sub」「Private sub」「Sub」には、3つの違い>

  • メモリー容量の使われた方
  • 変数がクリアの仕方
  • Call文の呼び出し方

 

に違いが生まれてきます。

Public Subは、どこのモジュールから記述しても呼び出すことができるプロシージャーです。

 

それに対して、Private Subは単一のモジュールからしか呼び出せないので、あらゆるモジュールから呼び出したい場合には、Public Subを使用するようにしましょう。

但し、Public Subは、それだけメモリー容量を使用しますので、多様のし過ぎには、十分注意しましょう。

 

 

Public Sub はPrivate Subより大きいと覚えよう!

Public Subは、Private Subを網羅していると考えましょう。

大きい〇がPublic、小さい〇がPrivateです。

 

 

 

「Private sub」の使い方

 

ユーザー
ユーザー
それでは、どんな時にPrivate Subを使用するの?

管理者
管理者
Private Sub の使い方のポイントとメリットデメリットについて解説していきましょう。

使うときのポイント

Private Subは、単一モジュール内でしか利用することができません。他のモジュールからは呼び出すことができませんので、使い方に注意が必要です。

メリット

メモリー容量を抑えながら、作成できるメリットがありますが、しっかり全体を把握している人が利用されるとよいでしょう。

デメリット

変数を指定した場合には、単一モジュールからしか呼び出すことができないため、使い方に注意が必要です。

 

「Public sub」「Sub」の使い方

ユーザー
ユーザー
それでは、どんな時にPublic Subを使用するの?

管理者
管理者
Public Sub の使い方のポイントとメリットデメリットについて解説していきましょう。

 

使うときのポイント

Public Subの利用ポイントは、どこのモジュールからでも呼び出すことができるため、汎用性のきくプログラミングに関しては、この「Public Sub」または「Sub」で記述するとよいでしょう。

ただどんなものでも利用し過ぎると、メモリーエラーが起こることがあるため、利用のし過ぎには注意が必要です。

 

メリット

どこのモジュールからでも呼び出すことが可能です。

 

デメリット

Private Subよりもメモリー容量を多く使用します。

 

まとめ

このように、Public Subを使用していれば、基本的に問題ありません。

但し、あまりに仕組みが大きくなると、こうしたプロシージャーの使い方がメモリー容量に大きな影響を与える可能性が出てきますので、物理的なPCスペックを気にする必要性が出てきますので、注意しましょうね。