VBAを使えば、繰り返し作業や定型処理を一瞬で自動化できます。
でも「どんなコードを覚えればいいの?」という方も多いはず。
この記事では、業務効率化に直結するVBAの最重要コード10選を厳選してご紹介します。
コピーしてすぐ使えるので、ぜひ実務で活用してください!
この記事はこんな人におすすめ
- VBAを始めたばかりの初心者
- よく使う定型処理をまとめて知りたい人
- 実務で役立つコードをストックしたい人
1. セルに値を入力する(基本中の基本)
Range("A1").Value = "こんにちは"
セルA1
に「こんにちは」と入力します。ループや条件分岐と組み合わせて汎用化できます。
2. 最終行を取得する(表の末尾を自動で検出)
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
A列の最終行(データがある最後の行番号)を取得できます。データの繰り返し処理に必須。
3. シートをループで処理する(複数シート対応)
Dim ws As Worksheet
For Each ws In Worksheets
MsgBox ws.Name
Next ws
すべてのシート名を順番に表示。ループ処理でシートを一括処理する際に使います。
4. ファイルを開く(他ブックを自動で開く)
Workbooks.Open "C:\Users\user\Desktop\sample.xlsx"
指定したパスのExcelファイルを開きます。ファイル操作を自動化する基本。
5. 別ブックにコピー&貼り付け(データ転記の王道)
Workbooks("元ブック.xlsx").Sheets("Sheet1").Range("A1:A10").Copy
Workbooks("転記先.xlsx").Sheets("Sheet1").Range("B1").PasteSpecial xlPasteValues
別のブックにデータを値だけ転記。業務で非常によく使います。
6. メッセージボックス(簡易確認ダイアログ)
MsgBox "処理が完了しました!", vbInformation
処理完了後の通知や確認に便利。vbYesNo
などで選択肢も可能。
7. フォルダ内のすべてのファイルを処理する
Dim fso As Object, folder As Object, file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Users\user\Desktop\対象フォルダ")
For Each file In folder.Files
Debug.Print file.Name
Next file
指定フォルダ内のファイル名をすべて取得。ファイル一括処理の基本。
8. 行を非表示にする(フィルタ処理に便利)
If Cells(i, 3).Value = "" Then
Rows(i).Hidden = True
End If
空白行などを自動で非表示にできます。条件付きで使うのが実践的。
9. 日付を取得する(今日の日付を使いたい時に)
Cells(1, 1).Value = Date
今日の日付をA1
セルに入力。ログ出力や日付スタンプでよく使います。
10. エラーハンドリング(途中で止まらないように)
On Error Resume Next
' ここにエラーが起こり得る処理
If Err.Number <> 0 Then
MsgBox "エラー発生:" & Err.Description
End If
On Error GoTo 0
実務では必須。ファイルが開けない、シートがない…などでも処理が止まらず安心です。
おまけ:VBAマクロをボタンに割り当てる方法
- Excelの「開発」タブ →「挿入」→「フォームコントロールのボタン」
- 任意のマクロを選んで割り当て
- ボタンを押すだけで処理が実行されます!
まとめ|この10個を押さえればOK!
カテゴリ | コード例 |
---|---|
入力・出力 | Range("A1").Value = "こんにちは" |
最終行取得 | Cells(Rows.Count, 1).End(xlUp).Row |
シート・ファイル操作 | Workbooks.Open , For Each ws In Worksheets |
自動化処理 | フォルダ内ファイルループ、行の非表示 |
ユーザー対応 | MsgBox , エラー処理, 日付取得 |