VBA Excel チートシート

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

VBA Excel チートシート

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

ショートカット

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

・入力補完の表示
Ctrl + Space

Subプロシージャ作成

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

Sub プロシージャ名()

End Sub

デバック出力

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

コメント

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

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

変数宣言

Sub 変数宣言()
    Dim 変数名 As String
    変数名 = "HelloWorld"
End Sub

定数宣言

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

四則演算子

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

比較演算子

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

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

論理演算子

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

文字列の定義と結合

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

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

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

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

IF文

Sub if文()
    If True Then
        MsgBox ("TRUE")
    End If
End Sub
Sub ifElse文()
    If True Then
        MsgBox ("TRUE")
    Else
        MsgBox ("FALSE")
    End If
End Sub
Sub ElseIf文()
    If False Then
        MsgBox ("処理1")
    ElseIf True Then
        MsgBox ("処理2")
    Else
        MsgBox ("処理3")
    End If
End Sub

FOR文

Sub for文()
    Dim i As Long
    For i = 1 To 10
        Debug.Print (i)
    Next i
End Sub

Do While文

Sub doWhile文()
    Dim i As Long
    Do While i < 10
        Debug.Print (i)
        i = i + 1
    Loop
End Sub

セルの操作

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

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

ワークシートの操作

・シートの定義

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

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

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

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

配列の操作

・固定長配列の定義

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

・可変長配列の定義

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

・配列の初期化

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

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

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

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

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

画面更新の停止と再開

Sub 画面更新()

    ' 画面更新の停止
    Application.ScreenUpdating = False
        
    ' 画面更新の再開
    Application.ScreenUpdating = True

End Sub

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

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

Sub 行継続文字()
    Dim 変数 As String
    変数 = "Hello" & _
           "World"
    Debug.Print (変数)
End Sub

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

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

コメント

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