Excel VBA質問箱 IV

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

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


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

【35740】ループが上手く行かないのですが ringotyanZ 06/3/11(土) 19:01 質問[未読]
【35744】Re:ループが上手く行かないのですが kobasan 06/3/11(土) 20:21 発言[未読]
【35745】Re:ループが上手く行かないのですが ringotyanZ 06/3/11(土) 20:48 お礼[未読]

【35740】ループが上手く行かないのですが
質問  ringotyanZ  - 06/3/11(土) 19:01 -

引用なし
パスワード
   以下のようなマクロを行のセルが空白になっている所まで繰り返させたくて、ループを使って処理しようと思ったのですが、エラーが出てしまいます。

Sub 数値の変化を色分け()
 With ActiveCell
  If .Offset(1, 0).Value > .Value Then
   ActiveCell.Offset(1, 0).Range("A1").Select
   Selection.Font.ColorIndex = 3
  ElseIf .Offset(1, 0).Value < .Value Then
   ActiveCell.Offset(1, 0).Range("A1").Select
   Selection.Font.ColorIndex = 5
  Else
   ActiveCell.Offset(1, 0).Range("A1").Select
   Selection.Font.ColorIndex = ActiveCell.Offset(-1, 0).Font.ColorIndex
  End If
 End With
End Sub


上記のマクロを行のセルが空白になるまでループさせたくて作ったのが下記のものなのですが、どうしたら上手く動作するようになるのでしょうか?


Sub 列ごと数値の変化を色分け()
  Do While Offset(1, 0).Value = ""
  
  With ActiveCell
  
  If .Offset(1, 0).Value > .Value Then
   ActiveCell.Offset(1, 0).Range("A1").Select
   Selection.Font.ColorIndex = 3
  ElseIf .Offset(1, 0).Value < .Value Then
   ActiveCell.Offset(1, 0).Range("A1").Select
   Selection.Font.ColorIndex = 5
  Else
   ActiveCell.Offset(1, 0).Range("A1").Select
   Selection.Font.ColorIndex = ActiveCell.Offset(-1, 0).Font.ColorIndex
  End If
  
  End With
  
  Loop
End Sub


よろしくお願いします。

【35744】Re:ループが上手く行かないのですが
発言  kobasan  - 06/3/11(土) 20:21 -

引用なし
パスワード
   今晩は。
こんな感じにすると、すっきりできますね。

Sub 列ごと数値の変化を色分け()
  Do
    With ActiveCell
      If .Offset(1, 0).Value > .Value Then
        .Offset(1, 0).Font.ColorIndex = 3
      ElseIf .Offset(1, 0).Value < .Value Then
        .Offset(1, 0).Font.ColorIndex = 5
      Else
        .Offset(1, 0).Font.ColorIndex = _
              .Offset(-1, 0).Font.ColorIndex
      End If
      .Offset(1, 0).Select
    End With
  Loop While ActiveCell.Offset(1, 0).Value <> ""
End Sub

【35745】Re:ループが上手く行かないのですが
お礼  ringotyanZ  - 06/3/11(土) 20:48 -

引用なし
パスワード
   kobasan さん、ありがとうございます。

Do 〜 Loop While  で挟めば良かったんですね。

問題解決しました。助かります。

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