Excel-VBAを利用しているとよくある悩み。「Public sub」と「Private sub」と「Sub」の3つの違いについて
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_60/https://tarmiyan.net/wp-content/uploads/2020/10/female_8-300x300.jpg)
- どのように使い分けするの?
- どんな使い方があるの?
この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です。
なので、Public Subを利用していれば、基本的にうまくいきます。
「Private sub」の使い方
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_60/https://tarmiyan.net/wp-content/uploads/2020/10/female_8-300x300.jpg)
どんな時にPrivate Subを使用するの?
Private Sub の使い方のポイントとメリットデメリットについて解説していきましょう。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_60/https://tarmiyan.net/wp-content/uploads/2020/10/tarmiyna4-300x300.png)
使うときのポイント
Private Subは、単一モジュール内でしか利用することができません。
他のモジュールからは呼び出すことができませんので、使い方に注意が必要です。
メリット
メモリー容量を抑えながら、作成できるメリットがあります。
しっかり全体を把握している人が利用されるとよいでしょう。
デメリット
変数を指定した場合には、単一モジュールからしか呼び出すことができないため、使い方に注意が必要です。
「Public sub」「Sub」の使い方
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_60/https://tarmiyan.net/wp-content/uploads/2020/10/female_8-300x300.jpg)
どんな時にPublic Subを使用するの?
Public Sub の使い方のポイントとメリットデメリットについて解説していきましょう。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_60/https://tarmiyan.net/wp-content/uploads/2020/10/tarmiyna4-300x300.png)
使うときのポイント
Public Subの利用ポイントは、どこのモジュールからでも呼び出すことができるため、汎用性のきくプログラミングに関しては、この「Public Sub」または「Sub」で記述するとよいでしょう。
ただどんなものでも利用し過ぎると、メモリーエラーが起こることがあるため、利用のし過ぎには注意が必要です。
メリット
どこのモジュールからでも呼び出すことが可能です。
デメリット
Private Subよりもメモリー容量を多く使用します。
このような違いがありますが、基本的に「Public Sub」を利用していても、頻繁にメモリーエラーが起こるようなことはありませんので、それほど気にする必要はありません。
ExcelVBAで大きなシステムを制作する時ぐらいなので、それほど心配はいらないかと思います。
おすすめExcelVBA参考書のご案内
このように、ExcelVBAについて色々学習するには、参考書などなしで習熟するとかなり時間を要します。上記のようなExcelVBAに関してもっと調べる環境があったらと言われる方も少なくありません。
初心者向けVBA教材
そこで、おすすめなのが私自身もVBAやエクセル関数を利用する際に今でもよく利用している下記参考書がかなり有益な情報が入っています。しかもサンプル動画や電話環サポート付きという優れもの。
7500万部売れていて、かなり実用性のある内容が盛り込まれているので、よくExcelVBAなどを利用される際には、こちらの教本が一冊あるだけで色々な構文や基本的なVBAの記述方法に対しても汎用性が効くようになるので、ぜひ上手に活用してみて下さい。
中上級者向けVBA教材
そして、こちらがVBAの基礎をある程度理解された方であれば、実践ベースでかなり作り込める内容が盛り込まれているので、逆引きに使ったり、かなり発展的なVBAコーディングを記述できるようになります。
ちなみに私はどちらとも持っており、今でもちょくちょく活用しています。
まとめ
このように、Public Subを使用していれば、基本的に問題ありません。
但し、あまりに仕組みが大きくなると、こうしたプロシージャーの使い方がメモリー容量に大きな影響を与える可能性が出てきますので、物理的なPCスペックを気にする必要性が出てきますので注意しましょうね。
上記では、「Public Sub」または「Sub」の基本的な使い方を解説しました。もう少し実践に習って、実際の使い方を学びたいという方は、下記で図解解説付きで細かく記載しましたので、もしよろしければ参考にしてみて下さい。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_60/https://tarmiyan.net/wp-content/uploads/2020/10/tarmiyna4-300x300.png)
-
【VBA】Public SubとPrivate Subの違いをソースで実際に図解解説
続きを見る
<楽天Web検索の自動クリックツールのご紹介>
楽天Web検索を自動でクリックできる機能を開発しました。これにより、何度も手動で検索しなくても、自動で検索してくれるので、手軽に楽天ポイントをゲットできるVBAによる仕組みです。noteのページにて期間限定価格で100部ご紹介しております。ご興味のある方は下記ページより詳細をご確認下さい。^^
-
【エクセル関数】重複データを1件だけ残す方法!連番とCOUNTIF
続きを見る
【よく読まれている人気関連記事】
✅月10万稼ぐWordpressブログの作り方!初心者・質維持・コスト抑制向け
✅赤ちゃんのアトピーに効く乳酸菌サプリ!おすすめベビー乳酸菌の魅力
✅【かむピタ】累計販売数70,000個を突破した爪噛み防止マニキュア【送料無料】
✅赤ちゃんのオムツかぶれ・肌荒れが全て解決!おすすめ予防法・対処法
✅子供がトイレでうんちができるようになるためのおすすめトイトレ法
✅【医師監修】足が臭いのを2週間で改善した!おすすめ対策グッズ5選
✅【令和元年更新】子供の口臭がひどい!10の原因と医師おすすめ対処法とは
✅【チャーガ茶】ウィルス対策・ダイエットに効果絶大!おすすめの理由とは
✅【Excel-VBA】Private変数とPublic変数との違いとは
✅【Excel-VBA】「Private sub」と「Private function」「Function」の違いとは
✅【VBA】PowerPointの表・テキストを操作しよう(データセット・背景色・フォント)