更新日:、 作成日:

VBA セルの書式設定を取得または設定する

はじめに

Excel VBA マクロでセルの書式設定を取得または設定する方法を紹介します。

セルの書式設定の表示形式、配置、フォント、罫線、塗りつぶし、保護を取得または設定する方法を紹介します。

21
書式をクリアするには「セルの書式をクリアする」をご覧ください。

表示形式

セルの書式設定の表示形式を取得または設定するには NumberFormatLocal プロパティを使用します。

' 取得
Dim s As String
s = Range("A1").NumberFormatLocal

' 設定
Range("A1").NumberFormatLocal = "yyyy/m/d"

詳しくは次をご覧ください。

配置

セルの書式設定の配置を取得または設定する方法を紹介します。

' 文字の配置
Range("A1").HorizontalAlignment = xlGeneral ' 横位置
Range("A1").VerticalAlignment = xlCenter    ' 縦位置
Range("A1").AddIndent = False               ' 前後にスペースを入れる
Range("A1").IndentLevel = 0                 ' インデント

' 文字の制御
Range("A1").WrapText = False    ' 折り返して全体を表示する
Range("A1").ShrinkToFit = False ' 縮小して全体を表示する
Range("A1").MergeCells = False  ' セルを結合する

' 右から左
Range("A1").ReadingOrder = xlContext ' 文字の方向
Range("A1").Orientation = 0          ' 方向の角度

HorizontalAlignment (横位置) には次の値を指定します。

定数名 説明
xlGeneral1標準
xlLeft-4131左詰め
xlCenter-4108中央揃え
xlRight-4152右詰め
xlFill5繰り返し
xlJustify-4130両端揃え
xlCenterAcrossSelection7選択範囲内で中央
xlDistributed-4117均等割り付け

VerticalAlignment (縦位置) には次の値を指定します。

定数名 説明
xlTop-4160上詰め
xlCenter-4108中央揃え
xlBottom-4107下詰め
xlFill5繰り返し
xlJustify-4130両端揃え
xlDistributed-4117均等割り付け

ReadingOrder (文字の方向) には次の値を指定します。

定数名 説明
xlContext-5002対象
xlLTR-5003左から右
xlRTL-5004右から左

フォント

セルの書式設定のフォントを取得または設定するには Font プロパティを使用します。

' 取得
Dim f As Font
Set f = Range("A1").Font

' 設定
Range("A1").Font.Color = RGB(255, 0, 0)   ' 文字色
Range("A1").Font.Name = "MS Pゴシック" ' 名前
Range("A1").Font.Size = 11                ' サイズ
Range("A1").Font.Bold = True              ' 太字

詳しくは次をご覧ください。

Font オブジェクトにはこの他にもプロパティが存在します。

罫線

セルの書式設定の罫線を取得または設定するには Borders プロパティを使用します。

' 取得
Dim bs As Borders
Set bs = Range("A1").Borders

' 設定
Range("A1").Borders.Color = RGB(255, 0, 0)   ' 色
Range("A1").Borders.ColorIndex = 3           ' 色番号
Range("A1").Borders.LineStyle = xlContinuous ' 種類
Range("A1").Borders.Weight = xlThin          ' 太さ

詳しくは次をご覧ください。

塗りつぶし

セルの書式設定の塗りつぶしを取得または設定するには Interior プロパティを使用します。

' 取得
Dim l As Long
Dim i As Integer
l = Range("A1").Interior.Color              ' 背景色
i = Range("A1").Interior.ColorIndex         ' 背景色番号
i = Range("A1").Interior.Pattern            ' パターン
l = Range("A1").Interior.Pattern.Color      ' パターンの色
i = Range("A1").Interior.Pattern.ColorIndex ' パターンの色番号

' 設定
Range("A1").Interior.Color = RGB(255, 0, 0)         ' 背景色
Range("A1").Interior.ColorIndex = 3                 ' 背景色番号
Range("A1").Interior.Pattern = xlPatternGray50      ' パターン
Range("A1").Interior.Pattern.Color = RGB(0, 255, 0) ' パターンの色
Range("A1").Interior.Pattern.ColorIndex = 4         ' パターンの色番号

Pattern には次の値を指定します。

定数名 説明 イメージ
xlPatternAutomatic-4105自動1
xlPatternChecker9左下がり斜線格子2
xlPatternCrissCross16実線左下がり斜線格子3
xlPatternDown-4121右下がり縦線縞4
xlPatternGray161712.5%灰色5
xlPatternGray25-412425%灰色6
xlPatternGray50-412550%灰色7
xlPatternGray75-412675%灰色8
xlPatternGray8186.25%灰色9
xlPatternGrid15実線横格子10
xlPatternHorizontal-4128横縞11
xlPatternLightDown13実線右下がり斜線縞12
xlPatternLightHorizontal11実線横縞13
xlPatternLightUp14実線左下がり斜線縞14
xlPatternLightVertical12実線縦縞15
xlPatternNone-4142パターン・塗りつぶし無し16
xlPatternSemiGray7510極太線左下がり斜線格子17
xlPatternSolid1塗りつぶし18
xlPatternUp-4162左下がり縦線縞19
xlPatternVertical-4166縦縞20

文字色や背景色を取得または設定するには次をご覧ください。

保護

セルの書式設定の保護を取得または設定する方法を紹介します。

' 取得
Dim b As Boolean
b = ActiveSheet.ProtectContents ' シートが保護されているか
b = Range("A1").Locked          ' セルがロックされているか

' 設定
Call ActiveSheet.Protect(UserInterfaceOnly:=True) ' シートを保護する
ActiveSheet.Unprotect                             ' シートの保護を解除する 
Range("A1").Locked = True                         ' セルをロックする

セルをロックするには、先にシートの保護を有効にする必要があります。

シートが保護されているかどうかは ProtectContents で判定できます。

詳しくは次をご覧ください。