アクセスのVBAでエクスポートしたエクセルのセルのフォントを指定する【リクエスト編】

スポンサーリンク

名無しのゴンべさんから、「フォントを変更するにはどうしたらいいでしょうか??」とコメントをいただきましたので、早速やってみましょう。

前回、「アクセスの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」プロパティにフォント名を文字列として設定することで、フォントを指定することができます。

Range(“A1”).Font.Name = “MS Pゴシック”

では、試しに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構文

フォントだけでなく、フォントのサイズも指定することができます。

Range(“A1”).Font.Size = 15

では、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

コメントをどうぞ!

タイトルとURLをコピーしました