この記事では、VBAマクロを使用して一連の処理を行い、その処理が完了するまで待機した後、次の処理に移る方法について解説していきます。
ポイントとしては`MkDir`、`Workbooks.Add`、`Application.Wait`を使用することです。
なお、マクロ初心者でもわかりやすいように変数名をaaaaa変数aaaaaといった名称にしています。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロで処理が終わるまで待つ・終了後に次の処理に移る方法
それではまず、処理が終わるまで待つ・終了後に次の処理に移る方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub CreateFoldersAndFiles()
Dim aaaaaFolderPathaaaaa As String
Dim aaaaaIaaaaa As Integer
' Cドライブ直下にsample1からsample10までのフォルダを作成
For aaaaaIaaaaa = 1 To 10
aaaaaFolderPathaaaaa = "C:\sample" & aaaaaIaaaaa
MkDir aaaaaFolderPathaaaaa ' フォルダ作成
Application.Wait Now + TimeValue("00:00:02") ' 2秒待機
' 同名のExcelファイルを新規作成して保存
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=aaaaaFolderPathaaaaa & "\sample" & aaaaaIaaaaa & ".xlsx"
ActiveWorkbook.Close False
Next aaaaaIaaaaa
End Sub
コードのAlt+F8を押し、マクロ選択画面でCreateFoldersAndFiles関数を実行します。
このコードでは、まずCドライブ直下にsample1からsample10までのフォルダを新規作成します。
その後、各フォルダに対応する名前のExcelファイルを新規作成し、フォルダ内に保存します。`MkDir`関数を使用してフォルダを作成し、`Workbooks.Add`メソッドでExcelファイルを作成しています。
また、`Application.Wait`メソッドを使用して、フォルダ作成の間に少し待機時間を設けています。
これにより、処理が安定して完了するのを確認できます
VBAマクロで処理が終わるまで待つ・終了後に次の処理に移る方法
続いては、特定のフォルダ内のExcelファイルを操作し、処理の終了を待つ方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub DeleteColumnAndCreateFile()
Dim aaaaaFolderPathaaaaa As String
Dim aaaaaFileNameaaaaa As String
Dim aaaaaWorkbookaaaaa As Workbook
Dim aaaaaFileaaaaa As String
aaaaaFolderPathaaaaa = "C:\sample"
aaaaaFileNameaaaaa = Dir(aaaaaFolderPathaaaaa & "\*.xlsx")
' sampleフォル
ダ内の全てのExcelファイルを処理
Do While aaaaaFileNameaaaaa <> ""
Set aaaaaWorkbookaaaaa = Workbooks.Open(aaaaaFolderPathaaaaa & "\" & aaaaaFileNameaaaaa)
' "ok"列を探して削除
On Error Resume Next ' エラーを無視
aaaaaWorkbookaaaaa.Sheets(1).Columns("ok").Delete
On Error GoTo 0 ' エラー無視を解除
aaaaaWorkbookaaaaa.Close SaveChanges:=True
aaaaaFileNameaaaaa = Dir() ' 次のファイル名を取得
Loop
' 処理終了後、新規Excelファイルを作成
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=aaaaaFolderPathaaaaa & "\Processed.xlsx"
ActiveWorkbook.Close False
End Sub
コードのAlt+F8を押し、マクロ選択画面でDeleteColumnAndCreateFile関数を実行します。
このコードでは、指定したフォルダ内の全てのExcelファイルを開き、特定の列(ここでは”ok”列)を削除した後、新たにExcelファイルを作成しています。
`Dir`関数を使用してフォルダ内のファイルを順に取得し、`Workbooks.Open`メソッドでファイルを開いています。
列の削除には`Columns.Delete`メソッドを使用し、処理が完了したら`Workbooks.Add`メソッドで新しいファイルを作成して保存しています。
まとめ
この記事では。