即効テクニック |
●サンプル●対象のセル範囲のスタイルを表すStyleオブジェクトを参照します。スタイルとは、セルの書式設定に関するプロパティやオブジェクトの「ある状態」に名前を付けて管理しているもの、と考えれば良いでしょう。従って、同じ書式を複数のセル範囲で共通して使用したい場合には、新しくStyleオブジェクトを登録して使用すれば効率の良いプログラミングが可能です。
構文 Object.Style 取得のみ 設定項目 内容 Object Range, Workbookオブジェクト 次のサンプルは、新しく「見出し」というスタイルを作成し、セルに適用しています。
Sub StyleSamp1() Dim s As Style Dim myStyle As Style For Each s In ActiveWorkbook.Styles '---(1)登録されているかどうか検査 If s.Name = "見出し" Then _ Set myStyle = s '---既に登録されていた場合 Next s If myStyle Is Nothing Then _ Set myStyle = ActiveWorkbook.Styles. _ Add(Name:="見出し") '---未登録の場合、追加 With myStyle '(2)---スタイルの内容を定義していきます .Interior.ColorIndex = 1 With .Font .ColorIndex = 2 .Size = 20 .Bold = False .Name = "HGS創英角ポップ体" End With .NumberFormatLocal = "@" End With Range("A1").Style = "見出し" '----(3)セルA1に追加したスタイルを適用 Range("A1").Value = Range("A1").Style.Name Range("A2").Value = Range("A2").Style.Name '----(4) Range("A3").Value = Range("A3").Style.NameLocal '----(5) End Sub
StyleオブジェクトはRangeオブジェクトの下位オブジェクトですが、ワークブック単位で管理されているため、Workbookオブジェクトを対象としたときのStyleプロパティは、スタイルのコレクションであるStylesコレクションを参照します。従って、(1)以下のような記述となります。(2)でスタイルの内容を登録していますが、ここに記述している以外にも、ほとんどのセルの書式設定に関わるプロパティやオブジェクトについての設定が可能です。Styleを登録したことにより、今後は同じワークブックであれば、どのシートのセル範囲に対しても、(3)のような簡単なステートメントで書式を共有することができます。 ちなみに、(4)と(5)で「標準」スタイルの名前をセルに書き出しているのですが、NameプロパティとNameLocalプロパティでは結果が異なります。ご注意ください。