Excel VBA Private Subは、VBAプロシージャ(サブルーチン)が他のモジュールからアクセスされないようにするために使用します。このサブルーチンを含むモジュール内でのみ実行できるようにします。具体的な使い方や、注意点やサンプルコードを紹介します。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
以下のようなシーンで利用されます。
・モジュール内でのみ必要なサブルーチンを作成する。
・他のモジュールからのアクセスを防ぐことで、意図しない実行を避けたい場合。
・プログラムの構造を整理し、他の部分に影響を与えないようにする。
Private Sub SubName()
' サブルーチンのコード
End Sub
・Private Subは、同じモジュール内の他のプロシージャや関数からは呼び出すことができますが、他のモジュールからは呼び出せません。
・サブルーチンがプライベートであることを明確にすることで、コードの可読性と保守性が向上します。
・意図的にプライベートにしている場合、将来の変更時に他のモジュールからアクセスが必要になる場合は修正が必要です。
Option Explicit
' このモジュールの他のプロシージャから呼び出せるプライベートサブルーチン
Private Sub DisplayMessage()
MsgBox "これはプライベートサブルーチンです。"
End Sub
' パブリックサブルーチンからプライベートサブルーチンを呼び出す例
Public Sub CallPrivateSub()
DisplayMessage
End Sub
1. Private Sub DisplayMessage()
このサブルーチンはプライベートであり、このモジュール内でのみ使用できます。
MsgBox関数を使用してメッセージを表示します。
2. Public Sub CallPrivateSub()
このサブルーチンはパブリックであり、他のモジュールからも呼び出すことができます。
このサブルーチン内でプライベートサブルーチンDisplayMessageを呼び出します。
DisplayMessageサブルーチンはモジュール内でのみ使用でき、他のモジュールから直接アクセスすることはできません。代わりに、CallPrivateSubを介してDisplayMessageを呼び出すことができます。これにより、DisplayMessageのコードが外部から直接アクセスされることを防ぎ、コードの安全性と整合性を保つことができます。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。