shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel VBA】実行ログをExcelシートに出力する簡単サンプル

Excelマクロを使用して業務を自動化する際、処理の履歴をExcelシートに出力し、実行後に記録を参照できるようにしたいときがあります。

ログ出力をする簡単なサンプルです。

内容:

動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2503)です。

アウトプットイメージ

下図のように、マクロがあるExcelファイルにシート名「ログ」を作成し、処理結果を示すログを出力します。

この事例では、A列とB列に処理対象と処理内容のログを出力しています(For文で処理を1から5まで繰り返し)。

A列とB列に処理対象と処理内容のログが出力されています

シート名「ログ」に処理結果を出力

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シートに出力する簡単サンプルでした。