構文
構文は以下の通りです。
Dim 変数名 As データ型
解説
変数とは、データを格納するための仮想的な箱のことです。変数は、文字列、数値、真偽値などのデータを保存することができます。変数には保存するデータの型を宣言する必要があり、それらの型を以下で紹介します。
【一般的な型】
型 | 内容 | 具体例 |
Byte | 0から255までの符号なし整数 | Dim バイト型変数 As Byte |
Integer | -32,768から32,767までの整数 | Dim 整数型変数 As Integer |
Long | -2,147,483,648から2,147,483,647までの整数 | Dim 長整数型変数 As Long |
Single | 単精度浮動小数点数(約-3.4E38から3.4E38) | Dim 単精度変数 As Single |
Double | 倍精度浮動小数点数(約-1.7E308から1.7E308) | Dim 倍精度変数 As Double |
Currency | 通貨型(小数点以下4桁までの固定小数点数、範囲は約±922兆円) | Dim 通貨型変数 As Currency |
Decimal | 高精度の小数点数(VBAでは直接データ型として使用できないが、Variant型で使用可能) | Dim 小数型変数 As Variant |
String | 文字列型(最大約2GBの文字数) | Dim 文字列変数 As String |
Boolean | 真偽値(True または False) | Dim 論理型変数 As Boolean |
Date | 日付型(0001年1月1日から9999年12月31日まで) | Dim 日付型変数 As Date |
Object | オブジェクト型(ExcelのRangeやWorksheetなどのオブジェクトを扱う) | Dim オブジェクト変数 As Object |
Variant | 任意のデータ型を格納可能(型の制限がない) | Dim 汎用変数 As Variant |
【その他の型】
型 | 内容 | 具体例 |
Worksheet | Excelのワークシートを表すオブジェクト | Dim シート As Worksheet |
Range | ワークシート上のセル範囲を表すオブジェクト | Dim セル範囲 As Range |
Workbook | Excelのブックを表すオブジェクト | Dim ブック As Workbook |
UserForm | ユーザーフォーム(ダイアログボックス)を表すオブジェクト | Dim フォーム As UserForm1 |
TextBox | テキスト入力用のコントロール | Dim テキストボックス As TextBox |
Label | 説明やタイトルなどのテキストを表示するためのコントロール | Dim ラベル As Label |
CommandButton | ユーザーがクリックしてアクションを実行するボタン | Dim コマンドボタン As CommandButton |
ListBox | 項目のリストを表示し、選択できるコントロール | Dim リストボックス As ListBox |
ComboBox | ドロップダウンリストから選択できるコントロール | Dim コンボックス As ComboBox |
CheckBox | チェックボックス(ON/OFFを選択できる)コントロール | Dim チェックボックス As CheckBox |
OptionButton | 排他的な選択肢を提供するためのラジオボタン | Dim オプションボタン As OptionButton |
Chart | グラフを表すオブジェクト | Dim グラフ As Chart |
Shape | 図形、テキストボックス、画像などのオブジェクト | Dim 画像 As Shape |
プログラミング例
具体的なプログラミング例を紹介します。
Byte型
Dim バイト型変数 As Byte
バイト型変数 = 255
バイト型変数 = 255
Integer型
Dim 整数型変数 As Integer
整数型変数 = 10000
整数型変数 = 10000
Long型
Dim 長整数型変数 As Long
長整数型変数 = 1000000
長整数型変数 = 1000000
Single型
Dim 単精度変数 As Single
単精度変数 = 123.45
単精度変数 = 123.45
Double型
Dim 倍精度変数 As Double
倍精度変数 = 123456.789
倍精度変数 = 123456.789
Currency型
Dim 通貨型変数 As Currency
通貨型変数 = 99999.99
通貨型変数 = 99999.99
Decimal型
Dim 小数型変数 As Variant
小数型変数 = CDec(12345.6789)
小数型変数 = CDec(12345.6789)
String型
Dim 文字列変数 As String
文字列変数 = "こんにちは"
文字列変数 = "こんにちは"
Boolean型
Dim 論理型変数 As Boolean
論理型変数 = True
論理型変数 = True
Date型
Dim 日付型変数 As Date
日付型変数 = #2024/09/08#
日付型変数 = #2024/09/08#
Object型
Dim オブジェクト変数 As Object
Set オブジェクト変数 = ThisWorkbook
Set オブジェクト変数 = ThisWorkbook
Variant型
Dim 汎用変数 As Variant
汎用変数 = 100 '整数
汎用変数 = "文字列" '文字列
汎用変数 = 100 '整数
汎用変数 = "文字列" '文字列
Worksheet型
Dim シート As Worksheet
Set シート = ThisWorkbook.Sheets("Sheet1")
シート.Activate
Set シート = ThisWorkbook.Sheets("Sheet1")
シート.Activate
Range型
Dim セル範囲 As Range
Set セル範囲 = Range("A1:B2")
セル範囲.Value = "Hello"
Set セル範囲 = Range("A1:B2")
セル範囲.Value = "Hello"
Workbook型
Dim ブック As Workbook
Set ブック = Workbooks.Add
ブック.SaveAs "新しいブック.xlsx"
Set ブック = Workbooks.Add
ブック.SaveAs "新しいブック.xlsx"
UserForm型
Dim フォーム As UserForm1
Set フォーム = New UserForm1
フォーム.Show
Set フォーム = New UserForm1
フォーム.Show
TextBox型
Dim テキストボックス As TextBox
Set テキストボックス = frm.Controls("TextBox1")
テキストボックス.Text = "こんにちは"
Set テキストボックス = frm.Controls("TextBox1")
テキストボックス.Text = "こんにちは"
Label型
Dim ラベル As Label
Set ラベル = frm.Controls("Label1")
ラベル.Caption = "ラベルのテキスト"
Set ラベル = frm.Controls("Label1")
ラベル.Caption = "ラベルのテキスト"
CommandButton型
Dim コマンドボタン As CommandButton
Set コマンドボタン = Controls("CommandButton1")
コマンドボタン.Caption = "実行"
Set コマンドボタン = Controls("CommandButton1")
コマンドボタン.Caption = "実行"
ListBox型
Dim リストボックス As ListBox
Set リストボックス = Controls("ListBox1")
リストボックス.AddItem "項目1"
リストボックス.AddItem "項目2"
Set リストボックス = Controls("ListBox1")
リストボックス.AddItem "項目1"
リストボックス.AddItem "項目2"
ComboBox型
Dim コンボックス As ComboBox
Set コンボックス = Controls("ComboBox1")
コンボックス.AddItem "選択肢1"
コンボックス.AddItem "選択肢2"
Set コンボックス = Controls("ComboBox1")
コンボックス.AddItem "選択肢1"
コンボックス.AddItem "選択肢2"
CheckBox型
Dim チェックボックス As CheckBox
Set チェックボックス = Controls("CheckBox1")
チェックボックス.Value = True
Set チェックボックス = Controls("CheckBox1")
チェックボックス.Value = True
OptionButton型
Dim オプションボタン As OptionButton
Set オプションボタン = Controls("OptionButton1")
オプションボタン.Value = True
Set オプションボタン = Controls("OptionButton1")
オプションボタン.Value = True
Chart型
Dim グラフ As Chart
Set グラフ = Charts.Add
グラフ.ChartType = xlColumnClustered
Set グラフ = Charts.Add
グラフ.ChartType = xlColumnClustered
Shape型
Dim 画像 As Shape
Set 画像 = ws.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 200, 50)
画像.TextFrame.Characters.Text = "テキストボックス"
Set 画像 = ws.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 200, 50)
画像.TextFrame.Characters.Text = "テキストボックス"
まとめ
変数はデータを簡単に扱うための便利なツールです。変数を使うと、プログラムがもっとパワフルで柔軟になります。