Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4028 / 13644 ツリー ←次へ | 前へ→

【58762】IFの色の塗りつぶし WJ 08/11/7(金) 15:43 質問[未読]
【58765】Re:IFの色の塗りつぶし Abebobo 08/11/7(金) 23:08 発言[未読]
【58766】Re:IFの色の塗りつぶし Abebobo 08/11/7(金) 23:11 発言[未読]
【58779】Re:IFの色の塗りつぶし WJ 08/11/10(月) 8:56 お礼[未読]

【58762】IFの色の塗りつぶし
質問  WJ  - 08/11/7(金) 15:43 -

引用なし
パスワード
   こんにちは。エクセルを使い始めてまだ間もないもので、お聞きしたいことが一点あります。

あるシートを今2種類の色で塗りつぶしたいのですが、Aのコラムにはそれぞれ、いろんな物が入っています。そのコラムの中でも、同じものいくつかあって、それをまずマクロでSortをしました。しかし、その後、交代交代で二種類の色で塗りつぶすマクロを作ろうと思いましたが、うまくいきません。教えていただけないでしょうか。よろしくお願いします。

ちなみに、これが色の塗りつぶしについて書いたコードです。

    Worksheets("Reuters").Range(Worksheets("Reuters").Cells(7, 1), Worksheets("Reuters").Cells(7, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 20
      .Pattern = xlSolid
    End With
  
  i = 8
  
  
    If Sheets("Reuters").Range("C" & i).Text <> Sheets("Reuters").Range("C7").Text Then
    Worksheets("Reuters").Range(Worksheets("Reuters").Cells(i, 1), Worksheets("Reuters").Cells(i, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 15
      .Pattern = xlSolid
    End With
    
    Else
    Worksheets("Reuters").Range(Worksheets("Reuters").Cells(i, 1), Worksheets("Reuters").Cells(i, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 20
      .Pattern = xlSolid
    End With
    End If
    
  Do Until i = rCnt + 9
    
    If Sheets("Reuters").Range("C" & i + 1).Text <> Sheets("Reuters").Range("C" & i).Text Then
    Worksheets("Reuters").Range(Worksheets("Reuters").Cells(i + 1, 1), Worksheets("Reuters").Cells(i + 1, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 20
      .Pattern = xlSolid
    End With
    
    Else
    Worksheets("Reuters").Range(Worksheets("Reuters").Cells(i + 1, 1), Worksheets("Reuters").Cells(i + 1, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 15
      .Pattern = xlSolid
    End With
    End If
  i = i + 2
  Loop

【58765】Re:IFの色の塗りつぶし
発言  Abebobo  - 08/11/7(金) 23:08 -

引用なし
パスワード
   ちょっと見やすいようにまとめてみました。

Sub ウィズでまとめて()
Dim lCnt As Long
Dim rCnt As Long
Dim i As Long

lCnt = 1
rCnt = 30
With Sheets("Reuters")

  .Range(.Cells(7, 1), .Cells(7, lCnt)).Select
  With Selection.Interior
   .ColorIndex = 20
   .Pattern = xlSolid
  End With
 
  i = 8
  If .Range("C" & i).Text <> .Range("C7").Text Then
   .Range(.Cells(i, 1), .Cells(i, lCnt)).Select
   With Selection.Interior
     .ColorIndex = 15
     .Pattern = xlSolid
   End With
  Else
   .Range(.Cells(i, 1), .Cells(i, lCnt)).Select
   With Selection.Interior
     .ColorIndex = 20
     .Pattern = xlSolid
   End With
  End If
  
  Do Until i > rCnt + 9
   If .Range("C" & i + 1).Text <> .Range("C" & i).Text Then
    .Range(.Cells(i + 1, 1), .Cells(i + 1, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 20
      .Pattern = xlSolid
    End With
   Else
    .Range(.Cells(i + 1, 1), .Cells(i + 1, lCnt)).Select
    With Selection.Interior
      .ColorIndex = 15
      .Pattern = xlSolid
    End With
   End If
   i = i + 2   
  Loop
  End With
 
End Sub

シートの構成がどうなってるか解らないので、
Do Until i > rCnt + 9
にしておきました。 i = i + 2 で i = rCnt + 9 だと ちょうど飛ばしちゃう可能性がありますから・・・。 あービックリした

どううまくいかないのか? と コードにコメントを入れておいたほうが良いと思います。

【58766】Re:IFの色の塗りつぶし
発言  Abebobo  - 08/11/7(金) 23:11 -

引用なし
パスワード
   あ〜〜  58755の続きでしたか!

【58779】Re:IFの色の塗りつぶし
お礼  WJ  - 08/11/10(月) 8:56 -

引用なし
パスワード
   Abeboboさん
どうもありがとうございました。すごくわかりやすかったです、本当に感謝しています。今までプログラムを書いたりしたことがないので、本当苦労しています。どうも、お手数おかけしました。


▼Abebobo さん:
>ちょっと見やすいようにまとめてみました。
>
>Sub ウィズでまとめて()
>Dim lCnt As Long
>Dim rCnt As Long
>Dim i As Long
>
>lCnt = 1
>rCnt = 30
>With Sheets("Reuters")
>
>  .Range(.Cells(7, 1), .Cells(7, lCnt)).Select
>  With Selection.Interior
>   .ColorIndex = 20
>   .Pattern = xlSolid
>  End With
> 
>  i = 8
>  If .Range("C" & i).Text <> .Range("C7").Text Then
>   .Range(.Cells(i, 1), .Cells(i, lCnt)).Select
>   With Selection.Interior
>     .ColorIndex = 15
>     .Pattern = xlSolid
>   End With
>  Else
>   .Range(.Cells(i, 1), .Cells(i, lCnt)).Select
>   With Selection.Interior
>     .ColorIndex = 20
>     .Pattern = xlSolid
>   End With
>  End If
>  
>  Do Until i > rCnt + 9
>   If .Range("C" & i + 1).Text <> .Range("C" & i).Text Then
>    .Range(.Cells(i + 1, 1), .Cells(i + 1, lCnt)).Select
>    With Selection.Interior
>      .ColorIndex = 20
>      .Pattern = xlSolid
>    End With
>   Else
>    .Range(.Cells(i + 1, 1), .Cells(i + 1, lCnt)).Select
>    With Selection.Interior
>      .ColorIndex = 15
>      .Pattern = xlSolid
>    End With
>   End If
>   i = i + 2   
>  Loop
>  End With
> 
>End Sub
>
>シートの構成がどうなってるか解らないので、
>Do Until i > rCnt + 9
>にしておきました。 i = i + 2 で i = rCnt + 9 だと ちょうど飛ばしちゃう可能性がありますから・・・。 あービックリした
>
>どううまくいかないのか? と コードにコメントを入れておいたほうが良いと思います。

4028 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free