Think Twice
IT技術メモ | VBAのメモ
Created: 2020-09-08 / Updated: 2021-12-17

VBAの文法


ここではVBAの文法を簡単にまとめておきます。

目次


基礎文法 - 式

VBAには様々な式が存在します。数式条件式オブジェクト式代入式などです。
式とは、数値ブール値日付文字列オブジェクトなどのを生成する
リテラル演算子変数定数関数キーワードなどによる組み合わせのことを言います。
式は計算され、いずれかの値に確定します。式の値が確定することを評価するとも言います。

基礎文法 - リテラル

100」という数値や、「True」というブール値、「"Hello"」という文字列など、
それぞれ定められた記法により、式の中で直接仕様することができます。
定められた記法および、その値自体のことをリテラルと呼びます。

基礎文法 - 変数

変数は数値、文字列などの値を格納することができる名前付きの保存場所です。
変数の値はプログラム内で自由に変更することができます。
値を変更することを代入といいます。
また変数の名前と種類について定義することを宣言といいます。

基礎文法 - 条件分岐 - If-Then-Elseステートメント

If-Then-Else

Copy
If <条件式> Then
    処理1
Else
    処理2
End If

以下のように一行に記述することもできます。

Copy
If <条件> Then 処理1 Else <処理2>

If-ElseIf

あとで書きます。

基礎文法 - 条件分岐 - Select-Caseステートメント

Select Case文は複数の条件分岐をすっきり書くための構文です。
基本的にはIf-Then-Elseステートメントで書けるものです。

Select-Case

Copy
Select Case <比較する値>
    Case <条件1>
        ' 条件1を満たしたときの処理
    Case <条件2>
        ' 条件2を満たしたときの処理
    Case Else
        ' いずれの条件も満たさなかったときの処理
End Select

例:値とマッチ

Copy
Dim p_time As String
p_time = "朝"
Select Case p_time
    Case "朝"
        Debug.Print "おはようございます!"
    Case "昼"
        Debug.Print "こんにちは!"
    Case "夜"
        Debug.Print "こんばんは!"
    Case Else
        Debug.Print "Zzz..."
End Select
Copy
おはようございます!

例:複数のどれかにマッチ

Copy
Dim p_num As Integer
p_num = 5
Select Case p_num
    Case 1, 3, 5, 7, 9
        Debug.Print p_num & "は奇数です。"
    Case 2, 4, 6, 8
        Debug.Print p_num & "は偶数です。"
    Case Else
        Debug.Print "1から9までの値を指定してください。"
End Select
Copy
5は奇数です。

例:範囲内に含まれる

Copy
Dim p_age As Integer
p_age = 40
Select Case p_age
    Case 0 To 18
        Debug.Print p_age & "歳はこどもです。"
    Case 19 To 65
        Debug.Print p_age & "歳は大人です。"
    Case 66 To 99
        Debug.Print p_age & "歳はシニアです。"
    Case Else
        Debug.Print p_age & "歳以上の人はセンテナリアンと呼びます。"
End Select
Copy
40歳は大人です。

例:大小比較

Copy
Dim p_temperature As Integer
p_temperature = 105
Select Case p_temperature
    Case Is <= 0
        Debug.Print p_temperature & "度で水は固体です。"
    Case Is >= 100
        Debug.Print p_temperature & "度で水は気体です。"
    Case Else
        Debug.Print p_temperature & "度で水は液体です。"
End Select
Copy
105度で水は気体です。

参考


参考

参照

参考サイト

参考書籍