【Excel VBA】マクロで作ったファイルで「ファイル形式と拡張子が一致しません」が出た時の対処法

Excel
スポンサーリンク

今回はマクロで作成したファイルに「ファイル形式と拡張子が一致しません」と表示された時の対処法を紹介したいと思います。

私自身よくやらかすので是非参考にしていただければと思います(笑)。

スポンサーリンク

どういう症状か

「具体的にどういうことやねん」ってなると思うので、例として「福島県.csv」という実際にマクロを介して作成したCSVファイルを開いてみます。

こんな具合で「拡張子が一致しない」旨のメッセージが表示されました。

今回はこれを出さないようにマクロを修正しようというお話になります。

スポンサーリンク

発生する原因

発生した原因ですが、元のファイルの拡張子が「.xlsx」だったものを「.csv」に変えてSaveAsメソッドで保存した為です。例えば以下のような感じです。

ActiveWorkbook.SaveAs targetfolder & "\" & Tohoku(i) & ".csv"

一応コード自体は問題なく実行されますが、拡張子を無理矢理変更しただけなので内部的にはCSVファイルにはなっていないという訳です。

また、上記のコードを使用したマクロを以下の記事で紹介していますので、こちらも併せてご覧ください!

スポンサーリンク

対処法

これを対処するには、SaveAsのところにFileFormat保存したいファイルの形式を指定する必要があります。先ほどのコードを修正すると以下のようになります。

ActiveWorkbook.SaveAs targetfolder & "\" & Tohoku(i) & ".csv", _
                      FileFormat:=xlCSV

このように保存先パス名の後ろにカンマを書き、”FileFormat:=【ファイル形式】”と指定するとそのファイル形式で保存することが出来ます。今回のようにCSVファイルとして保存したいならxlCSVとすればOKです。

因みに注意しておきたいのが、FileFormatの後ろのファイル形式は””(ダブルクォーテーション)で囲む必要はない点です。囲んでしまうとFileFormatが効かなくなってしまいますのでそこだけは注意しましょう。

私自身何故かやらかすので・・・(笑)

まとめ

今回はマクロで作成したファイルに「ファイル形式と拡張子が一致しません」と表示された時の対処法を紹介しました。

マクロで元のファイルの拡張子を変えて保存したい場合はFileFormatでファイル形式が指定されているか確認するようにしましょう。

コメント

タイトルとURLをコピーしました