• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBA Excelエクスポートについて)

AccessVBA Excelエクスポートについて

このQ&Aのポイント
  • AccessVBA Excelエクスポートで質問です。(DoCmd.TransferSpreadsheet acExport)既存Excelファイルに名前定義し、そこにVBAを用いてエクスポートをしたいのですが、名前定義したところにエクスポートされません。
  • Excel側で設定している名前定義はDataとしており、範囲はデータ!$B$5:$M$5です。Access VBAで書き込んでいる内容はDoCmd.TransferSpreadsheet acExport, 8, "テーブル名","ファイル名", False,"Data"です。
  • Access側で実行し、実際にExcelにエクスポートされる1行目の位置は名前定義したところからではなく、シート名:データ B1:M1にエクスポートされてしまいます。現在作成しているVBAではエクスポートできなくなってしまったため、正しいVBAや名前定義の設定がある場合でもこの現象を回避する方法を教えていただきたいです。

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

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

これ、以前から不思議に思っていました。 http://office.microsoft.com/ja-jp/access-help/HA001226308.aspx には 『Range/範囲   インポートまたはリンクするセル範囲を指定します。 ワークシート全体をインポートまたはリンクする場合は、 この引数を指定する必要はありません。 インポートまたはリンクするワークシートの範囲名を入力するか、 A1:E25 などのセル範囲を指定します。 Access 97 以降のバージョンでは、 A1..E25 の構文は使うことができないことに注意してください。 Excel 5.0 以降のバージョン形式のワークシートからインポートまたはリンクする場合は、 セル範囲の前にワークシート名と感嘆符を付けてワークシートを指定することができます (ワークシート名!A1:C7 など)。 メモ ワークシートにエクスポートする場合は、この引数は指定しません。 範囲を指定すると、エクスポートは失敗します。』 と載っています。 >範囲を指定すると、エクスポートは失敗 失敗の「意味」するところが良く分からないですが使うな・・ということでしょう。 前置きはこれ位にして、オートメーションでExcelを開いて Sub xlOutPut() 'Microsoft Office xx.xx Access database engine Object Library 'または、Microsoft DAO 3.6 Object Library に参照設定が必要です   Dim daoDB As Database   Dim daoRS As DAO.Recordset   Dim objXl As Object   Dim objBk As Object      Set daoDB = CurrentDb   Set daoRS = CurrentDb.OpenRecordset("テーブル名")   Set objXl = CreateObject("excel.application")   Set objBk = objXl.Workbooks.Open("エクセルファイルのフルパス")   objXl.DisplayAlerts = False   objBk.sheets("sheet1").cells(3, 3).copyfromrecordset daoRS   'cells(3, 3) を起点として書き出し   objXl.DisplayAlerts = True          objBk.Save   objXl.Quit   Set objBk = Nothing: Set objXl = Nothing   daoRS.Close: Set daoRS = Nothing   Set daoDB = Nothing End Sub ではいかが?

tomotomo78
質問者

お礼

回答を入れていただいた上、回避についても具体的に丁寧に書いていただいて どうもありがとうございます。 起点位置の指定をする事で無事にできました! >>範囲を指定すると、エクスポートは失敗 >失敗の「意味」するところが良く分からないですが使うな・・ということでしょう。 すると、今動いているもの達は、運良く動いているだけなんですかね?? →ちょっと不安になってしまいます..  とりいあえず上手く動いているので、動かなくなったら教えていただいたのに変更しようと思います。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう