- ベストアンサー
ACCESS側からEXCELの書式を設定するには?
ACCESSからEXCELにエクスポートした際、ACCESS側でEXCELの書式設定は行えますか?(例:セルAの幅がX桁等) データ件数が多すぎて、下記VBでエクスポート処理をしています。 DoCmd.TransferSpreadsheet acExport, 8, "XXX", "\XX.xls", False, "" お手数ですが、ご教授願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例えばボタンにエクスポートの処理を書いているのでしたら ボタンを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 これは除いてください。保存しますかのメッセージが出ます。
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
ObjectLibraryが設定されていないと思われます。 メニューのツールのマクロからVisualBasicEditorを開き ツールの参照設定で Microsoft Excel *.* ObjectLibrary にチェックを入れて下さい。*.*はお使いのAccessのバージョンに合ったものが表示されているはずなのでそのObjectLibraryにチェックして参照するように設定してからやってみてください。
補足
有難うございましたm(__)m 無事に成功しました!! もう一点行いたい事がありまして。。。 セルの自動設定後、ピボットテーブルも作成したいと 考えております。毎月データ件数が一定であれば、EXCELのマクロから引用したいと考えていたのですが、毎月のデータ件数が違う為(月毎に、ピボットテーブル作成の選択範囲が変わります)悩んでおります。 そもそもピボットテーブルは、ACCESSから操作可能なのでしょうか? お手数ですが、ご教授頂けると幸いです。
- O_cyan
- ベストアンサー率59% (745/1260)
エクスポート処理に下記の必要な部分を追加してみてください。 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 試してみてください。
補足
有難うございます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
補足
何度も有難うございます。 組み込んでみましたが。。。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet の一番最初で、「ユーザー定義型は定義されていま せん」とエラーが出てしまいます。 どうしたら宜しいでしょうか?