- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBA エクセル出力時にエラー)
AccessVBA エクセル出力時にエラー
このQ&Aのポイント
- リストの選択に合わせてクエリをエクセルで出力するVBAコードを作成していますが、データベースまたはオブジェクトが読み取り専用であるため、エラーが発生しています。
- エクセル出力時のエラーを解決するために、XLXS形式での出力を行いたいですが、行数が多いためにマクロビルダーの「書式を保持してエクスポート」は使用できません。
- エクセル出力時に発生する読み取り専用のエラーについて、どの部分を修正すればよいかわからず困っています。ご教授いただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
色々とおかしいです。 TransferSpreadSheet メソッドのヘルプを読んでみてください。 DoCmd.TransferSpreadsheet acExport _ , spreadsheettype:=acSpreadsheetTypeExcel12Xml _ , tablename:="クエリ2" _ , FileName:="c:\hoya\hoya.xlsx" _ , hasfieldnames:=True のような感じになります。 (パラメータの名前部分 例:spreadsheettyep:= などは分かりやすくするために付けたので 無くても構いません) あと、投稿の際に質問欄にべた書きしたためかもしれませんが、 行継続文字 _ の前には半角スペースが必要です。 エクセルの拡張子もxlsxです。 ※実行する前に、メニュー→デバッグ→○×のコンパイルを行ってエラーが出ないことを 確認してください。 ※変数『リスト』はテキスト型ですよね?
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.1
> , , "クエリ1","MicrosoftExcel(*.xlxs)" クエリの次は何を意図しているのですか? Exportするファイル名を書くはずなんですが。 出力するファイルを指定すべきところに、ワイルドカードを書いちゃダメです。 さらに(*.xlxs)は(*.xlsx)の間違いでしょうね。 "C:\20130718\Export1.xlsx"のように書いてください。 elseのクエリ2についても。
質問者
お礼
ご回答いただきありがとうございます。 そもそも誤りが多すぎました・・・。 色々な点をご指摘いただき、感謝しております。 修正し、エラーが出ないことを確認しました。 この度はありがとうございました。
お礼
具体的に教えていただき、本当にお手数をお掛け致しました。 >※実行する前に、メニュー→デバッグ→○×のコンパイルを行ってエラーが出ないことを 確認してください。 提示していただいた例を参考に修正し、動作することを確認しました。 ○×コンパイルを使ったことがなかったので、 こんな便利なものを教えていただき、感謝しております。 >※変数『リスト』はテキスト型ですよね? テキスト型です。 教えていただいた例で問題ありませんでした。 回答者No.1さんも、そもそもちゃんと指定できていない点を指摘いただきましたが、 より詳しく書いていただいたNo.2さんをベストアンサーとします。 至らない事ばかりなのにも関わらず、この度は丁寧に教えていただきましてありがとうございました。