VBA Excel チートシート

スポンサーリンク
スポンサーリンク

VBA Excel チートシート

毎回VBAでぐぐって調べるので自分用にVBAまとめチートシートを作成します。

ショートカット

・VBEの起動(Visual Basic Editor)
Alt + F11

・入力補完の表示
Ctrl + Space

Subプロシージャ作成

VBAでは戻り値を返さない関数をSubプロシージャという。

1
2
3
Sub プロシージャ名()
 
End Sub

デバック出力

1
2
3
Sub プロシージャ名()
    Debug.Print ("HelloWorld")
End Sub

コメント

コメントはシングルクォーテーション「'」のあとに記述します。

1
2
3
Sub プロシージャ名()
    ' コメント
End Sub

変数宣言

1
2
3
4
Sub 変数宣言()
    Dim 変数名 As String
    変数名 = "HelloWorld"
End Sub

定数宣言

1
2
3
Sub 定数宣言()
    Const 定数名 As Long = 100
End Sub

四則演算子

記号 説明
+ 加算
減算
* 乗算
/ 定数の除算
\ 整数の除算
Mod 除算の余り

比較演算子

代入演算子と等価演算子が同じってほんといけてないと思う(´・ω・`)

記号 説明
< 小さい
<= 以下
> 大きい
>= 以上
= 等しい
<> 等しくない

論理演算子

記号 説明
And 論理積
Or 論理和
Not 否定

文字列の定義と結合

文字列は、ダブルクォーテーションでくくる。

1
2
3
4
Sub 文字列の定義()
    Dim str As String
    str = "いるか"
End Sub

文字列の結合は、アンパサンドで結合する。

1
2
3
4
Sub 文字列の結合()
    Dim str As String
    str = "いるか" & "最強"
End Sub

IF文

1
2
3
4
5
Sub if文()
    If True Then
        MsgBox ("TRUE")
    End If
End Sub
1
2
3
4
5
6
7
Sub ifElse文()
    If True Then
        MsgBox ("TRUE")
    Else
        MsgBox ("FALSE")
    End If
End Sub
1
2
3
4
5
6
7
8
9
Sub ElseIf文()
    If False Then
        MsgBox ("処理1")
    ElseIf True Then
        MsgBox ("処理2")
    Else
        MsgBox ("処理3")
    End If
End Sub

FOR文

1
2
3
4
5
6
Sub for文()
    Dim i As Long
    For i = 1 To 10
        Debug.Print (i)
    Next i
End Sub

Do While文

1
2
3
4
5
6
7
Sub doWhile文()
    Dim i As Long
    Do While i < 10
        Debug.Print (i)
        i = i + 1
    Loop
End Sub

セルの操作

・単一セルの指定
以下は同一のセルを指定している。

1
2
3
4
Sub 単一セルの指定()
    Dim str As String
    str = Range("A2")
End Sub
1
2
3
4
5
Sub 単一セルの指定()
    ' Cells(行インデックス, 列インデックス)
    Dim str As String
    str = Cells(2, 1)
End Sub

ワークシートの操作

・シートの定義

1
2
3
Sub ワークシートの定義()
    Set ws = Worksheets("Sheet1")
End Sub

・別ワークシートのセル選択

1
2
3
4
5
Sub ワークシートの選択()
    Set ws = Worksheets("Sheet1")
    ws.Activate
    ws.Range("A1").Select
End Sub

Activate忘れやすいので。。。僕だけかな。。。

配列の操作

・固定長配列の定義

1
2
3
4
5
Sub 配列の定義()
    ' 固定長配列の定義
    ' Dim 配列名(添字の上限値) As データ型
    Dim 固定長配列(5) As String   
End Sub

・可変長配列の定義

1
2
3
4
5
Sub 配列の定義()
    ' 可変長配列の定義
    ' Dim 配列名() As データ型
    Dim 可変長配列() As String
End Sub

・配列の初期化

1
2
3
4
Sub 配列の初期化()
    Erase 固定長配列
    Erase 可変長配列
End Sub

・配列の添字を変数で定義
久しぶりにVBA書くとよく忘れてる。「ReDim」で変数の場合は定義する。

1
2
3
4
5
Sub 配列の添字を変数で定義()
    Dim maxRow As Long
    maxRow = 100
    ReDim 配列(maxRow) As String
End Sub

・配列の添字を定数で定義

1
2
3
4
Sub 配列の添字を定数で定義()
    Const maxRow As Long = 100
    Dim 配列(maxRow) As String
End Sub

画面更新の停止と再開

1
2
3
4
5
6
7
8
9
Sub 画面更新()
 
    ' 画面更新の停止
    Application.ScreenUpdating = False
         
    ' 画面更新の再開
    Application.ScreenUpdating = True
 
End Sub

行継続文字(コードの途中に改行)

「_」アンダースコアをはさむことでコードの途中で改行をいれることができる。

1
2
3
4
5
6
Sub 行継続文字()
    Dim 変数 As String
    変数 = "Hello" & _
           "World"
    Debug.Print (変数)
End Sub

別プロシージャの呼び出し

1
2
3
Sub 別プロシージャの呼び出し()
    Call プロシージャ名
End Sub

コメント

タイトルとURLをコピーしました