GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ワークシートを使いこなそう
  セルの書式の設定をマスターしよう!
 
■ セルの書式の設定をマスターしよう!

数回にわたってワークシート上のセルを操作するExcel VBAについて解説を行います。
今回はセルの書式を設定する様々な方法について解説していきます。

セルの書式を設定する

■セルのフォントを設定する
セルの文字列を操作するには、Fontオブジェクトを使用します。

・Nameプロパティ
セルの表示フォントを設定することができます。

例:
Range("A1").Font.Name = "MS ゴシック"
Range("A2").Font.Name = "Verdana"
 
上の例では、アクティブシートの「A1」セルに「MS ゴシック」のフォントを、「A2」セルに「Verdana」のフォントを、それぞれ設定します。

・Sizeプロパティ
セルのフォントサイズを設定することができます。

例:
Range("A1").Font.Size = 12
Range("A2").Font.Size = 18 

上の例では、アクティブシートの「A1」セルのフォントサイズを「12」に、「A2」セルのフォントサイズを「18」に、それぞれ設定します。

・Boldプロパティ、Italicプロパティ
Boldプロパティは文字を太字に、Italicプロパティは斜体に設定します。

例:
Range("A1").Font.Bold = True
Range("A2").Font.Italic = True

上の例では、アクティブシートの「A1」セルのフォントを太字に、「A2」セルのフォントを斜体に、それぞれ設定します。Falseを指定すると、設定を解除します。

・Underlineプロパティ、Strikethroughプロパティ
Underlineプロパティは文字に下線を、Strikethroughプロパティは取り消し線を設定します。

例:
Range("A1").Font.Underline = True
Range("A2").Font.Strikethrough = True

上の例では、アクティブシートの「A1」セルの文字に下線を、「A2」セルの文字に取り消し線を、それぞれ設定します。Falseを指定すると、設定を解除します。

※ Underlineプロパティはさらに、XlUnderlineStyleクラスの定数を使って下線の種類を指定することができます。
定数 内容
xlUnderlineStyleNone 下線なし
xlUnderlineStyleSingle 下線
xlUnderlineStyleDouble 二重下線
xlUnderlineStyleSingleAccounting 会計下線
xlUnderlineStyleDoubleAccounting 会計二重下線

・ColorIndexプロパティ
文字の色を設定します。

例:
Range("A1").Font.ColorIndex = 3
Range("A2").Font.ColorIndex = 5

上の例では、アクティブシートの「A1」セルの文字色を赤に、「A2」セルの文字色を青に、それぞれ設定します。

※ ColorIndexプロパティに指定するカラーパレットのよく使う色は次の通りです。
番号 番号 番号 番号 番号 番号 番号
1 2 3 4 5 6 7

・Superscriptプロパティ、Subscriptプロパティ
Superscriptプロパティはセル内の文字を上付きに、Subscriptプロパティは下付きに、それぞれ設定します。

例:
Range("A1").Font.Superscript = True
Range("A2").Font.Subscript = True

上の例では、アクティブシートの「A1」セルの文字を上付きに、「A2」セルの文字を下付きに、それぞれ設定します。Falseを指定すると、設定を解除します。

■セルの罫線を設定する
セルの罫線を操作するには、Borderオブジェクトを使用します。

・Bordersプロパティ、LineStyleプロパティ、Weightプロパティ
Bordersプロパティは、セルに設定されている罫線を取得します。LineStyleプロパティは、罫線の種類を指定します。Weightプロパティは、罫線の太さを指定します。

[書式]
オブジェクト.Borders(位置)


オブジェクトには罫線を設定するセル範囲を指定します。

位置には、次のXlBordersIndexクラスの定数を指定します。
定数 内容 定数 内容
xlEdgeTop 上端の線 xlInsideHorizontal 内側の横線
xlEdgeBottom 下端の線 xlInsideVertical 内側の縦線
xlEdgeLeft 左端の線 xlDiagonalDown 右下がり斜線
xlEdgeRight 右端の線 xlDiagonalUp 右上がり斜線

[書式]
オブジェクト.LineStyle = 種類

オブジェクトにはBorderオブジェクトを指定します。

種類には、次のXlLineStyleクラスの定数を指定します。
定数 内容 定数 内容
xlContinuous 一重線 xlDot 点線
xlDash 破線 xlDouble 二重線
xlDashDot 鎖線(1点) xlSlantDashDot 破線
xlDashDotDot 鎖線(2点) xlLineStyleNone なし

[書式]
オブジェクト.Weight = 太さ

オブジェクトにはBorderオブジェクトを指定します。

太さには、次のXlBorderWeight クラスの定数を指定します。
定数 内容 定数 内容
xlHairline 極細線 xlMedium 中線
xlThin 細線 xlThick 太線

例:
With Range("A1").Borders(xlEdgeBottom)
  .LineStyle = xlContinuous
  .Weight = xlThick
