名無しのゴンべさんから、「フォントを変更するにはどうしたらいいでしょうか??」とコメントをいただきましたので、早速やってみましょう。
前回、「アクセスのVBAでエクスポートしたエクセルのセルに書式設定する」で使用したVBAコードをベースに、フォントの指定をしてみたいと思います。
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]"
'エクセルを上書き保存
.activeworkbook.Save
'エクセルを閉じる
.activeworkbook.Close
End With
Set xlapp = Nothing
End Sub
VBAでフォントを指定する
VBA構文
Fontオブジェクトの「Name」プロパティにフォント名を文字列として設定することで、フォントを指定することができます。
では、試しにA列のフォントを「MS 明朝」に変更してみたいと思います。
なお、指定できるフォントの種類は、エクセルの「セルの書式設定」で選択可能なフォントに限ります。
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""日"""
'A列のフォントをMS明朝に変更する
.Range("A:A").Font.Name = "MS 明朝"
'B列、D列に書式を設定する
.Range("B:B,D:D").Style = "Currency [0]"
'エクセルを上書き保存
.activeworkbook.Save
'エクセルを閉じる
.activeworkbook.Close
End With
Set xlapp = Nothing
End Sub
28、29行目に、フォントを指定するコードを挿入しました。
フォント名の指定は正確に
注意しないといけないのは、フォントの名前です。
最初「MS 明朝」(MSは半角、スペースが全角)と記述したところ、フォントが変更されなかったのです。

エクセルの書式設定で表示されるフォント名を、正確に指定する必要があります。
「MS 明朝」(MSは全角文字、 全角スペース)と記述することで、フォントの指定が反映されます。
実行結果

実行した結果はこちらです。
A列のフォントがMS明朝になっています。成功ですね。
(´▽`)b
フォントのサイズを指定する
VBA構文
フォントだけでなく、フォントのサイズも指定することができます。
では、B列のフォントサイズを15にしてみます。
和休のPCの環境では、エクセルのフォントサイズの既定値は、11です。
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""日"""
'A列のフォントをMS明朝に変更する
.Range("A:A").Font.Name = "MS 明朝"
'B列、D列に書式を設定する
.Range("B:B,D:D").Style = "Currency [0]"
'B列のフォントサイズを15に変更する
.Range("B:B").Font.Size = 15
'エクセルを上書き保存
.activeworkbook.Save
'エクセルを閉じる
.activeworkbook.Close
End With
Set xlapp = Nothing
End Sub
34、35行目に、フォントサイズを指定するコードを挿入しました。
実行結果

実行した結果はこちらです。
B列のフォントサイズが15になっています。成功です!
(´▽`)b


コメントをどうぞ!