【Excel】エクセルのVBAコード一覧・コード集(マクロコードの書き方・コードの表示方法・表示形式コードも)
エクセルの作業を自動化・効率化する強力なツールがVBA(Visual Basic for Applications)です。しかし「VBAは難しそう」「どんなコードを書けばいいかわからない」と感じている方も多いのではないでしょうか。
本記事では、エクセルのVBAコード一覧・コード集として、よく使われるマクロコードをシーン別にまとめています。コードの書き方・表示方法・表示形式コードの活用まで、VBA初心者から中級者まで役立つ内容を網羅的に解説していきます。
VBAコードの表示方法とエディタの使い方
それではまず、VBAコードを入力・確認するためのエディタ(VBE)の表示方法と基本的な使い方について解説していきます。
VBEを開く手順
方法1:Alt+F11キーを押す(最も手軽な方法)
方法2:「開発」タブ→「Visual Basic」をクリックする
方法3:シートタブを右クリック→「コードの表示」を選択する
「開発」タブが表示されていない場合は、「ファイル」→「オプション」→「リボンのユーザー設定」から「開発」にチェックを入れることで表示できます。
標準モジュールにコードを記述する方法
マクロコードは基本的に「標準モジュール」に記述します。VBEを開いた後、メニューの「挿入」→「標準モジュール」をクリックすると、コードを入力できる白い画面が表示されます。
マクロの基本構造は以下のとおりです。
Sub マクロ名()
’ ここにコードを記述する
End Sub
SubとEnd Subの間にコードを記述し、F5キーまたは「実行」ボタンでマクロを実行できます。
マクロの記録機能でコードを自動生成する
VBAの初心者には、「マクロの記録」機能を使ってコードを自動生成する方法がおすすめです。実際にエクセル上で操作した内容がVBAコードとして記録されるため、書き方の参考にもなります。
1. 「開発」タブ→「マクロの記録」をクリックする
2. マクロ名を入力してOKをクリックする
3. 記録したい操作をエクセル上で実際に行う
4. 「記録終了」をクリックする
5. Alt+F11でVBEを開き、記録されたコードを確認する
よく使うVBAコード集(基本操作編)
続いては、実務でよく使われるVBAコードを基本操作カテゴリ別に確認していきます。
セル操作に関するVBAコード
セルの参照・入力・コピーなど、基本的なセル操作のコードを紹介します。
‘セルに値を入力する
Range(“A1”).Value = “テスト”
Cells(1, 1).Value = “テスト” ’行・列の数値で指定する方法
‘セルの値をクリアする
Range(“A1”).ClearContents ’値のみクリア
Range(“A1”).Clear ’書式も含めてすべてクリア
‘セルをコピー・貼り付けする
Range(“A1”).Copy Destination:=Range(“B1”)
‘最終行を取得する
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
シート操作に関するVBAコード
シートの追加・削除・名前変更など、シート操作の基本コードは以下のとおりです。
‘シートを追加する
Worksheets.Add After:=Worksheets(Worksheets.Count)
‘シート名を変更する
Worksheets(1).Name = “新しいシート名”
‘シートを削除する(確認ダイアログを非表示)
Application.DisplayAlerts = False
Worksheets(“削除するシート名”).Delete
Application.DisplayAlerts = True
‘すべてのシート名を取得する
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Debug.Print ws.Name
Next ws
ループ処理と条件分岐のコード
VBAで自動化を実現するために欠かせないのが、ループ処理(For/While)と条件分岐(If/Select Case)です。
‘For Nextループ(1行目から10行目まで処理)
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i
Next i
‘If条件分岐
If Range(“A1”).Value >= 100 Then
Range(“B1”).Value = “達成”
Else
Range(“B1”).Value = “未達成”
End If
よく使うVBAコード集(応用・便利コード編)
続いては、実務で役立つ応用・便利なVBAコードを確認していきます。
ファイル・フォルダ操作のコード
ファイルの保存・コピー・存在確認など、ファイル操作に関するコードは業務自動化に欠かせません。
‘ファイルを名前を付けて保存する
ThisWorkbook.SaveAs Filename:=”C:\test\出力ファイル.xlsx”
‘ファイルの存在確認
If Dir(“C:\test\data.csv”) “” Then
MsgBox “ファイルが存在します”
Else
MsgBox “ファイルが見つかりません”
End If
‘フォルダ内のすべてのファイルを取得する
Dim fileName As String
fileName = Dir(“C:\test\*.xlsx”)
Do While fileName “”
Debug.Print fileName
fileName = Dir
Loop
メッセージボックスと入力ダイアログのコード
ユーザーとのインタラクションに使うMsgBox・InputBoxのコードは以下のとおりです。
‘確認ダイアログを表示する
Dim result As Integer
result = MsgBox(“処理を実行しますか?”, vbYesNo + vbQuestion)
If result = vbYes Then
MsgBox “実行しました”
End If
‘入力ダイアログを表示する
Dim inputVal As String
inputVal = InputBox(“値を入力してください”, “入力”, “初期値”)
VBAで使える表示形式コード一覧
VBAのNumberFormatプロパティと組み合わせて使う表示形式コードの主なものを紹介します。
| 表示形式コード | 表示例 | 説明 |
|---|---|---|
| “#,##0” | 1,234 | カンマ区切り整数 |
| “#,##0.00” | 1,234.56 | カンマ区切り小数2桁 |
| “0%” | 12% | パーセント表示 |
| “yyyy/mm/dd” | 2024/01/01 | 日付(年月日) |
| “hh:mm:ss” | 09:30:00 | 時刻(時分秒) |
| “@” | (そのまま) | 文字列として表示 |
‘セルに表示形式を設定するVBAコード例
Range(“A1”).NumberFormat = “#,##0”
Range(“B1”).NumberFormat = “yyyy/mm/dd”
VBAコードのデバッグと実行に関するTips
続いては、VBAコードをより効率よく書くためのデバッグ方法と実行に関するTipsを確認していきます。
デバッグの基本(ブレークポイント・ステップ実行)
VBAのデバッグにはブレークポイントとステップ実行が基本です。ブレークポイントはコードの特定行にF9キーで設定でき、その行で処理を一時停止させることができます。
F8キーを押すことで1行ずつ処理を進めるステップ実行ができ、変数の値の変化をリアルタイムに確認しながらデバッグできます。
エラー処理(On Error)の書き方
実務で使うマクロには、エラーが発生した場合の処理を組み込んでおくことが重要です。
Sub SampleMacro()
On Error GoTo ErrorHandler
’ メイン処理
Range(“A1”).Value = 100
Exit Sub
ErrorHandler:
MsgBox “エラーが発生しました:” & Err.Description
End Sub
On Error Resume Nextを使うとエラーを無視して処理を続行できますが、予期しないバグの原因になることがあるため、本番マクロでの多用は避けることが推奨されます。エラー処理はOn Error GoToを使った明示的な処理が安全です。
処理速度を上げるための最適化コード
大量データを処理するマクロでは、画面更新の停止・自動計算の停止を入れることで処理速度を大幅に改善できます。
Sub FastMacro()
Application.ScreenUpdating = False ’画面更新を停止
Application.Calculation = xlCalculationManual ’自動計算を停止
’ メイン処理をここに記述
Application.Calculation = xlCalculationAutomatic ’自動計算を再開
Application.ScreenUpdating = True ’画面更新を再開
End Sub
まとめ
本記事では、【Excel】エクセルのVBAコード一覧・コード集として、マクロコードの書き方・コードの表示方法・表示形式コードまで幅広く解説しました。
VBAはセル操作・シート操作・ファイル操作・条件分岐・ループ処理など、覚えるべき基本パターンを押さえれば業務自動化の幅が大きく広がるツールです。本記事のコード集を参考にしながら、少しずつ自分の業務に取り入れてみてください。
エラー処理や処理速度の最適化も意識することで、より安定した実用的なマクロを作成できるでしょう。ぜひ日々の業務効率化にお役立てください。