- ベストアンサー
AccessからExcelの出力について
お世話になります。 AccessのテーブルデータをExcelへ出力をしたいのですが可能でしょうか? 詳細は、既存のExcelのファイルのセルを指定し、罫線を描いたり、データ型を指定したり、フォント、文字サイズ、セルの背景色、ヘッダーの指定、印刷時の用紙サイズ、印刷時の余白の設定なのですがAccessから操作できますでしょうか? 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>コンパイルエラー:修飾子が不正です。 失礼しました。ざっと書いたものでSheetの宣言が一つ抜けてました。 Dim xlSheet As Excel.Worksheet を追加してください。 Dim objExcelApp As Workbook Dim strExcelFile As String Dim strExcelSheet As String Dim xlSheet As Excel.Worksheet '←追加 そして記述中の宣言以外の部分で使っているstrExcelSheet.Cells(1, 1).Value = "12"の部分から以下のstrExcelSheet.をxlSheet.に置き換えてください。 xlSheet.Cells(1, 1).Value = "12" のように。 VBEの編集の置換で簡単に出来ますので。 >データ型の指定・セルの背景色ヘッダーの指定の操作方法 Range("A1").Select With Selection.Interior .ColorIndex = 5 'ExcelのカラーNoの数字で指定 .Pattern = xlSolid End With ヘッダはWith xlSheet.PageSetupの中で .LeftHeader = "" .CenterHeader = "&""MS Pゴシック,太字""&16ヘッダ名" .RightHeader = "" で指定できます。上記は中ヘッダにゴシック太字ヘッダ名を指定。フッタは同様に下記で指定。 .LeftFooter = "" .CenterFooter = "" .RightFooter = "" Range("A19").Select Selection.NumberFormatLocal = "\#,##0;\-#,##0;\0" 日付なら = "yyyy/mm/dd;@" のように指定。
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
操作できます。 VBEの参照設定でMicrosoft Excel ?.? ObjectLibrary(バージョン不明なので)にチェックを入れます。 Private Sub Cmd1_Click() On Error Resume Next Dim objExcelApp As Workbook Dim strExcelFile As String Dim strExcelSheet As String strExcelFile = "C:\test.xls" 'エクセルのファイル名 strExcelSheet = "sheet1" 'ブックのシート名 Set objExcelApp = GetObject(strExcelFile, "Excel.Sheet") '※Excelの指定セルに値を代入する場合 strExcelSheet.Cells(1, 1).Value = "12" '※セルのフォント等の指定 With objExcelApp.Worksheets(strExcelSheet) With .Cells(1, 1) .Font.Size = 18 'フォントサイズの指定 .Font.Name = "MS P明朝" 'フォントの指定 .Font.Bold = True '太字の指定 End With .Cells(1, 1).ColumnWidth = 8 'A列の幅を8に指定 .Rows(1).RowHeight = 26 '1行目の高さを26に指定 End With '※罫線を引く strExcelSheet.Range("A1:F6").Borders.LineStyle = xlContinuous '指定範囲に格子の罫線を引く strExcelSheet.Range("A1:F6").Borders(xlEdgeTop).LineStyle = xlGray75 '太線を引く '(xlEdgeTop)(xlEdgeLeft)(xlEdgeRight)(xlEdgeBottom)で線引く部分を指定 With strExcelSheet.PageSetup .PaperSize = xlPaperA4 '用紙サイズ指定(A4)の場合 .Orientation = xlPortrait '印刷の向き横はxlLandscape '※印刷時余白設定 各余白をCm単位で設定 .LeftMargin = xlApp.CentimetersToPoints(2) .RightMargin = xlApp.CentimetersToPoints(2) .TopMargin = xlApp.CentimetersToPoints(2.5) .BottomMargin = xlApp.CentimetersToPoints(2.5) .HeaderMargin = xlApp.CentimetersToPoints(1) .FooterMargin = xlApp.CentimetersToPoints(1) End With strExcelSheet.PrintOut objExcelApp.Application.Quit Set objExcelApp = Nothing End Sub こんな感じでAccessからVBを使って操作できます。
お礼
O_cyanさん、大変理解しやすいサンプルをありがとうございます。 度々で申し訳ございませんが、データ型の指定、セルの背景色、ヘッダーの指定の操作(指定)方法もご教授お願いできますでしょうか? 宜しくお願い致します。
補足
重ね重ね申し訳ございません。 他の指定方法(ヘッダー、背景色など)はO_cyanさんが記述してくれたものを参考にできました。 でも、ボタンクリック時にうまく動作しません。 参照設定は行いました。 エラー内容は下記の通りです。 コンパイルエラー:修飾子が不正です。 宜しくお願い致します。
CELSIOR_2005さんこんにちは 以前Accessを使っておりました。 >Excelのファイルのセルを指定し、罫線を描いたり、 >データ型を指定したり、フォント、文字サイズ、 >セルの背景色、ヘッダーの指定、印刷時の用紙サイズ、 >印刷時の余白の設定 上記ですと全て実現可能です。
お礼
ednanさん、早速のご回答ありがとうございます。 説明不足で申し訳ございません。 初心者なものでサンプル的なものや参考サイトなどを教えていただけると助かります。お願いできますでしょうか? 宜しくお願い致します。
お礼
遅くなり申し訳ございません。 無事に思い通りのものが出来ました。 大変助かりました。ありがとうございました。