misc.log

日常茶飯事とお仕事と

Officeとファイルの関連付けを変更する

Office 365をクイック実行モード(Click-To-Run)でインストールすると、旧バージョン(Office 2010など)との共存環境を作ることができます。この状態で、拡張子とアプリの関連付けを変更する方法について調べたメモを残しておきます。

やりたいこと

Office 2013とOffice 2010が共存した状態で、拡張子.xlsやInternet ExplorerからのExcelファイルダウンロードなどの際に開くアプリをOffice 2010のExcelに設定したい(Office 2010が入った状態で2013をインストールすると、関連付けは2013に変更されてしまうため)。

オチ

先にオチを書いておきましょう。

  • 個別拡張子との関連づけはassocやftypeコマンドで設定可能だが、ブラウザから起動した際の設定などは変えられなかった(できるのかもしれないがわからなかった)。
  • 手っ取り早い方法として、Office 365 + Office 2010環境で、改めてOffice 2010の修復セットアップを行うと、2013を活かしたままアプリの関連付けを2010に変更できた。ブラウザからのダウンロード時なども2010が利用されるようになる。

以下では、上記前者のコマンドによる設定変更について、せっかく調べたので書いておきます。

拡張子との関連付け設定

コントロールパネルなどからおこなえるファイルの関連付け設定では、実際のEXE(Excel.exeなど)との指定は変更できないようです。既に選択肢として表示されているものからの選択しかできないようなので、この方法はダメでした。

具体的なプログラムまで変更するには、管理者モードで開いたコマンドプロンプトから下記のようなコマンドを使って変更します。

ftype Excel.Sheet.8="C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" /dde

上記のコマンドは、ファイルの種別を表すラベル名(Excel.Sheet.8 など)に対して具体的なプログラムを割り当てるものです。実際には、ファイル種別名と拡張子を割り当てる「assoc」コマンドもありますが、とりあえずプログラムを変更するだけであればファイル種別名と実行形式ファイルの関連付けを設定する「ftype」コマンドだけでOKです。

ちなみに上記のファイル種別名「Excel.Sheet.8」は、Excel 2003形式の拡張子に関連づけられたファイル種別名です。上記コマンドを実行すると、拡張子「.xls」に対するOfficeが2010に設定されます。

実際にどういう設定が行われているかは、「assoc」や「ftype」を引数なしで実行すれば一覧出力されます。

ブラウザから開くアプリの設定

上記の設定では、Webページに公開されているリンクからExcelファイルをダウンロードした際などに開くアプリの設定までは変更されませんでした。

レジストリ上の設定箇所

レジストリ上のどこかに情報があるはず。ということで探してみると、

\HKEY_CLASSES_ROOT\Excel.Sheet.8

などに、おそらくWindows Explorerなどから操作した場合の既定のプログラムに関する設定がありました。前述のftypeコマンドで設定を変更すると、この部分の

\HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command

の内容がOffice14(Office 2010)に変更されました。ただ、ほかの項目(Edit、New、OpenAsReadOnly、Print、Printto、ViewProtected)についてはOffice 15のままです。いったいどういうことなのでしょうか…