• ベストアンサー

ACCESS側からEXCELの書式を設定するには?

ACCESSからEXCELにエクスポートした際、ACCESS側でEXCELの書式設定は行えますか?(例:セルAの幅がX桁等) データ件数が多すぎて、下記VBでエクスポート処理をしています。 DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, "" お手数ですが、ご教授願います。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

例えばボタンにエクスポートの処理を書いているのでしたら ボタンをCmd1とすると Private Sub Cmd1_Click() On Error GoTo Err_Cmd1_Click Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, "" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("\XX.xls") Set xlSheet = xlBook.Worksheets(1) xlApp.Cells.Select xlApp.Cells.EntireColumn.AutoFit xlApp.Range("A1").Select xlApp.Visible = False xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing Exit_Cmd1_Click: Exit Sub Err_Cmd1_Click: MsgBox Err.Description Resume Exit_Cmd1_Click End Sub こんな感じで記述してください。 #1の中でxlApp.DisplayAlerts = False これは除いてください。保存しますかのメッセージが出ます。

yoshi7292
質問者

補足

何度も有難うございます。 組み込んでみましたが。。。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet の一番最初で、「ユーザー定義型は定義されていま せん」とエラーが出てしまいます。 どうしたら宜しいでしょうか?

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

ObjectLibraryが設定されていないと思われます。 メニューのツールのマクロからVisualBasicEditorを開き ツールの参照設定で Microsoft Excel *.* ObjectLibrary にチェックを入れて下さい。*.*はお使いのAccessのバージョンに合ったものが表示されているはずなのでそのObjectLibraryにチェックして参照するように設定してからやってみてください。

yoshi7292
質問者

補足

有難うございましたm(__)m 無事に成功しました!! もう一点行いたい事がありまして。。。 セルの自動設定後、ピボットテーブルも作成したいと 考えております。毎月データ件数が一定であれば、EXCELのマクロから引用したいと考えていたのですが、毎月のデータ件数が違う為(月毎に、ピボットテーブル作成の選択範囲が変わります)悩んでおります。 そもそもピボットテーブルは、ACCESSから操作可能なのでしょうか? お手数ですが、ご教授頂けると幸いです。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

エクスポート処理に下記の必要な部分を追加してみてください。 Excelの\XX.xlsにエクスポートしたデータ巾にセルを合わせます。(\XX.xlsの部分はフルパスで指定してください) Dim xlApp  As Excel.Application Dim xlBook  As Excel.Workbook Dim xlSheet As Excel.Worksheet エクスポート処理   Set xlApp = CreateObject("Excel.Application")   Set xlBook = xlApp.Workbooks.Open("\XX.xls")    Set xlSheet = xlBook.Worksheets(1)   xlApp.Cells.Select            xlApp.Cells.EntireColumn.AutoFit   xlApp.Range("A1").Select   xlApp.Visible = False   xlApp.DisplayAlerts = False   xlApp.Quit   Set xlSheet = Nothing   Set xlBook = Nothing   Set xlApp = Nothing 試してみてください。

yoshi7292
質問者

補足

有難うございますm(__)m 実は私、VB超初心者でして。。。 Dim xlApp  As Excel.Application Dim xlBook  As Excel.Workbook Dim xlSheet As Excel.Worksheet の後に DoCmd.TransferSpreadsheet acExport, 8, "xxx)", "\XXXX.XLS", True, "" Set xlApp = CreateObject("Excel.Application")   Set xlBook = xlApp.Workbooks.Open("\XX.xls")    Set xlSheet = xlBook.Worksheets(1)   xlApp.Cells.Select            xlApp.Cells.EntireColumn.AutoFit   xlApp.Range("A1").Select   xlApp.Visible = False   xlApp.DisplayAlerts = False   xlApp.Quit   Set xlSheet = Nothing   Set xlBook = Nothing   Set xlApp = Nothing で良いのでしょうか? すみません。素人でm(__)m

関連するQ&A