Excelマクロを使用して業務を自動化する際、処理の履歴をExcelシートに出力し、実行後に記録を参照できるようにしたいときがあります。
ログ出力をする簡単なサンプルです。
内容:
動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2503)です。
アウトプットイメージ
下図のように、マクロがあるExcelファイルにシート名「ログ」を作成し、処理結果を示すログを出力します。
この事例では、A列とB列に処理対象と処理内容のログを出力しています(For文で処理を1から5まで繰り返し)。
VBAサンプル
VBAのサンプルは次のとおりです。
Dim ログシート As Worksheet Sub ログ出力サンプル() ' ログシートの指定' Set ログシート = ThisWorkbook.Sheets("ログ") ' シートの内容をクリア、項目作成' ログシート.Cells.Delete ログシート.Cells(1, 1).Value = "処理対象" ログシート.Cells(1, 2).Value = "出力内容" ' ログの出力(サンプルで5回繰り返し)' Dim i As Long For i = 1 To 5 Call ログ出力(i, "処理" & i) Next i ' ログを確認しやすいように列幅調整' ログシート.Columns.AutoFit MsgBox "完了しました。", vbInformation End Sub Sub ログ出力(処理対象 As Long, 出力内容 As String) Dim 出力行 As Long 出力行 = ログシート.Cells(Rows.Count, 1).End(xlUp).Row + 1 ログシート.Cells(出力行, 1).Value = 処理対象 ログシート.Cells(出力行, 2).Value = 出力内容 End Sub
以上、Excel VBAで実行ログをExcelシートに出力する簡単サンプルでした。