VBA内では共通で使うが、手動で使えないようにしたい
VBAで共用のプロシージャを作成し、Publicにすると手動でも動かせちゃうので見えないようにする方法。
PrivateとPublic
Privateで作ると見えなくなるけどVBA内部からもスコープが制限される。Publicで作ると下図のように見えてしまい手動で動かせるようになってしまう。
対応策
モジュールの先頭に「Option Private Module」を記述します。モジュール単位なので手動でも公開したいプロシージャがあるなら標準モジュールを2つ作って公開用と非公開用に分けることになります。
Option Private Module
Public sub aaaa()
MsgBox "public test"
End sub
コメント