設定できるのは書式設定だけではありません
前回、エクスポートしてから書式設定を行う方法を紹介しました。
ちなみに、設定できるのは書式設定だけではありません。
ページ設定もできてしまいます。
早速、フッターの中央にページ番号を表示させてみましょう。
ページ番号を表示させる
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



コメントをどうぞ!