Excel

【Excel】VBAマクロで処理終了をメッセージボックスで通知し、いいえ(no)で連続処理を終了する方法【MsgBox, For Each, SaveAs】

当サイトでは記事内に広告を含みます

この記事では、Excel VBAを使用して特定の処理を行い、その終了をメッセージボックスで通知する方法について解説していきます。

ポイントとしては

`MsgBox`関数とループ処理、

`SaveAs`メソッド

を使用することです。

下記の解説では完全な初心者でもわかりやすいように変数名を少し変わった名称にしています。

それでは詳しく見ていきましょう!

VBAマクロで処理終了をメッセージボックスで通知する方法【KeisanToHozon, SaveAs】

それではまず、VBAマクロで処理終了をメッセージボックスで通知する方法について解説していきます。

この例では、1シートのすべての各列の合計を最終行の次に表示し、上書き保存する処理を行います。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub KeisanToHozon()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets(1)
    Dim saigoGyo As Long
    saigoGyo = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    Dim i As Integer
    For i = 1 To ws.Columns.Count
        If Application.WorksheetFunction.CountA(ws.Columns(i)) > 0 Then
            ws.Cells(saigoGyo + 1, i).Value = Application.WorksheetFunction.Sum(ws.Columns(i))
        End If
    Next i

    ws.SaveAs Filename:="ファイルパス", FileFormat:=xlWorkbookDefault
    MsgBox "処理が完了しました。", vbInformation
End Sub

コードのAlt+F8を押し、マクロ選択画面でKeisanToHozon関数を実行します。

このコードでは、最初にワークシートを設定し、各列の合計値を最終行の次に表示します。

その後、指定したファイルパスに上書き保存し、メッセージボックスで処理完了を通知します。

 

VBAマクロでループの1処理ごとにメッセージを出し、いいえ(no)を選ぶと連続処理終了にする方法

続いては、VBAマクロでループの1処理ごとにメッセージを出し、いいえ(no)を選ぶと連続処理終了にする方法について解説していきます。

この例では、指定フォルダ内の全ブックを順番に読み取り、各ブック1シート目のA列の合計値を最終行の次に出し、上書き保存する処理を行います。

1ブックごとに処理を継続(はい)か終了(いいえ)かを選ぶメッセージを出します。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub FolderBooksProcess()
    Dim fs As Object, f As Object, fl As Object, wb As Workbook
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder("フォルダパス")
    Set fl = f.Files

    For Each wb In fl


        Set wb = Workbooks.Open(wb.Path)
        Dim gyoSum As Long
        gyoSum = Application.WorksheetFunction.Sum(wb.Sheets(1).Columns(1))

        wb.Sheets(1).Cells(wb.Sheets(1).Rows.Count, 1).End(xlUp).Offset(1, 0).Value = gyoSum
        wb.Close SaveChanges:=True

        If MsgBox("次のブックに進みますか?", vbYesNo) = vbNo Then Exit Sub
    Next wb
End Sub

コードのAlt+F8を押し、マクロ選択画面でFolderBooksProcess関数を実行します。

このコードでは、指定されたフォルダ内のすべてのブックを順番に開き、1シート目のA列の合計値を計算し、最終行の次に表示して保存します。

そして、ユーザーが「いいえ(no)」を選択するまで次のブックへの処理を続行します。

 

まとめ VBAマクロでいいえ(no)で連続処理を終了する方法【メッセージ:MsgBox, For Each, SaveAs】

この記事を通じて、VBAマクロを使用してExcelの自動化を行う際に必要なスキルを身に付けることができます。

初心者でも理解しやすいように、変数名や処理の流れをわかりやすく説明していますので、ぜひ挑戦してみてください。