同じPCに2010と2016が入っている場合、通常は後にインストールした方がデフォルトで起動する様になっており、原則変更が出来ません。
前のバージョンのエクセルで開きたいって場合結構有るんですが、そんな時にはコントロールパネルでエクセルの修復を行わなければならずとっても時間が掛かる。。。そんな訳でワンタッチで切り替えれるマクロを作りボタン化してみましたのでご紹介。
切り替えマクロ
初めにツール「参照設定」からWindows Script Host Object Modelの追加を行う。
'*********************************************************************
' Excelバージョン切替処理
'*********************************************************************
Sub VersionChange()
' 変更が有り保存されていない場合
' 問答無用で保存せず閉じるロジックなのでここで一応セーフティ処理
If ActiveWorkbook.Saved = False Then
Dim dRet As Integer
dRet = MsgBox("変更が保存されていません。" & vbCrLf & "実行すると変更が削除されますが宜しいですか?", vbYesNo + vbQuestion, "確認")
If dRet = vbNo Then
Exit Sub
End If
End If
' コマンド文字列
Dim strCmd As String
' Excelバージョン文字列
Dim strVersion As String
' 現在実行中のExcelバージョンを取得しパスを指定
strVersion = Left(Application.Version, 2)
' 2016実行中の場合
If strVersion = 16 Then
strVersion = "Office14"
' 2010実行中の場合
Else
strVersion = "root\Office16"
End If
' バージョンNo参考
' 2019 = 16
' 2016 = 16
' 2013 = 15
' 2010 = 14
' 2007 = 12
' 2003 = 11
' 2002 = 10
' 2000 = 9
' 自分のOSのbitを取得
Dim colItems As Object
Dim itm As Object
Set colItems = CreateObject("WbemScripting.SWbemLocator").ConnectServer.ExecQuery("Select * From Win32_OperatingSystem")
' OSbit別でディレクトリ設定
For Each itm In colItems
If itm.OSArchitecture = "64 ビット" Then
strCmd = """C:\Program Files (x86)\Microsoft Office\" + strVersion + "\EXCEL.EXE""" + " """ + ActiveWorkbook.Path + "\" + ActiveWorkbook.Name + """"
Else
strCmd = """C:\Program Files\Microsoft Office\" + strVersion + "\EXCEL.EXE""" + " """ + ActiveWorkbook.Path + "\" + ActiveWorkbook.Name + """"
End If
Exit For
Next
' アラートOFF
Application.DisplayAlerts = False
' エクセルを終了する
Application.Quit
' コマンド実行
CreateObject("WScript.Shell").Run strCmd
End Sub
ボタン化してクイックアクセスツールバーに配置する
Excel上部の【ファイル】タブから【オプション】→【クイックアクセスツールバー】の順にクリックします。
【コマンドの選択】コンボボックスでマクロを選択すると先程作成したマクロが出てくるので追加をクリックします。
追加したら【変更】ボタンが押せるようになり、表示名とアイコンをカスタマイズ出来るようになります。
ハイ。すごくChangeっぽさが出ました。ちなみにリボンに登録する事も勿論出来るのでお好みで。
実際の動き
実行するとこんな感じで簡単に切り替えを行えるようになります。
このマクロは本記事の様にパーソナルに入れて置けば、そのPC上でエクセルを開く際にはこんな感じで簡単にスイッチ出来るようになりますので、混合して利用されてる方は是非お試しください~(ᵔᴥᵔ)
コメント