Excelマクロのプログラミングにおいて、やっかいなこと
の一つに拡張子の扱いがある。

Windows全体で、ファイル名を拡張子付きで表示するか
拡張子なしで表示するかは、エクスプローラーで設定でき
る。エクスプローラーの「表示」のタブやメニューに設定
変更のためのチェックボックスやメニューがある。
(Windows10とWindows11で違う)

エクスプローラーは、ファイルやフォルダの一覧を表示す
るプログラム。Windowsシステムツールの中に含まれて
いる。

開いているExcelのファイルが複数あるばあい、マクロでは
Workbooks(”xxxx”)
として、xxxxの箇所にファイル名を指定してどのファイ
ルかを指定する。

Windows全体で拡張子付きの表示になっている場合には、
拡張子付きで記載する。例えば、 
Workbooks("sample.xlsx")
といった形である。

Windows全体で拡張子なしの表示になっている場合、拡張
子なしで指定することができる。前記のファイルの場合、
Workbooks("sample")
となる。
ところが、こうして書かれたマクロは、Windows全体で拡
張子付きの表示になっている場合は、動かない。

Windows全体で拡張子なしの表示になっている場合であっ
ても
Workbooks("sample.xlsx")
と書いても問題ないので、常に拡張子付きでマクロを作れば
この問題は解消する。マクロの記録を行う際も、記録される
マクロはWindows全体の設定にかかわらず拡張子付きである

Windows全体で拡張子なしの表示になっている場合で、拡
張子だけが違う2つのファイルがあったとする。例えば、
sample.xlsx
sample.xlsm
が存在するケースである。表示はどちらもsampleとなるので
人が見分けるためには格納されているファイルのアイコンなど
で区別するしかない。
Workbooks("sample")
で指定したらどうなるだろうか?

どうやら先に開いた方が選ばれるように見えた。

マクロが動かなくなる問題や、どちらのファイルなのか悩む問
題を解消するために、マクロを書く際には、拡張子を必ずつけ
るようにしたい。