Excel VBA Private Subはモジュール内実行|他モジュールアクセス不可

 

Excel VBA  Private Subは、VBAプロシージャ(サブルーチン)が他のモジュールからアクセスされないようにするために使用します。このサブルーチンを含むモジュール内でのみ実行できるようにします。具体的な使い方や、注意点やサンプルコードを紹介します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA Private Subを利用

以下のようなシーンで利用されます。

・モジュール内でのみ必要なサブルーチンを作成する。

・他のモジュールからのアクセスを防ぐことで、意図しない実行を避けたい場合。

・プログラムの構造を整理し、他の部分に影響を与えないようにする。

 

Excel VBA Private Subの使い方とポイント

使い方

Private Sub SubName()
' サブルーチンのコード
End Sub

 

ポイント

・Private Subは、同じモジュール内の他のプロシージャや関数からは呼び出すことができますが、他のモジュールからは呼び出せません。

・サブルーチンがプライベートであることを明確にすることで、コードの可読性と保守性が向上します。

・意図的にプライベートにしている場合、将来の変更時に他のモジュールからアクセスが必要になる場合は修正が必要です。

 

Excel VBA Private Subのサンプルコード

 

Option Explicit

' このモジュールの他のプロシージャから呼び出せるプライベートサブルーチン
Private Sub DisplayMessage()
    MsgBox "これはプライベートサブルーチンです。"
End Sub

' パブリックサブルーチンからプライベートサブルーチンを呼び出す例
Public Sub CallPrivateSub()
    DisplayMessage
End Sub

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

解説

1. Private Sub DisplayMessage()
このサブルーチンはプライベートであり、このモジュール内でのみ使用できます。
MsgBox関数を使用してメッセージを表示します。

2. Public Sub CallPrivateSub()
このサブルーチンはパブリックであり、他のモジュールからも呼び出すことができます。
このサブルーチン内でプライベートサブルーチンDisplayMessageを呼び出します。

DisplayMessageサブルーチンはモジュール内でのみ使用でき、他のモジュールから直接アクセスすることはできません。代わりに、CallPrivateSubを介してDisplayMessageを呼び出すことができます。これにより、DisplayMessageのコードが外部から直接アクセスされることを防ぎ、コードの安全性と整合性を保つことができます。

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問