VBAの基礎
VBAの実行
VBAを実行(作成)する手順
- Excelを開く。
- 「Alt + F11」でVBAエディタを開く。
- 「挿入」→「標準モジュール」を選択。
- VBAのコードを記入または貼り付ける。
- 「F5」キーで実行。
イミディエイトウィンドウの表示方法
イミディエイトウィンドウ(Immediate Window)は、VBAの開発環境「VBE(Visual Basic Editor)」内にある便利なツールで、コードの実行結果を確認したり、簡単な命令をその場で試したりできます。
- Excelを開く
- Alt + F11 を押して VBE(Visual Basic Editor) を開く
- VBEのメニューで「表示」→「イミディエイトウィンドウ」を選択 または Ctrl + G を押す
VBAについてCoPilotに聞いてみた
VBAを使ってエクセルの計算を楽にする事例を教えてください。
VBAを使えば、エクセルの繰り返し作業や複雑な計算を自動化でき、作業効率が劇的に向上します。以下に代表的な事例を紹介します。
- 1. 関数の代替処理をVBAで自動化
SUM, IF, COUNTIF, VLOOKUPなどの関数をVBAで再現し、複雑な条件付き集計や検索を自動化できます。
例:複数条件で売上を集計する SUMIFS をVBAで処理 - 2. 繰り返しの定型業務を自動化
毎月の売上報告や集計表の更新など、同じ操作を繰り返す作業を一括処理。
例:複数シートのデータを1つの集計表にまとめる - 3. 手動計算の効率化
重い数式が多いシートでは、手動計算に切り替えて必要な時だけ再計算することで、処理速度を改善できます。
VBAで Application.Calculation = xlManual → Application.Calculate → xlAutomatic の流れを制御。 - 4. 条件付き集計の自動化
COUNTIF や SUMIF を使った集計をVBAで処理し、複雑な条件でも柔軟に対応。
例:特定の文字列を含むデータだけを集計する - 5. Webデータの収集と分析
VBAでWebページからデータを取得し、Excelに自動で取り込む。
例:為替レートや株価などの外部データを定期的に更新 - 6. 勤怠や進捗管理の自動化
出勤簿や作業進捗をVBAで記録・集計し、人手による記録ミスを防止。
例:打刻時間から勤務時間を自動計算
for next を使った簡単なVBAを示してください。
For…Next は VBA の基本的な繰り返し構文で、指定した回数だけ処理を繰り返すのに使います。以下はその代表的な例です。
🔁 For…Next を使った簡単なVBA例
✅ 例1:1から10までの数字を表示する
Sub ShowNumbers()
Dim i As Integer
For i = 1 To 10
Debug.Print i
Next i
End Sub
このコードを実行すると、イミディエイトウィンドウに 1 から 10 までの数字が表示されます。
✅ 例2:セルに連番を入力する
Sub FillCellsWithNumbers()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i
Next i
End Sub
このコードは、A1 から A10 のセルに 1 から 10 の数字を入力します。
✅ 例3:合計を計算する
Sub CalculateSum()
Dim i As Integer
Dim total As Integer
total = 0
For i = 1 To 10
total = total + i
Next i
MsgBox "合計は " & total
End Sub
このコードは 1 から 10 までの合計を計算し、メッセージボックスで表示します。
💡補足
For i = 1 To 10 Step 2 のように Step を使えば、2ずつ増やすなども可能です。
Exit For を使えば、途中でループを抜けることもできます。
if 文を使った簡単なVBAを示してください。
If…Then…Else 文は VBA の条件分岐に使われる基本構文で、「ある条件が真ならこの処理をする、偽なら別の処理をする」といった判断を行うのに使います。
🔍 If 文の基本構文
vba
If 条件 Then
‘ 条件が真のときの処理
Else
‘ 条件が偽のときの処理(省略可能)
End If
✅ 例1:数値が正か負かを判定
Sub CheckNumber()
Dim num As Integer
num = Range("A1").Value
If num >= 0 Then
MsgBox "正の数です"
Else
MsgBox "負の数です"
End If
End Sub
✅ 例2:複数条件の分岐(ElseIf)
Sub GradeCheck()
Dim score As Integer
score = Range("B1").Value
If score >= 80 Then
MsgBox "評価:A"
ElseIf score >= 60 Then
MsgBox "評価:B"
Else
MsgBox "評価:C"
End If
End Sub
✅ 例3:If を1行で書く(簡易構文)
If Range("C1").Value = "" Then MsgBox "C1セルが空です"

コメント