Home  第三章 VBの基本文法


8. 変数の宣言4(ローカルとグローバル)


変数は宣言する場所によって、性格が変わります。
サンプルファイル 3_008_009.xls

  1. いままでは、Subプロシージャ内での変数の宣言方法を説明してきました。

    Sub サンプル3 ()
      Dim myButtonNo As Integer
      myButtonNo = MsgBox(省略)
      Range("E1").Value = myButtonNo
    End Sub

    これはプロシージャレベル変数(又はローカル変数)といって、
    Subプロシージャ内でしか利用できません。


  2. 下記の場合、プロシージャ名以外全く同じですが、
    変数myButtonNo As Integerは全く別のものとして扱われます。

    Sub サンプル4 ()
      Dim myButtonNo As Integer
      myButtonNo = MsgBox(省略)
      Range("E1").Value = myButtonNo
    End Sub

    Sub サンプル5 ()
      Dim myButtonNo As Integer
      myButtonNo = MsgBox(省略)
      Range("E1").Value = myButtonNo
    End Sub

  3. 同じ目的で同じ名前を使うならモジュールレベル変数(グローバル変数)として宣言してやります。
    モジュールの一番初で 宣言してやれば一回ですみます。

    Dim myButtonNo As Integer

    Sub サンプル6 ()
      myButtonNo = MsgBox(省略)
      Range("E1").Value = myButtonNo
    End Sub

    Sub サンプル7 ()
      myButtonNo = MsgBox(省略)
      Range("E1").Value = myButtonNo
    End Sub

  4. ただ、この場合宣言したモジュール内でしか使用できません。
    他のモジュールでも使用したい場合は、

    Dimの変わりにPublic myButtonNo As Integer とPublicを使用すればOKです。

    One Point アドバイス
    変数を宣言するもう一つのメリット
    Dim HenSuu As Integer と宣言したとします。
    入力は小文字でhensuu といれても 必ず宣言したHenSuuになります。
    ですから 変数は大文字小文字を組み合わせて 設定したほうがいいでしょう。
    仮にまちがってkensuu と入力した場合 小文字のままなので 、
    間違いが分かり易くなります。

    練習
    変数を宣言して、無理に間違えてみましょう。
    また小文字で正しく入力してみましょう。


    '----------------------------------------------------------------
    Top