即効テクニック |
●詳細● サンプルでは、セルの内容を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