名無しのゴンべさんから、「フォントを変更するにはどうしたらいいでしょうか??」とコメントをいただきましたので、早速やってみましょう。
前回、「アクセスの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
コメントをどうぞ!