私のパソコンには、Office 2003からOffice 2013がインストールされています。
そのため、異なるバージョンのアプリケーション使いやすくするために必要な設定があります。
たとえば、異なるバージョンのWordを起動するたびに設定変更の画面が出てしまい、非常に面倒です。
そこで、この画面がでないようにするレジストリの変更をします。
これは、Excel MVPの伊藤潔人さん
が記事にされていますので、そちらをご覧ください。
複数バージョンのWord混在時の起動を速くする
少し話が横道にそれましたが、今回の記事は、マクロを使ってWordからExcelファイルを開く場合の話です。
自分のメモです。対処できたので書いておきます。
【問題点】
たとえば、簡単なコードで以下のようなものがあります。
Sub Excel呼び出し例()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
'処理・・・・
xlApp.Quit
Set xlApp = Nothing
End Sub
このような感じでWordからExcelを起動して操作できます。Excelのファイルを開きオートフィルタやVLookUpを使ったりできます。
このVBAでは、通常は、最後にインストールしたバージョンのOfficeのExcelが開かれます。
しかし、そうならないときがあります。なぜか、一番最初にインストールしたExcel 2003が起動することがありました。
プログラムにより挙動が異なりました。別のプログラムでは、同じようにWordからExcelを起動すると、最後にインストールしたExcel 2013が開くことがあったからです。とにかく不安定でした。(原因はよくわかりません)
Excel 2003が開くと不具合が起きます。.xlsxファイルを開こうとすると、Excel 2003がVBAで呼び出されているためにエラーメッセージが表示されるのです。
【回避策】
プログラムを修復します。結果、常にExcel 2013が起動するようになりました。
今回の場合には、Office 2013を修復しました。
Office 2013を一番最後にインストールしたはずなのに、コンピューターでそのように認識されていなかったようなので、しっかり認識させるために修復をしました。
この場合、WordのNormal.dotmはそのまま残りますし、Officeのクイックアクセスツールバーも残ります。Outlookの設定もそのままです。問題なく使えます。
なお、プログラムの修復については、インターネット上にいろいろ情報がありますから探してみてください。
▼関連記事
複数バージョンのWord混在時の起動を速くする