見習いエンジニアがゆく

見習いエンジニアの勉強帳 VBA・NWなどなどITの勉強用ブログです。のんびり、のんびり。

Excel VBA入門編1.4 コードを記録したファイルの保存する 同じファイルが2つできている?

こんばんは。ハイルナーです。

今回VBAのコードを記録したExcelファイルを保存する際の注意点を紹介します。

 

 

ファイルの拡張子について

Excel2003までとExcel2007以降では、以下のようにファイルの拡張子が変わっています。

  1. .xls   :Excel2003までのファイルの拡張子
  2. .xlsx :Excel2007以降のマクロ無しファイルの拡張子
  3. .xlsm:Excel2007以降のマクロありファイルの拡張子

 

Excel2003までのファイルは『xls』の拡張子でした。さすがに2019年の現在では、『xls」ファイルを使っているところも少ないと思います。

ただ、ずっと同じマクロツールを使っている会社だと『xls』のファイルを使っているなんてこともあるようですけどね。。。

 

そして、Excel2007以降でブックにVBAのコードを記録した状態(マクロを記録した状態)で保存する際は、必ず『xlsm』拡張子で保存する必要があります。

『xlsx』で保存して、ブックを閉じてしまうとVBAのコードは記録されませんのでご注意を。

 

保存のときの注意

例えば、以下のようなVBAのコードを書いたBook3の保存をしようとします。

f:id:melancholy198x:20190113211341j:plain

保存は、「Ctrl」+「S」(ファイルの保存ショートカット)からでも「ファイル」>「上書き保存」でもどちらでも良いです。

ここで気を付けて欲しいのが『拡張子』です。

もし、VBAのコードを記述したファイルを保存する際に拡張子を「xlsx」で保存しようとすると、「VBプロジェクトが記録できないよ~」っていうお知らせダイアログボックスが表示されます。

f:id:melancholy198x:20190113212148j:plain

VBAのコード(マクロ)を記録して残すには、拡張子に「xlsm」を選択して保存することに注意してください!!

もし、上の画面のダイアログボックスで「はい」を選択して、「xlsx」形式で保存して、ファイルを閉じた場合、再度そのファイルを開いたらVBAのコードは消えてしまっています。

せっかく努力して書いた長いコードが消えるたら悲しいです。ダイアログボックスも表示されるので、大丈夫だと思いますが、マクロ・VBAのコードは「xlsm」で保存が必要と覚えておいてください。

仮にダイアログボックスで「はい」を選択して「xlsx」で保存したとしても、ファイルを閉じる前ならまだコードは消えていないので、別名保存で「xlsm」で保存することでマクロを保持したファイルを保存することができます。

 

初心者の私が疑問に思ったなぜか「2つファイルができている」事件

VBAを始めて独学で勉強していた時、なぜかVBAを記録して保存すると、ブックが2つできてしまいました。初心者の私は、何でだろうと途方にくれたのですが。。。

理由は簡単で、VBAのコードを書く前にファイルを「xlsx」で保存して、VBAのコードを書いた後に同じ名前で「xlsm」で保存していたのです。

A.xlsxとA.xlsmがある状態だったんですね。拡張子の違いなんて全然知らなかったので。

 

初めて勉強するときは、ほんとうに些細なところでつまずいたりします。ちょっとしたコードの書き間違えだったり、設定が分からなかったり。

でも、少しずつ勉強していけば解決します。ネットで調べる力を付けるのも良いでしょう。

 

このブログでも少しずつ勉強ができればと思います。

引き続きよろしくお願いいたします。