サイトについて      連絡先   検索

VBA 変数

はじめに

Excel VBA の変数を宣言する方法を紹介します。

変数は何度でも値を変更できます。

変数の名前をわかりやすくすると、コードの可読性がよくなります。

変数の宣言

Dim 変数名 As String
Dim i As Integer

VBA の初期設定では変数を宣言しなくても使えます。ただしバグの温床になりかねませんので、変数の宣言を強制するのをおすすめします。

変数の宣言を強制するには VBE の「ツール」をクリックして [オプション] をクリックします。

1

[変数の宣言を強制する] をチェックし [OK] をクリックします。

2

この後にコードを表示すると、コードの先頭に「Option Explicit」が追加されます。これがあると、このコードで変数の宣言が強制されます。

3

「Option Explicit」の一行を削除すると強制されなくなり、追加すると強制されます。

変数の初期化と代入

変数の宣言と初期化を一行ではできません。

Dim 変数名 As String
変数名 = "Tips"

Object 型の代入には Set を付けます。Range などのクラスが Object 型です。

Dim 変数名 As Object
Set 変数名 = Range("A1")

変数のスコープ

変数を参照できる範囲を「スコープ」と呼びます。スコープには次の種類があります。

スコープは関数にも同じことが言えます。

' 全てのシートや標準モジュールから参照可能
Public found1 As String

' このコードを記載しているシートや標準モジュール内で参照可能
Private found2 As String

' スコープを省略した関数は Public になります。
Sub Tips 
    ' Tips 関数内でのみ参照可能
    Dim found3 As String

    ' Sheet1 の変数 Public found1 As String を他のシートなどから参照するには
    found3 = Sheet1.found1
    
    ' 標準モジュール の変数 Public found1 As String を他のシートなどから参照するには
    found3 = found1
End Sub

標準モジュールに Public で宣言した変数はどこからでも参照できるので、管理が複雑になります。なるべくスコープの範囲が狭くなるようにします。

関連ページ