End With

この例では、アクティブシートの「A1」セルの下端に実線を引いた後、太さを太線に変更しています。

(注意)LineStyleプロパティとWeightプロパティは、同時に設定できない組み合わせがあるので注意してください。

・BorderAroundメソッド
セル範囲の周囲に、線種、太さ、色を指定して一度に罫線を引きます。

[書式]
オブジェクト.BorderAround 線種, 太さ, 色

オブジェクトには罫線を設定するセル範囲を指定します。

線種の指定は、LineStyleプロパティと同じです。また、太さの指定は、Weightプロパティと同じです。なお、引数「線種」と引数「太さ」は同時に指定できません。

には、カラーパレットのインデックス番号を指定します。

例:
Range("A1").BorderAround , xlThin, 3
Range("B2:D4").BorderAround xlDot, , 5

上の例ではアクティブシートの「A1」セルの周囲に赤色の細線を、下の例では「B2〜D4」のセル範囲の周囲に青色の点線を、それぞれ描画します。

※ 罫線を消去するには、LineStyleプロパティに「xlNone」を指定します。ワークシートのすべての罫線を消去するには「Cells.Borders.LineStyle = xlNone」を記述します。

■セルの背景色を設定する
セルの背景色を操作するには、Interiorオブジェクトを使用します。

・ColorIndexプロパティ、Colorプロパティ
ColorIndexプロパティはカラーパレットのインデックス番号で、ColorプロパティはRGB関数のRGB値で、それぞれセルの背景色を設定します。

例:
Range("A1").Interior.ColorIndex = 3
Range("A2").Interior.Color = RGB(255, 0, 0)

上の例では、アクティブシートの「A1」セルの背景色を、下の例では「A2」セルの背景色を、それぞれ赤色に設定します。

※ セルの背景色や文字色にRGB値を指定した場合、カラーパレットの中で一番近い色に自動的に設定されます。

・Patternプロパティ、PatternColorIndexプロパティ
Patternプロパティはセルの背景に設定する網かけパターンを、PatternColorIndexプロパティはパターンの色を、それぞれ設定します。

Patternプロパティに指定する網かけパターンの種類には、次の定数を指定します。
定数 内容 定数 内容
xlSolid 塗りつぶし xlUp 右上がり縞
xlGray75 75%灰色 xlChecker 斜線格子
xlGray50 50%灰色 xlSemiGray75 極太斜線格子
xlGray25 25%灰色 xlLightHorizontal 細横縞
xlGray16 12.5%灰色 xlLightVertical 細縦縞
xlGray8 6.25%灰色 xlLightDown 細右下がり縞
xlHorizontal 横縞 xlLightUp 細右上がり縞
xlVertical 縦縞 xlGrid 格子
xlDown 右下がり縞 xlCrissCross 細斜線格子

例:
Sub Test()
  Range("A1").Interior.Pattern = xlGray25
  Range("A1").Interior.PatternColorIndex = 3
End Sub

このプロシージャを実行すると、アクティブシートの「A1」セルに25%の網かけをした後、パターンの色を赤色に変更します。

※ 網かけの設定を解除するときは、Patternプロパティに「xlSolid」を指定します。

■セルの表示形式を設定する
セルの表示形式を設定するには、NumberFormatLocalプロパティを使用します。セルの表示形式を設定するには、書式記号を用います。主な書式記号は次の通りです。

・数値の書式記号
書式記号 内容 書式 対象 表示結果
# 1桁を表す ##.## 1.2 1.2
0 1桁を表す 00.00 1.2 01.20
, 桁区切り #,### 12345 12,345
. 小数点 0.0 12.345 12.3

・日付の書式記号
書式記号 内容 対象 表示結果
yyyy 西暦 2009/01/01 2009
yy 西暦 2009/01/01 09
g 和号 2009/01/01 H
gg 和号 2009/01/01
ggg 和号 2009/01/01 平成
e 和暦 1997/01/01 9
ee 和暦 1997/01/01 09
m 2009/01/01 1
mm 2009/01/01 01
mmm 2009/01/01 Jan
mmmm 2009/01/01 January
d 2009/01/01 1
dd 2009/01/01 01
ddd 曜日 2009/01/01 Thu
dddd 曜日 2009/01/01 Thursday
aaa 曜日 2009/01/01
aaaa 曜日 2009/01/01 木曜日

・時刻の書式記号
書式記号 内容 対象 表示結果
h 時間 11:05:59 11
hh 時間 11:05:59 11
m 11:05:59 5
mm 11:05:59 05
s 11:05:59 59
ss 11:05:59 59

・文字の書式記号
書式記号 内容 書式 対象 表示結果
@ 文字列 国名:@ 日本 国名:日本

・表示形式の区分
セルの表示形式はセルの値が、正の数、負の数、ゼロ値、文字列の場合に応じて書式を分けることが可能です。その場合は、「;」で各書式を区切ります。

