VBA で別のファイルのマクロを非アクティブ状態で実行したいです。
呼び出される別ファイルのマクロは、自分がアクティブだったらエラー終了してしまいます。
VBA で非アクティブ状態のまま別ファイルのマクロを実行する方法はありますか?
呼び出すマクロ
VBA
1 2Public Const ToolPath As String = "C:\Users\XXXXXX\Box\フォルダ" 3Public Const ToolFile As String = "コード付与ツール.xlsm" 4Public Const MacroName1 As String = "コード付与" 5 6sub 更新マクロ() 7 8' 付与ツールファイルを開く 9 Workbooks.Open (ToolPath & "\" & ToolFile, ReadOnly) 10 DoEvents 11 12' 開いたら最小化する 13 ActiveWindow.WindowState = xlMinimized 14 15' 対象シートをアクティブにする 16 ThisWorkbook.Worksheets("予算1").Activate 17 18' 付与ツールファイルのマクロを実行する。 19 Application.Run "'" & ToolPath & "\" & ToolFile & "'!" & MacroName1 20 21end sub 22
別ファイルのマクロ
VBA
1Sub コード付与 2 3' 前略 4 5 ' 実行時アクティブなシートがこのファイルであった場合のエラー処理 6 Dim i As Integer 7 For i = 1 To ThisWorkbook.Sheets.Count 8 If ws.Name = ActiveWorkbook.Sheets(i).Name Then 9 MsgBox "正しいワークブックで実行されませんでした。" & vbCrLf _ 10 & "対象データのワークブックを最前面にして、マクロを再実行してください。", vbCritical 11 End 12 End If 13 Next i 14 15' 後略 16 17end sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。