アクセス上位ページ
 
最近の更新内容

Excel VBA ≫ 1.基礎編 - はじめに(1)-l.プロシージャのスコープ

プロシージャのスコープ

プロシージャのスコープとはそのプロシージャが有効な範囲のことで、 このスコープ内でのみプロシージャの呼び出しが可能になります。

標準モジュールに記述されたプロシージャはそのスコープに応じて以下の2つに分類できます。
  • Private プロシージャ
  • ⇒ 同一モジュール内でのみ呼び出しが可能
  • Public プロシージャ
  • ⇒ 同一プロジェクト内のすべてのプロシージャから呼び出しが可能




Private プロシージャ

プロシージャ名の前にキーワード Private を指定すると Private プロシージャとなります。
プロシージャ分割した場合など、汎用的に使えないプロシージャや呼び出し元を限定したいプロシージャはPrivateにします。

    Private Sub [プロシージャ名]( [引数], … )
       :
    End Sub
    
    Private Function [プロシージャ名]( [引数], … )
       :
    End Sub
    

    Privateプロシージャの呼び出し可能範囲
  • プロシージャAからプロシージャ1を呼び出す ・・・ 可能
  • プロシージャBからプロシージャ1を呼び出す ・・・ 可能
  • プロシージャCからプロシージャ1を呼び出す ・・・ 不可能
  • プロシージャDからプロシージャ1を呼び出す ・・・ 不可能

Public プロシージャ

プロシージャ名の前にキーワード Public を指定すると Public プロシージャとなります。 プロシージャの既定はPublicなので、何も指定しなければPublicとなります。
汎用的に使用可能でさまざまなプロシージャから呼び出されるプロシージャは Public にします。

    Public Sub [プロシージャ名]( [引数], … )
       :
    End Sub
    
    Public Function [プロシージャ名]( [引数], … )
       :
    End Sub
    

    Publicプロシージャの呼び出し可能範囲
  • プロシージャAからプロシージャ2を呼び出す ・・・ 可能
  • プロシージャBからプロシージャ2を呼び出す ・・・ 可能
  • プロシージャCからプロシージャ2を呼び出す ・・・ 可能
  • プロシージャDからプロシージャ2を呼び出す ・・・ 可能


  • 標準モジュールに記述されたパブリックなSubプロシージャ(但し、引数がないものに限る)はマクロダイアログ( [ Alt ] + [ F8 ] )に表示され、 選択して実行することが可能です。
    マクロ実行ダイアログ


オブジェクトモジュール内のプロシージャ

オブジェクトモジュール(シートやブック、ユーザーフォームなど)の中に記述したプロシージャや変数はすべて Private 扱いになります。 他のオブジェクトや標準モジュールからは呼び出せませんので、注意してください。
カテゴリ内ページ



Page
Top