Excel2010と2016の切り替えをワンタッチで行うマクロ

Excel/VBA

同じ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上でエクセルを開く際にはこんな感じで簡単にスイッチ出来るようになりますので、混合して利用されてる方は是非お試しください~(ᵔᴥᵔ)

コメント