例:
#,##0;[赤]#,##0;"未入力";"不正な値:"@

この例の表示形式を設定したセルに、正の数、負の数、ゼロ値、文字列を入力すると、次のように表示されます。
入力値 表示結果
12345 12,345
-100 100
0 未入力
ABC 不正な値:ABC

また赤色以外にも、表示する色を書式で設定することが可能です。使用できる色は、
[黒] [青] [水] [緑] [紫] [赤] [白] [黄]
の8色です。

・NumberFormatLocalプロパティ
ここまでに紹介した書式記号を用いて、セルに表示形式を設定することができます。

[書式]
オブジェクト.NumberFormatLocal = 表示形式

オブジェクトには、表示形式を設定するセル範囲を指定します。

表示形式には、書式記号を使用した書式を指定します。

例:
Range("A1").NumberFormatLocal = "#,##0;[赤]#,##0"
Range("A2").NumberFormatLocal = "ggge""年""m""月""d""日""(aaa)"
 
上の例では、アクティブシートの「A1」セルに、正の数は黒字、負の数は赤字で、桁区切り記号付きで数値を表示する表示形式を設定します。下の例では、「A2」セルに和暦年、月、日(曜日)で日付を表示する表示形式を設定しています。

※ 表示形式の中で「"」を用いるときは、「""」と2つのダブルクォーテーションを使用して記述します。

■セルの文字配置を設定する
セル内の文字配置を設定するには、Rangeオブジェクトのプロパティを使用します。

・HorizontalAlignmentプロパティ、VerticalAlignmentプロパティ
HorizontalAlignmentプロパティはセル内の文字の横位置を、VerticalAlignmentプロパティは縦位置を、それぞれ設定します。

HorizontalAlignmentに指定する値は、次の定数を使用します。
定数 内容
xlGeneral(既定) 標準
xlLeft 左詰め
xlCenter 中央揃え
xlRight 右詰め
xlFill 繰り返し
xlJustify 両端揃え
xlCenterAcrossSelection 選択範囲内で中央
xlDistributed 均等割り付け

VerticalAlignmentに指定する値は、次の定数を使用します。
定数 内容
xlCenter(既定) 中央揃え
xlTop 上詰め
xlBottom 下詰め
xlJustify 両端揃え
xlDistributed 均等割り付け

例:
Sub Test()
  Range("A1").HorizontalAlignment = xlCenter
  Range("A1").VerticalAlignment = xlBottom
End Sub

このプロシージャを実行すると、アクティブシートの「A1」セルの文字の横位置が中央揃えに、縦位置が下詰めに、それぞれ設定されます。

※ HorizontalAlignmentプロパティやVerticalAlignmentプロパティの設定が「均等割り付け」の場合、AddIndentプロパティを使用して文字の前後にスペースを挿入することができます。AddIndentプロパティの設定値はTrueまたはFalseで、Trueのとき文字の前後にスペースを挿入します。

・IndentLevelプロパティ
IndentLevelプロパティは、セル内の文字にインデントを挿入するときに使用します。挿入するインデント値は0から15までの数値になります。このとき全角1文字の幅がインデント値の1にあたります。

※ IndentLevelプロパティを設定すると、HorizontalAlignmentプロパティの設定は、自動で「左詰め」に設定されます。

例:
Range("A1").IndentLevel = 1

この例では、アクティブシートの「A1」セルに全角1文字分のインデントを設定します。

・WrapTextプロパティ、ShrinkToFitプロパティ
WrapTextプロパティは、文字を折り返して全体を表示します。ShrinkToFitプロパティは、文字を縮小して全体を表示します。

WrapTextプロパティ、ShrinkToFitプロパティの設定値はいずれもTrueまたはFalseで、Trueのときに設定が有効になります。ただし、両方のプロパティを同時に有効にすることはできません。

例:
Range("A1").WrapText = True
Range("A2").ShrinkToFit = True

上の例では、アクティブシートの「A1」セルの文字を折り返して全体を表示します。下の例では、「A2」セルの文字を縮小して全体を表示します。

・Orientationプロパティ
セル内の文字列の表示する角度を設定します。「-90〜90」の範囲の数値で角度を指定します。また「xlVertical」で縦書きに、「xlHorizontal」で横書き(通常の表示)にすることができます。

例:
Range("A1").Orientation = 90
Range("A2").Orientation = xlVertical

上の例では、アクティブシートの「A1」セルの文字列を時計の反対方向に90度回転させます。下の例では、「A2」セルの文字列を縦書きに変更します。


以上、セルの書式を設定するいろいろな方法について解説しました。
VBAからセルの書式を自由に操作することで、さらにユーザーが使いやすい、操作性の良いワークシートを設計することが可能です。今回の解説を役立ててください。

次は、シートの行・列を操作する様々な方法について詳しく解説を行います。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,