VBA

VBE の仕様

  • 1行の最大桁数(最大文字数)は1,024文字
  • 標準モジュール全体に対する変数宣言はそのモジュール内のsubプロシージャやfucntionプロシージャより前に記述する必要があります。

変数と定数

変数の宣言

Dim 変数名 As 変数型
Private 変数名 As 変数型
Public 変数名 As 変数型
Static 変数名 As 変数型
  • 「Global」は「Public」の旧型式です。
  • 「Dim」と「Private」は同一の宣言です。
  • 「Static」で宣言する変数はプロシージャ内での処理が終了し、制御が他に移ってもその変数は初期化されません。次回そのプロシージャが呼び出された時に以前の内容が保持されたままになります。

固定長の文字列型の宣言

Dim a As String * 8

定数の宣言

Private Const 定数名 As 定数型 = 定数
Public Const 定数名 As 定数型 = 定数
  • 「Private」または「Public」が未指定の時は「Private」として扱われます。

型一覧

型指定文字データ型格納できるデータ
Booleanブール型True または False
Byteバイト型0~255までの整数
Integer整数型-32,768~32,767の整数
Long長整数型-2,147,483,648~2,147,483,647の整数
Currency通貨型-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807の固定小数点数
Single単精度浮動小数点数型負の値:約-3.4×10(38乗)~-1.4×10(-45乗)
正の値:約1.4×10(-45乗)~1.8×10(38乗)
Double倍精度浮動小数点数型負の値:約-1.8×10(308乗)~-4.0×10(-324乗)
正の値:約4.9×10(-324乗)~1.8×10(308乗)
Date日付型日付:西暦100年1月1日~西暦9999年12月31日
時刻:0:00:00 ~ 23:59:59
String文字列型任意の長さの文字列
Objectオブジェクト型オブジェクト
Variantバリアント型すべてのデータ

必要バイト数

型指定文字データ型必要バイト数
String文字列型(可変長)10バイト+文字列の長さ
String文字列型(固定長)文字列の長さ
Integer整数型2バイト
Long長整数型4バイト
Single単精度浮動小数点数型4バイト
Double倍精度浮動小数点数型8バイト
無宣言バリアント型(数値)16バイト
バリアント型(文字列)22バイト+文字列の長さ

参考

データ型の変換

関数説明
CBoolブール型(Boolean)へのデータ変換
CByteバイト型(Byte)へのデータ変換
CCur通貨型(Currency)へのデータ変換
CDate日付型(Date)へのデータ変換
CDbl倍精度浮動小数点実数型(Double)へのデータ変換
CInt整数型(Integer)へのデータ変換
CLng長整数型(Long)へのデータ変換
CSng単精度浮動小数点実数型(Single)へのデータ変換
CVarバリアント型(Variant)へのデータ変換
CStr文字列型(String)へのデータ変換

参考

演算子

算術演算子

演算子説明サンプル結果備考
+加算i = 5 + 16
-減算i = 5 - 14
*乗算i = 5 * 210
/除算i = 5 / 22.4
\除算の商i = 5 \ 22
Mod除算の余りi = 5 Mod 21
^べき乗i = 5 ^ 225

比較演算子

演算子説明サンプル結果備考
<小さい8 < 5False
<=以下3 <= 8True
>大きい8 > 5True
>=以上3 >= 8False
=等しい3 = 8False
<>等しくない3 <> 8True

論理演算子

演算子説明サンプル結果備考
And論理積8 > 4 And 2 <= 3False
Or論理和8 > 4 Or 4 <= 1True
Not論理否定Not 8 > 4False

文章の改行

ダイアログに表示されるメッセージを任意の位置で改行する方法です。

改行するには改行を表す値をメッセージの中に記述します。これらはVBAで定義されています。

定義済み定数実際の値説明
vbCrChr(13)キャリッジリターン
vbLfChr(10)ラインフィード
vbCrLfChr(13) + Chr(10)キャリッジリターンとラインフィードの組み合わせ
vbNewLineChr(13) + Chr(10) または Chr(13)プラットフォームで指定した改行文字。現在のプラットフォームで適切ないずれかを使用します。

ダブルクォーテーションの表示

方法1

"""hoge"""

"文字列にするためのダブルクォーテーション
"エスケープ文字
"表示されるダブルクォーテーション

サンプル

Sub Sample()
   MsgBox """hoge"""
End Sub

方法2

"""" & " hoge " & """"

"文字列にするためのダブルクォーテーション
"エスケープ文字
"表示されるダブルクォーテーション

サンプル

Sub Sample2()
   MsgBox """" & "hoge" & """"
End Sub

参考

Colorについて

対象サンプル備考
RGB値10498160RGB関数で生成される値「=赤+緑*256+青*256^2」
RGB関数RGB(112, 48, 160)RGB値を返します
ColorIndex
Hex値(カラーコード)#7030A0標準では使用できない

ステートメント

Select...Case ステートメント

条件式の値に従って、複数のステートメント ブロックのいずれかを実行させるフロー制御ステートメントです。

Select [ Case ] testexpression
   [ Case expressionlist
       [ statements ] ]
   [ Case Else
       [ elsestatements ] ]
End Select

サンプル

Sub sample()
   Dim number As Long = 8
   Select Case number
       Case 1 To 5
           Msgbox "Between 1 and 5, inclusive"
           ' The following is the only Case clause that evaluates to True.
       
       Case 6, 7, 8
           Msgbox "Between 6 and 8, inclusive"
       
       Case 9 To 10
           Msgbox "Equal to 9 or 10"
       
       Case Else
           Msgbox "Not between 1 and 10, inclusive"
   End Select
End Sub

イミディエイトウィンドウ

イミディエイトウィンドウとは

イミディエイト[immediate]とは、「即座の、目前の、すぐの」という意味で、コマンドや数式をイミディエイトウィンドウに入力するだけで、簡潔に結果が得られるところが売りです。

イミディエイトウィンドウを表示するには、VBEのメニューの[表示] - [イミディエイトウィンドウ]をクリック、または【Ctrl + G】のいずれかで表示させることができます。

なお、デバッグ実行中に変数の値を表示、変更したりすることもできます。

プロシージャの実行

値を返すプロシージャは、プロシージャ名の前に「?」を入力すると戻り値が出力されます。

Subプロシージャの実行

Subプロシージャを実行するには、イミディエイトウィンドウにプロシージャ名を入力して【Enter】を押します。

hoge

Functionプロシージャの実行

Functionプロシージャを実行するには、プロシージャ名の前に"?"を入力して【Enter】を押します。

?hoge

計算を行う

数値の計算

?1+2
 2

関数を使った計算

?round(1.6)
 2

文字列を使った計算

?"あいう" & "えお"
 あいうえお

デバッグ情報の出力を表示する

Debug.Print hoge