記載目的
- Excelでの業務はどの案件でも必要となるため、VBA知識があると効率的
- 基本的なものから応用的な内容へ繋がる記載にしてゆきたい
補足
- 本当に必要そうなものに限定する
- 冗長な表現を極力避ける
- 随時更新する
記載の順番は以下
- 【基本的な書き方】
- 【VBAショートカット】 ※WindowsPC
- 【具体例】
- 【作成したVBA】
【基本的な書き方】
説明 | 例 | 備考 |
---|---|---|
対象.命令 | Range("A1").Select | |
対象.様子 | Range("A1").Value = 123 | |
使用する変数の型はこちらのみで良さそう | Long(長整数型) / String(文字列型) |
【VBAショートカット】 ※WindowsPC
説明 | 例 | 備考 |
---|---|---|
入力候補の表示 | Ctrl + Space | |
行の削除 | Ctrl + Y | |
インデントを付ける | 2行以上選択して Tab | |
インデントを戻す | Shift + Tab | |
クイックヒントの表示 | Ctrl + I | |
無限ループ時の強制中断 | Ctrl + Pause / Ctrl + Break / Esc | 左記いずれか |
実行 | F5 | |
コード1行ずつ実行 | F8 |
【具体例】
説明 | 例 | 備考 |
---|---|---|
セルコピー | Range("A1").Copy TARGET | |
セルA1から連続してデータが入った最下端セルを選択 | Range("B2").End(xlDown).Select | |
アクティブのワークブックのフルパスを取得 | ActiveWorkbook.FullName | |
他のプロシージャを呼べる | Call プロシージャ名 | |
文字色 設定 | Cell.Font.Color = RGB(255, 255, 255) | |
背景色 設定 | Cell.Interior.Color = RGB(255, 255, 255) | |
セルが空欄かどうか調べたい | Cell.Value = "" | |
セルを検索 | 検索範囲.Find | |
相対的な位置のセルを操作 | Cell.Offset(行数, 列数) | |
選択範囲の大きさを変更する | Cell.Resize(行数, 列数) | |
セルに数式を入力 | Cell.Formula | Cell.Value |
ワークシート関数を使うには | WorksheetFunction.関数名(引数) |
【作成したVBA】
プロシージャの最初と最後に入れる処理が早くなるらしい ※コピペして使用する
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Calculation = xlCalculationManual
End With
''''''''''''''''''''''''''''''
' '
' ~~ そのほかの処理内容 ~~ '
' '
''''''''''''''''''''''''''''''
With Application
.ScreenUpdating = True
.EnableEvents = True
.CutCopyMode = False
.Calculation = xlCalculationAutomatic
End With
for文の基本的な使い方①
'指定セルから下方向へ1月から12月までを入力する
Dim i As Integer
For i =1 to 12
Cells(i, 1) = i & "月"
Next i
for文の基本的な使い方②
'上記for文 一個飛ばしバージョン
'一個飛ばし
Dim i As Integer
For i =1 to 12 Step2
Cells(i, 1) = i & "月"
Next i
ファイル開くダイアログ扱い方
Sub ファイル開くダイアログ扱い方()
'変数filenameを定義
Dim filename As String
'Excelファイルに限定してファイルオープンダイアログを表示させる
filename = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
'変数filenameに値がなければ、もしくは、それ以外の場合
If filename "False" Then
Workbooks.Open filename
Else
MsgBox "キャンセルしました!"
Exit Sub
End If
End Sub
PATHからファイルネーム抽出する
Dim filename As String
Dim filename_from_path As String
Dim targetname As String
'PATHからファイルネームのみ抽出
filename_from_path = InStrRev(filename, "\")
targetname = Mid(filename, filename_from_path + 1)
該当シートを、あるあるファイルの1番目のシート後ろへコピーする
Dim targetname As String
'ワークブック「targetname」の「コピーするシート」を、ワークブック「作業ファイル」の1つ目のシートの後ろへコピーする
Workbooks(targetname).Worksheets("コピーするシート").Copy _
After:=Workbooks("作業ファイル").Sheets(1)