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 |
コメント