新規作成→ Excel ワークシート.xlsmファイル

新規作成→ Excel ワークシート.xlsmファイル

Office2010まで。2013以降は下の方に加筆したからね。

フォルダの中で右クリックをして新規のエクセルファイルを作る時に、
新規 Microsoft Office Excel ワークシート.xlsxではなく
新規 Microsoft Office Excel ワークシート.xlsmファイルにする方法はありますか?

~テンプレ~ 凸撃

----↓ここから↓----
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.xlsm\Excel.SheetMacroEnabled.12\ShellNew]
"FileName"="excel12.xlsm"
----↑ここまで↑----

上記をメモ帳などに記述し、適当な名前を付けて保存をしたあとで、ファイル名を「○○.reg」となるように拡張子を変更します。あとで削除するのでファイル名は何でもかまいません。
できたファイルをダブルクリックすることで、そのパソコンのレジストリに記述が組み込まれ、以後、右クリックメニューに「Microsoft Excel マクロ有効ワークシート」が追加されます。
HKEY_CLASSES_ROOT へのレジストリの改変ですが、特にOSを再起動する必要もなく、記述を追加してから数秒~数十秒で設定は反映されるようです。



あ。いかん。
足りない。

これだけだと、ファイルは作成されますが、そのファイルは有効に動作しません。
ダブルクリックで開こうとしてもこんなエラーが表示されます。

87987.png


Excelの新規作成のテンプレートが保存されているフォルダにexcel12.xlsmを作成しておく必要があります。
C:\Windows\ShellNew
を開きます。
*.xlsxのテンプレートがEXCEL12.XLSXという名前で存在するはずですので、それをダブルクリック開いてそのまま単純に「名前を付けて保存」でファイルの種類を「Excel マクロ有効ブック(*.xlsm)に変更して保存します。このとき確実にさっきレジストリに登録したファイル名の「excel12.xlsm」になっていることを確認します(大文字でも構いません。全角になっちゃうと駄目です)。


しかしいざ保存しようとすると、そのフォルダにアクセスする権限がないので、アンタのドキュメントフォルダにでも保存しましょうか?という内容のダイアログが表示されます。
87989.png
(図ではファイル名が間違ってますが許してください)

ドキュメントフォルダでもいいですし、デスクトップでも構わないのでとにかく一旦保存します。
保存したファイルを
C:\Windows\ShellNew
にドラッグ&ドロップなどで移動もしくはコピーします。
「対象のフォルダへのアクセスは拒否されました」というダイアログが表示されますので、「続行」ボタンをクリックして強引にファイルを保存します。
87990.png


これで作業は終了です。作業の最中にさっき設定したレジストリエントリが反映されるようになり、右クリックの新規作成メニューに「新規 Microsoft Excel マクロ有効ワークシート」が増えてるはずです。



2016/12/09 追記。
Windows10のExcel2016環境で試しました。

Windows10には
C:\Windows\ShellNew
がないんですよね。

でもどうせShellNewってフォルダ名は変わらないだろなってことで検索すると、
C:\Program Files (x86)\Microsoft Office\Root\VFS\Windows\ShellNew\excel12.xlsx
が見つかったので
C:\Program Files (x86)\Microsoft Office\Root\VFS\Windows\ShellNew\excel12.xlsm
を作成(管理者権限云々のダイアログを経る必要があります)。
さらにレジストリの
HKEY_CLASSES_ROOT\.xlsm\Excel.SheetMacroEnabled.12\ShellNew
の値のデータが単に「excel12.xlsm」なだけなのを
C:\Program Files (x86)\Microsoft Office\Root\VFS\Windows\ShellNew\excel12.xlsm
として上書き。

再サインインなどの必要はなく、数秒から十数秒くらいで設定が反映され、右クリックメニュー→「新規作成」の先に
「Microsoft Excel マクロ有効ワークシート」が作成されます。

45ere3.png








2015/10/28追記

さて、これができるなら2007より前の形式(*.xls)も作りたいってーのが人情です。
HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew
とたどり、右ペインに
FileName
という文字列値を作成し、値のデータとして
excel8.xls
を設定します。

C:\Windows\ShellNew
にどっかテキトーな場所で作った*.xlsファイルを
EXCEL8.XLS
とリネームして保存します。


もうちょっと欲張ってWordの2007以前の形式(*.doc)を作るなら
HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew
の右ペインに
NullFile
という文字列値を作成します。
それだけ。
Wordの場合は値のデータは設定不要です。
あと、「NullFile」値ではなく「FileName」でも同じ動作をしますが「*.docx」について調べると「NullFile」ってなってるから同じにしてみました。
関連記事

Guide
  •  …この記事と同じカテゴリの前後記事へのページナビ
  •  …この記事の前後に投稿された記事へのページナビ
 

~ Comment ~

  ※コメントの編集用
  シークレットコメントにする (管理者のみ表示)

~ Trackback ~

卜ラックバックURL


この記事にトラックバックする(FC2ブログユーザー)

MENU anime_down3.gif

同じカテゴリの記事が一覧表示されます
同じタグの記事が一覧表示されます
更新月別の記事が一覧表示されます
キーワードで記事を検索