2018年09月03日

【Excel VBA】.xlsm→.xlsx保存でエラー

問題

.xlsmを.xlsxで保存しようとしたらエラーが出た。
wb.SaveAs Filename:=FileName, FileFormat:=xlWorkbookNormal

実行時エラー '1004':
'SaveAs' メソッドは失敗しました: '_Worksheet' オブジェクト


え?なんで??
びっくりしすぎて、エラーのスクショ撮るの忘れたw


MS技術情報

[XL2002] エラー メッセージ : 'SaveAs' メソッドは失敗しました

【発生条件】
VBA マクロを使用してワークシートを保存している。
かつ
ファイル形式に、定数 xlWorkbookNormal を指定している。

【回避策】
ファイル形式の指定を定数 xlWorkbookNormal から 1 に変更します。

【へなちょこメモ】
技術情報は2002だけど、2016でも発生
workbookを保存でも発生


やってみた?@

とりあえず、MSの言う通りにやってみる。
wb.SaveAs Filename:=FileName, FileFormat:= 1

これで実行したら、確かに実行時エラーは出なくなった。
が。

保存したファイルを開きなおすと・・・
0038.png

ちょw
MSさーーん!
ちゃんとテストしてよー!!

つか、 XlFileFormat 列挙 には、1っていう値は載ってないようだが・・・。
1って何だ?
xlWorkbookNormalは、-4143でしょ?


やってみた?A

XlFileFormat 列挙に使えそうなものはないか、がさごそ・・・。
あった。

wb.SaveAs Filename:=FileName, FileFormat:= xlWorkbookDefault

これだとエラーも出ず、開きなおしても問題ない。

xlWorkbookDefaultは
Excelのオプション>保存>ブックの保存のファイルの保存形式

かな?と思って、試しに.Excel 97-2003 ブック(*.xls)に設定して、xlWorkbookDefaultで保存してみたけど、.xlsxで保存されてた。
デフォルトって何だろう??
曖昧なものはあんまり使いたくないけど、しゃーない。

MSさん、新機能なんてもういらないから過去のバグ直してけろ。













タグ: Excel VBA
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/8040721
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: