VBA のトラブル

DoCmd.TransferSpreadsheet で出力した xlsx ファイルを開くとエラーが発生する

最終更新日:2013/11/19

Microsoft Office Access の VBA で、テーブルやクエリの内容を DoCmd.TransferSpreadsheet コマンドでエクスポートした xlsx ファイルをダブルクリックして開くと、次のようなメッセージが表示されてしまいました。

'xxx.xlsx' の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?"

'xxx.xlsx' の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?

ここで [はい] をクリックすると、続けて次のようなメッセージが表示されます。

読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。

読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。

ログファイルを開くと、「削除されたレコード: /xl/workbook.xml パーツ内の名前付き範囲 (ブック)」と出力されています。

削除されたレコード: /xl/workbook.xml パーツ内の名前付き範囲 (ブック)

この原因はよくわかりませんが、出力するテーブルやクエリの名前に半角または全角のかっこ“ () ()”を含んでいる場合にこの現象が起き、単純に名前だけを変更してかっこを含まないようにして同じコードを実行すると、出力した xlsx ファイルを問題なく開けることを確認できています。

例)
DoCmd.TransferSpreadsheet acExport, , "Q(1)", "hoge.xlsx"

ここから推測するに、使用できない文字というものがありそうなので、同じ事象が発生した場合には名前に何か特殊な文字を使っていないかどうかを疑ってみてもいいかもしれません。