• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBA エクセル出力時にエラー)

AccessVBA エクセル出力時にエラー

このQ&Aのポイント
  • リストの選択に合わせてクエリをエクセルで出力するVBAコードを作成していますが、データベースまたはオブジェクトが読み取り専用であるため、エラーが発生しています。
  • エクセル出力時のエラーを解決するために、XLXS形式での出力を行いたいですが、行数が多いためにマクロビルダーの「書式を保持してエクスポート」は使用できません。
  • エクセル出力時に発生する読み取り専用のエラーについて、どの部分を修正すればよいかわからず困っています。ご教授いただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

色々とおかしいです。 TransferSpreadSheet メソッドのヘルプを読んでみてください。 DoCmd.TransferSpreadsheet acExport _ , spreadsheettype:=acSpreadsheetTypeExcel12Xml _ , tablename:="クエリ2" _ , FileName:="c:\hoya\hoya.xlsx" _ , hasfieldnames:=True のような感じになります。 (パラメータの名前部分 例:spreadsheettyep:= などは分かりやすくするために付けたので 無くても構いません) あと、投稿の際に質問欄にべた書きしたためかもしれませんが、 行継続文字 _ の前には半角スペースが必要です。 エクセルの拡張子もxlsxです。 ※実行する前に、メニュー→デバッグ→○×のコンパイルを行ってエラーが出ないことを 確認してください。 ※変数『リスト』はテキスト型ですよね?

semi076
質問者

お礼

具体的に教えていただき、本当にお手数をお掛け致しました。 >※実行する前に、メニュー→デバッグ→○×のコンパイルを行ってエラーが出ないことを 確認してください。 提示していただいた例を参考に修正し、動作することを確認しました。 ○×コンパイルを使ったことがなかったので、 こんな便利なものを教えていただき、感謝しております。 >※変数『リスト』はテキスト型ですよね? テキスト型です。 教えていただいた例で問題ありませんでした。 回答者No.1さんも、そもそもちゃんと指定できていない点を指摘いただきましたが、 より詳しく書いていただいたNo.2さんをベストアンサーとします。 至らない事ばかりなのにも関わらず、この度は丁寧に教えていただきましてありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> , , "クエリ1","MicrosoftExcel(*.xlxs)" クエリの次は何を意図しているのですか? Exportするファイル名を書くはずなんですが。 出力するファイルを指定すべきところに、ワイルドカードを書いちゃダメです。 さらに(*.xlxs)は(*.xlsx)の間違いでしょうね。 "C:\20130718\Export1.xlsx"のように書いてください。 elseのクエリ2についても。

semi076
質問者

お礼

ご回答いただきありがとうございます。 そもそも誤りが多すぎました・・・。 色々な点をご指摘いただき、感謝しております。 修正し、エラーが出ないことを確認しました。 この度はありがとうございました。