VBA:アプリケーションの二重起動を防ぐ
Sub AppOverlap()
Dim objApp As Word.Application
Dim myAppOpen As Boolean
On Error GoTo HandleErr
Set objApp = GetObject(, "Word.Application")
myAppOpen = True
MacroContinue:
'Wordのインスタンスが作成されていなかったら作成する
If myAppOpen = False Then
Set objApp = CreateObject("Word.Application")
Else
Msgbox("Wordが起動中です。")
Exit Sub
End If
'新規文書を挿入する
With objApp
.Visible = True
.WindowState = wdWindowStateMinimize
.Documents.Add
End With
Set objApp = Nothing
Exit Sub
HandleErr:
'WordオブジェクトにGetObject関数でアクセスできなかった(Wordが未起動だった)場合
If Err.Number = 429 Then
myAppOpen = False
Resume MacroContinue
End If
End Sub


コメント