• ベストアンサー

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

  • アクセス2000→エクセル2010へエクスポート

    Private Sub cmd出力ボタン_Click() DoCmd.SetWarnings False DoCmd.TransferSpreadsheet acExport, 8, "出力クエリ", "C:データ.xlsx", True, "" DoCmd.SetWarnings True End Sub 実行すると 外部テーブルのフォーマットが正しくありません と出てしまいます。 エクセル97の形式にエクスポートする際は大丈夫でした。 spreadsheettypeの引数が違うのかとは思いますが適切な数値がわかりません。 他のやり方等もあれば教えて下さい。

  • AccessからExcelへエクスポートするVBA

    いつもお世話になっております。 AccessのクエリからデータをExcelにエクスポートします。 形式はMicrosoft Excel97-2003です。 フォーム"F_全データ"にボタンを付けて、クリックするとファイル名を自分で付けて保存する。というVBAを作成したいです。 1つ目のVBAは DoCmd.OutputTo acForm, "F6_全データ", "MicrosoftExcelBiff8(*.xls)", "", False, "", 0 これだと、ファイルの種類が、Microsoft Excel5-7になってしまい困ります。 この形式になってしまうと、Excelデータを開くと、文字数が多いところが保存されていません。これだと困ります。 2つ目が DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "F_全データ", "○○○.xls" こちらですと、ファイルの種類は97-2003になりまして、問題はないのですが、ファイル名は自分で指定したいのです。 ご指導よろしくお願いします。

  • accessからエクセルにエクスポートしたファイルを開きたい。

    accessのマクロ・ワークシート変換で4枚のシートを含むエクセルファイルを作るように設定をしたのですが、これをエクスポートが終わったら自動的に開くようにしたいのですが、どのようにしたらよいでしょうか。 VBAで DoCmd.OutputTo acOutputTable, "tbl_aaa", acFormatXLS, , True と試してみましたが、シートは一つのみになってしまいます。 1つのエクセルファイルに4枚のシートを出力して、それを立ち上がるようにしたいです。 DoCmd.TransferSpreadsheet acExport, … も考えたのですが、エクセルを開く書き方がわかりません。 よろしくお願いします。

  • ACCESS エクスポートしたEXCELが立ち上がらない

    知っている方が居たら教えてください。 DoCmd.TransferSpreadsheet acExport, , QInfo, FileName, True ↑でEXCELにエクスポートしています。 エクスポート処理時に何かEXCELファイルを立ち上げておくと エクスポートしたファイルを自動起動できません。 EXCEL本体、EXCELを起動しない場合は自動起動できるのですが・・・。 そういうものなのでしょうか?

  • ACCESSのテーブルをEXCELにエクスポート

    お世話になります。 ACCESS2000を使っています。 テーブルをACCESSの入っているフォルダーにエクスポート出来ますか? ACCESSはUSBフラッシュメモリーの会計フォルダーに保存しています。 使用PCを変えるとデバイス記号がかわります。 コーディングは下記の通りです。 DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel5, "XLS利用実績", "K:\会計\利用実績.xls"

  • アクセス2007 エクセルへエクスポートするファイル名に日付を付けたい

    こんにちは。 アクセス2007を使用しています。 テーブルをエクセルにエクスポートし、 さらにそのファイル名に日付をつけたいのですが なかなかうまくいきません。 以下のように記述しました。 Private Sub コマンドボタン_Click() 'Excelファイルへエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "テーブル名", "転送先フォルダパス" & Format(Now(), "yyyymmdd") & ".xls" End Sub Format関数を入れないとうまく行くので その部分が間違っているのだろうと思うのですが どうしていいのかわかりません。 どなたか原因をご教授いただけると助かります。 よろしくお願いいたします。

  • Access2000のモジュールで

    テーブル1にある処理をした後、そのテーブルを開いて内容を確認し、OKならエクセルにエクセルにエクスポートという処理を記述したいのですが、   ・   ・ DoCmd.OpenTable "テーブル1" If MsgBox("出力してよろしいですか。", vbYesNo, "確認") = vbYes Then DoCmd.TransferSpreadsheet acExport, , "テーブル1", "C\テーブル1.xls", True とすると、テーブルを開いてすぐにメッセージボックスが手前に表示されるので、テーブルをスクロールすることができません。 Docmd・・・とif MsgBoxの間にどんな記述を入れれば、できるようになりますか? それとも、もっとスマートなやり方があるのでしょうか? 教えてください。お願いします。

  • AccessからExcelへエクスポート時に小数点以下の桁数がおかしく

    AccessからExcelへエクスポート時に小数点以下の桁数がおかしくなります。 59.20 118.40 118.40 77.70 49.20 ↓↓↓↓↓ 59.20000076 118.4000015 118.4000015 77.69999695 49.20000076 の様になってしまいます。 以下エクスポート処理です。 StrSQL = "SELECT MaxSize FROM SizeTabel" ←本当はかなり長いSQL Set QueryTemp = CurrentDb.CreateQueryDef("ExportSQL", StrSQL) DoCmd.SelectObject acQuery, "ExportSQL", True DoCmd.TransferSpreadsheet acExport, 8, "ExportSQL", Application.CurrentProject.Path & "\test.xls", False, "" CurrentDb.QueryDefs.Delete ("ExportSQL") Format関数で桁数を調整したりはしたのですが、精度が必要な為、原因を追究したいと考えています。 アドバイスよろしくお願いいたします。

  • ACCESS エクスポートについて

    ACCESSのエクセルへのエクスポートについて お世話になりあます。 既存エクセルにACCESSのDoCmdを使用してエクスポートしようと考えています。 エクスポート先は既存エクセル(セルに数式あり)です。 DoCmd.TransferSpreadsheet acExport, SpreadsheetType, TableName, FileName , True,SheetName という分を作り実行しましたが、「ワークシートのセルが削除できません」と出てしまい エクスポートできません。 ヘルプを見ると数式が含まれていると出来ないと書いてありました。 数式を消さないと出来ないのでしょうか。 お手数ですが、分かる方おられましたら教えて下さい。

  • アクセスからエクセルへの処理

    Private Sub エクスポート_Click() Dim myExcel As Object 'エクセルに出力 DoCmd.TransferSpreadsheet filename:=CurrentProject.Path & "\分析素材\test.xls", _ tablename:="HJEX016", _ transfertype:=acExport 'ファイルを開く Set myExcel = CreateObject("Excel.Application")   myExcel.Visible = True ★ myExcel.workbooks.Open filename:=CurrentProject.Path & "\分析素材\test.xls" アクセスのテーブルをエクセルシートに出力し、そのファイルを開くという プログラムを作成してみたのですが、★のところで固まってしまいます。 何がいけないのでしょうか?