「エクセル2010 vba シート全体のフォントを変えたい」
「マクロ シート全体 フォント指定」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
ワークシート全体のフォントをExcel VBA(Visual Basic for Applications)から変更するには、どのようなコードを書けばいいのかを探していた方による検索キーワードです。
「エクセルマクロ シート全体で文字の大きさを指定」
といった検索キーワードも見かけます。
こちらはシート全体のフォントサイズを変更する方法を探していらした検索です。
シート全体のフォントを変更するサンプルマクロ
いつものように、シンプルなマクロをご紹介しておきます。Cells.Font.Name = "HGP教科書体"
End Sub
上記のSubプロシージャを実行すると、アクティブなワークシートのすべてのセルのフォントが「HGP教科書体」になります。
引数を指定せずにCellsプロパティを呼ぶと、シート全体のセルを表すRangeオブジェクトが返されます。
RangeオブジェクトのFontプロパティでセルのフォントを表すFontオブジェクトを取得して、FontオブジェクトのNameプロパティを指定すれば、
シート全体のフォントを変更できます。
フォントサイズを変更する場合は、
Cells.Font.Size = 9
といったコードです。
マクロ記録機能も活用しましょう
Excelのオブジェクト構造が頭に入っていれば、
Cells.Font.Name = "フォント名"
Cells.Font.Size = フォントサイズ
といったオブジェクト式は、すぐに思いつくことができますが、マクロ記録からでもヒントは得られます。
ショートカットキー[Ctrl]+[A]でシート全体を選択して、[ホーム]タブからフォント種別を変更する操作をマクロ記録すると、以下のようなSubプロシージャが作られます。
Sub シート全体のフォント変更()
Cells.Select
With Selection.Font
.Name = "HGS教科書体"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
End Sub
「With Selection.Font」から「End With」までに書かれている、
.Name = "HGS教科書体"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
の部分は、すべてFontオブジェクトのプロパティを指定している記述で、最初のほうに登場している、
.Name = "HGS教科書体"
.Size = 11
が、フォント種別・フォントサイズを指定している箇所です。
また、「With Selection.Font」の前の「Cells.Select」がシート全体のセルを選択しているオブジェクト式です。
マクロ記録で自動的に作られたコードのうち、以下の部分をまとめたのが、
Cells.Select
With Selection.Font
.Name = "HGS教科書体"
この記事でご紹介している、
Cells.Font.Name = "HGP教科書体"
です。
階層を意識しましょう
Excelの主なオブジェクトは、
Application
└Workbook
└Worksheet
└Range
という階層関係にあります。
この記事で利用しているFontは、Rangeオブジェクト下位の階層に該当するオブジェクトです。
Application
└Workbook
└Worksheet
└Range
└Font
Rangeオブジェクトは、Value・Text・Address・Row・Columnなど、非常にたくさんのプロパティを持っていますが、Fontは設定項目が多いために、一段深い階層になっています。
Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » シート全体のフォント種別・フォントサイズを変更するExcelマクロ