1

問題があります。MS Office の 2 つのバージョン (2007 と 2010) がインストールされています。2007 バージョンで Word ファイルと Excel ファイルを開く必要があるスクリプトがあります。

Office の 2007 バージョンを開こうとする手順を作成しました。失敗した場合 (たとえば、2007 バージョンを持っていないユーザー)、既定のバージョンが開きます。

ここでの問題は、2007 が存在するにもかかわらず、バージョン 2010 が公開されていることです。「エラー時の再開」オプションを削除し、Word.Application.12 を Word.Application.13 などに変更すると、そのようなアプリケーションを開くことができないというエラーが表示されますが、これは正しいことです。これは、システムが .12 を「意味のある何か」 - しかし、それはそれを開始しません.

Sub StartWord
On error resume next
        Set appWord = CreateObject("Word.Application.12")
            appWord.visible = false
            appWord.DisplayAlerts = false
        If err.number <> 0 Then
            Set appWord = CreateObject("Word.Application")
                appWord.visible = false
                appWord.DisplayAlerts = false
        End if
On error goto 0
End Sub

ここに手がかりはありますか?

4

1 に答える 1

1

さて、私は自分自身の質問に答えるつもりのようです。

Word の場合、次の動作とコードをテストしました。

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run ("""C:\Program Files (x86)\MicrosoftOffice\Office12\WINWORD.EXE""/regserver"), 0
Set objShell = Nothing
wscript.sleep 1000
StartWord

Sub StartWord
Set appWord = GetObject(, "Word.Application")
appWord.visible = FALSE
appWord.DisplayAlerts = false
End Sub

ここでの結果は、正しいバージョンの Word が使用されていることです。ただし、同じコードは EXCEL では機能しません。

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run ("""C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE""/regserver"), 0
Set objShell = Nothing
wscript.sleep 1000
StartExcel

Sub StartExcel
    Set appExcel = GetObject("", "Excel.Application")
            appExcel.visible = true
            appExcel.DisplayAlerts = false      
End Sub

これら 2 つの部分の Microsoft の動作が異なるのはなぜですか?

于 2013-11-14T16:58:34.207 に答える