• ベストアンサー

Excelマクロである条件のセル間(行方向)に色を付けたい

Excelマクロである条件のセル間(行方向)に色を付けたい 例えば、エクセルのあるセルに"A"が書かれていた場合、次にその行のセルに"円"と書かれているまでは、続く行のセルには色をつけるようにしたいのですが、良い方法を教えて頂けないでしょうか? 対象となるシート(列方向)に、今回のパターンが複数存在し、 それぞれにこの処理を実施することを想定しております。 (イメージ画像を添付します) お恥ずかしい話、当方VBAには明るくありませんので、簡単なサンプルコードを示して頂けると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

Sub 背景色付け()  Const 開始文字 = "A"  Const 終了文字 = "円"  Const 背景色 = 35  Dim 検索範囲 As Range  Dim 条件範囲 As Range  Dim C As Integer  Dim R As Integer  Set 検索範囲 = Range("A1", Cells.SpecialCells(xlCellTypeLastCell))  For R = 1 To 検索範囲.Rows.Count    Set 条件範囲 = Nothing    For C = 1 To 検索範囲.Columns.Count      Select Case Cells(R, C)        Case 開始文字          Set 条件範囲 = Cells(R, C + 1)        Case 終了文字          If Not (条件範囲 Is Nothing) Then            Set 条件範囲 = Range(条件範囲, Cells(R, C - 1))            条件範囲.Interior.ColorIndex = 背景色            Set 条件範囲 = Nothing          End If      End Select    Next C  Next R End Sub

sesamin346
質問者

お礼

ありがとうございます!まさにやりたかったことです。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 「A」や「円」が存在する列が決まっていない場合や、同じ行において、「A」や「円」が複数存在する場合には、 B1セルを選択   ↓ メニューの[書式]をクリック   ↓ 現れた選択肢の中にある[条件付き書式]をクリック   ↓ 現れた「条件付き書式の設定」ウィンドウの左端の欄をクリック   ↓ 現れた選択肢の中にある「数式が」をクリック   ↓ 右側の欄をクリックして、次の数式を入力 =COUNTIF($A1:A1,"A")>COUNTIF($A1:B1,"円")   ↓ 「条件付き書式の設定」ウィンドウの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ウィンドウの[パターン]タグをクリック   ↓ 好みの色をクリックして選択   ↓ 「セルの書式設定」ウィンドウの[OK]ボタンをクリック   ↓ 「条件付き書式の設定」ウィンドウの[OK]ボタンをクリック   ↓ B1セルにカーソルを合わせて、マウスを右クリック   ↓ 現れた選択肢の中にある[コピー]をクリック   ↓ 条件付き書式で色を付ける範囲全体を範囲選択して、マウスを右クリック   ↓ 現れた選択肢の中にある[形式を選択して貼り付け]をクリック   ↓ 現れた「形式を選択して貼り付け」ウィンドウの貼り付け欄にある、[書式]と記されている箇所をクリックしてチェックを入れる   ↓ 「形式を選択して貼り付け」ウィンドウの[OK]ボタンをクリック  以上で完了です。  尚、上記の数式では、半角文字の「A」にしか対応しておりませんから、もし、入力される「A」が全角文字である場合には、入力する数式を次の様に変更して下さい。 =COUNTIF($A1:A1,"A")>COUNTIF($A1:B1,"円")  又、半角文字と全角文字が混在している場合には、入力する数式を次の様に変更して下さい。 =COUNTIF($A1:A1,"A")+COUNTIF($A1:A1,"A")>COUNTIF($A1:B1,"円")

sesamin346
質問者

お礼

ご指導ありがとうございました。 今回は、No3様の回答をBAとさせて頂きました。 ご了承下さい。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

条件付書式で対応できます BからG列まで選択し 数式が: =$A1="A" として書式を設定してください

sesamin346
質問者

お礼

ありがとうございました。