●詳細●
サンプルでは、セルの内容をSelect Caseステートメントを使って判断しながら、
セルの文字色やフォントサイズを変えるなど、いろいろな書式の設定をしています。
まず、データを入力するための列を一列挿入し、挿入された列にデータを入力します。
For Each〜Nextステートメントで、対象範囲内のセルに対してLoopしながら、内容の
確認と体裁設定をします。
内容の確認は、Select Caseステートメントを使って、条件に合っているか判断してい
ます。書式の設定は、別の内容で2度行っています。
この他にも、フォント名を設定するなど、マクロの記録機能やヘルプで、確認してみ
てください。
<マクロの記録機能>
[ツール]メニュー − [マクロ] − [新しいマクロの記録]を選択し、マクロに名
前を付けてください。
ステータスバーに「マクロの記録中」と表示され、記録終了ツールバーが表示されま
すので、作業が終わったら記録終了ボタンを押してください。
●サンプル●
Sub Sample()
Dim myRange As Range
'<データを入力する列を追加します。>
Columns("A:A").Insert Shift:=xlToRight
'<データを入力します。>
Range("A1") = "かえる"
Range("A2") = "さる"
Range("A3") = "ひと"
Range("A4") = "ひよこ"
'<入力内容を確認しながら、体裁を指定します。>
For Each myRange In Worksheets(1).Range("A1:A4") '←(1)
Select Case myRange '←(2)
Case Is = "ひと"
'<文字色をRGB値で設定します。(オレンジ)>
myRange.Font.Color = RGB(255, 127, 0) '←(3)
Case Is = "ひよこ"
'<セルの塗りつぶしをRGB値で設定します。(黄)>
myRange.Interior.Color = RGB(255, 255, 0)
Case Is = "かえる"
'<パターンを設定します。(縦縞)>
myRange.Interior.Pattern = xlPatternLightVertical '←(4)
End Select
Next myRange
MsgBox "確認1"
'<入力内容を確認しながら、体裁を指定します。>
For Each myRange In Worksheets(1).Range("A1:A4")
Select Case myRange
Case Is = "ひと"
'<フォントサイズを設定します。>
myRange.Font.Size = 20
Case Is = "ひよこ"
'<装飾設定をします。装飾をするしないは、する(True)/しない(False) によって設定します。>
With myRange.Font
'<太字>
.Bold = True
'<斜体(イタリック)>
.Italic = True
'<下線>
.Strikethrough = True
'<取り消し線>
.Underline = True
End With
Case Is = "かえる"
'<上付きにします。>
myRange.Font.Superscript = True '←(5)
Case Else
myRange = myRange & "(設定なし)"
End Select
Next myRange
'<A列の内容に合わせて列幅を調節します。>
Columns("A:A").EntireColumn.AutoFit
MsgBox "確認2"
End Sub
●補足説明●
(1) For Each〜Nextステートメントは、オブジェクトコレクション(A列のセル範囲)
の各オブジェクト(A列の各セル)に対して繰り返して処理を行います。
<構文>
For Each element In group
(処理)
Next element
element:コレクションの各要素を繰り返す変数を指定します。
group:オブジェクトコレクションを指定します。
繰り返し処理が開始されると、引数groupの最初のオブジェクトに対して処理が実行されます。
引数groupの中にオブジェクトがある限り処理は続けられます。
処理から抜け出すには、「Exit For」を使います。
(2)Select Caseステートメントは、複数の条件を繰り返し判断する場合に、Ifステートメント
よりもシンプルに条件分岐ができます。
<構文>
Select Case testexpression
[Case expressionlist-n [statements-n]]...
[Case Else [elsestatements]]
End Select
testexpression:条件比較する数式または文字列式。
expressionlist-n:比較される値。
statements-n:testexpressionがexpressionlist-nのいずれかと一致するとき、実行するステートメント。
elsestatements:testexpressionがCase節のいずれとも一致しないとき、実行するステートメント。
(3)RGB(赤・緑・青)の明るさを表す数値(0〜255)で色を指定します。
(4)パターンの定数は以下のとおりです。
xlPatternAutomatic,xlPatternChecker,xlPatternCrissCross,
xlPatternDown,xlPatternGray16,xlPatternGray25,xlPatternGray50
xlPatternGray75,xlPatternGray8,xlPatternGrid,xlPatternHorizontal
xlPatternLightDown,xlPatternLightHorizontal,xlPatternLightUp
xlPatternLightVertical,xlPatternNone,xlPatternSemiGray75
xlPatternSolid,xlPatternUp,xlPatternVertical
|