« メモ:鉄板焼きのおいしいお店 | メイン | XPのデスクトップをVista風にしてみよう(SP3対応) »

2008年9月14日 (日)

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

トラックバック

このページのトラックバックURL:
http://app.blog.eonet.jp/t/trackback/349283/16192464

VBA:アプリケーションの二重起動を防ぐを参照しているブログ:

コメント

コメントを投稿

フォトアルバム

2012年1月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

My Photostream

  • Flickrにアップしてる写真の一部です。
    www.flickr.com
    This is a Flickr badge showing public photos and videos from micek_flicek. Make your own badge here.

クリック募金

  • クリックで救える命がある。
ブログ powered by TypePad