設定できるのは書式設定だけではありません
前回、エクスポートしてから書式設定を行う方法を紹介しました。
ちなみに、設定できるのは書式設定だけではありません。
ページ設定もできてしまいます。
早速、フッターの中央にページ番号を表示させてみましょう。
ページ番号を表示させる
Sub Excel_Formatting() Dim strTgTFldNM As String '出力先のフォルダ Dim strTgTFleNM As String '出力先のファイル名 Dim xlapp As Object 'エクセルオブジェクト 'エクセルの準備 Set xlapp = CreateObject("excel.application") '出力先のフォルダは、アクセスがあるフォルダを指定 strTgTFldNM = Application.CurrentProject.Path '出力先ファイル名は、「購入履歴」を指定 strTgTFleNM = "購入履歴.xlsx" 'エクセルにエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "出力元", strTgTFldNM & "\" & strTgTFleNM With xlapp '編集するエクセルを開く .workbooks.Open strTgTFldNM & "\" & strTgTFleNM 'A列に書式を設定する .Range("A:A").NumberFormatLocal = "gggee""年""mm""月""dd""日""" 'B列、D列に書式を設定する .Range("B:B,D:D").Style = "Currency [0]" With .activesheet.pagesetup 'フッター中央にページ番号 .centerfooter = "&P ページ" End With 'エクセルを上書き保存 .activeworkbook.Save 'エクセルを閉じる .activeworkbook.Close End With Set xlapp = Nothing End Sub
31~36行目にページを表示させる設定を追加しました。
このコードを実行して出来上がったエクセルを印刷プレビューしてみましょう。
フッター中央にページ番号が印刷されていることが分かります。
エクセルのファイル名を表示する
続いて、エクセルのファイル名をフッターの左側に表示したいと思います。
Sub Excel_Formatting() Dim strTgTFldNM As String '出力先のフォルダ Dim strTgTFleNM As String '出力先のファイル名 Dim xlapp As Object 'エクセルオブジェクト 'エクセルの準備 Set xlapp = CreateObject("excel.application") '出力先のフォルダは、アクセスがあるフォルダを指定 strTgTFldNM = Application.CurrentProject.Path '出力先ファイル名は、「購入履歴」を指定 strTgTFleNM = "購入履歴.xlsx" 'エクセルにエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "出力元", strTgTFldNM & "\" & strTgTFleNM With xlapp '編集するエクセルを開く .workbooks.Open strTgTFldNM & "\" & strTgTFleNM 'A列に書式を設定する .Range("A:A").NumberFormatLocal = "gggee""年""mm""月""dd""日""" 'B列、D列に書式を設定する .Range("B:B,D:D").Style = "Currency [0]" With .activesheet.pagesetup 'フッター左にファイル名 .leftfooter = "&F" 'フッター中央にページ番号 .centerfooter = "&P ページ" End With 'エクセルを上書き保存 .activeworkbook.Save 'エクセルを閉じる .activeworkbook.Close End With Set xlapp = Nothing End Sub
33~34行目にファイル名を表示させる設定を追加しました。
このコードを実行して出来上がったエクセルを印刷プレビューしてみましょう。
フッター左側にファイル名が印刷されていることが分かります。
ヘッダーに日付を表示する
さらに、ヘッダー右側に今日の日付を入れたいと思います。
Sub Excel_Formatting() Dim strTgTFldNM As String '出力先のフォルダ Dim strTgTFleNM As String '出力先のファイル名 Dim xlapp As Object 'エクセルオブジェクト 'エクセルの準備 Set xlapp = CreateObject("excel.application") '出力先のフォルダは、アクセスがあるフォルダを指定 strTgTFldNM = Application.CurrentProject.Path '出力先ファイル名は、「購入履歴」を指定 strTgTFleNM = "購入履歴.xlsx" 'エクセルにエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "出力元", strTgTFldNM & "\" & strTgTFleNM With xlapp '編集するエクセルを開く .workbooks.Open strTgTFldNM & "\" & strTgTFleNM 'A列に書式を設定する .Range("A:A").NumberFormatLocal = "gggee""年""mm""月""dd""日""" 'B列、D列に書式を設定する .Range("B:B,D:D").Style = "Currency [0]" With .activesheet.pagesetup 'ヘッダー右に日付 .RightHeader = "&D" 'フッター左にファイル名 .leftfooter = "&F" 'フッター中央にページ番号 .centerfooter = "&P ページ" End With 'エクセルを上書き保存 .activeworkbook.Save 'エクセルを閉じる .activeworkbook.Close End With Set xlapp = Nothing End Sub
33~34行目に日付を表示させる設定を追加しました。
このコードを実行して出来上がったエクセルを印刷プレビューしてみましょう。
ヘッダー右側に日付が印刷されていることが分かります。
ところで、ヘッダーの日付の書式は、年/月/日形式から変更することはできません。
でも和歴で表示したいときとか、曜日まで入れたいときもあるでしょう。
ついでに紹介しますね。
ヘッダーに和歴日付を表示する
'ヘッダー右に日付 .RightHeader = Format(Date, "gggee年mm月dd日")
和歴で表示するためには、34行目をこのように変更してください。本日の日付が和歴で表示されます。
ヘッダーに曜日まで入れて日付を表示する
'ヘッダー右に日付 .RightHeader = Format(Date, "gggee年mm月dd日aaaa")
曜日を表示するためには、34行目をこのように変更してください。
ヘッダー中央にシート名を表示する
最後に、ヘッダー中央にシート名を表示させましょう。
同時に、この方法でエクスポートするとシート名がクエリの名前になってしまうので、シート名を「切手購入履歴」へ変更したいと思います。
Dim strTgTFldNM As String '出力先のフォルダ Dim strTgTFleNM As String '出力先のファイル名 Dim xlapp As Object 'エクセルオブジェクト 'エクセルの準備 Set xlapp = CreateObject("excel.application") '出力先のフォルダは、アクセスがあるフォルダを指定 strTgTFldNM = Application.CurrentProject.Path '出力先ファイル名は、「購入履歴」を指定 strTgTFleNM = "購入履歴.xlsx" 'エクセルにエクスポート DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "出力元", strTgTFldNM & "\" & strTgTFleNM With xlapp '編集するエクセルを開く .workbooks.Open strTgTFldNM & "\" & strTgTFleNM 'A列に書式を設定する .Range("A:A").NumberFormatLocal = "gggee""年""mm""月""dd""日""" 'B列、D列に書式を設定する .Range("B:B,D:D").Style = "Currency [0]" 'シート名を変更する .sheets(1).Name = "切手購入履歴" With .activesheet.pagesetup 'ヘッダー右に日付 .RightHeader = "&D" 'ヘッダー中央にシート名 .CenterHeader = "&A" 'フッター左にファイル名 .leftfooter = "&F" 'フッター中央にページ番号 .centerfooter = "&P ページ" End With 'エクセルを上書き保存 .activeworkbook.Save 'エクセルを閉じる .activeworkbook.Close End With Set xlapp = Nothing End Sub
30行目に、シート名の変更を追加しました。これを実行すると、シート名が切手購入履歴に変わります。
38行目に、ヘッダー中央にシート名を表示させるよう追加しました。
このコードを実行して出来上がったエクセルを印刷プレビューしてみましょう。
成功です。
(´▽`)b
コメントをどうぞ!