Excel VBA質問箱 IV

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

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


11550 / 13646 ツリー ←次へ | 前へ→

【15501】間違えをさがしてください ピース 04/6/27(日) 21:03 質問[未読]
【15504】Re:間違えをさがしてください kein 04/6/27(日) 21:18 回答[未読]
【15505】Re:間違えをさがしてください ピース 04/6/27(日) 21:51 質問[未読]
【15507】Re:間違えをさがしてください [名前なし] 04/6/27(日) 22:31 回答[未読]
【15508】Re:間違えをさがしてください ピース 04/6/27(日) 22:43 回答[未読]
【15510】Re:間違えをさがしてください kein 04/6/27(日) 22:58 回答[未読]
【15512】Re:間違えをさがしてください [名前なし] 04/6/27(日) 23:07 回答[未読]
【15540】Re:間違えをさがしてください ピース 04/6/28(月) 20:36 お礼[未読]
【15509】Re:間違えをさがしてください kein 04/6/27(日) 22:47 回答[未読]

【15501】間違えをさがしてください
質問  ピース  - 04/6/27(日) 21:03 -

引用なし
パスワード
   ExcelのVisual Basic Editorを使って、列の差をとるプログラムを作成しています。
しかし、うまく作動しないのでみなさんから意見をいただきたいと思ってます。
よろしくお願いします。
Sub henka()
  Dim k As Integer
  Worksheets("Sheet1").Select
  k = 0
  For n = 0 To 49
  k = Cells(n, 7) - Cells(n, 9)
   If k > 0 Then
    Range("Cells(n,9)").Interior.ColorIndex = 3
   Else
    Range("Cells(n,9)").Interior.ColorIndex = 2
   End If
  Next
End Sub

【15504】Re:間違えをさがしてください
回答  kein  - 04/6/27(日) 21:18 -

引用なし
パスワード
   Sub henka()
  Dim k As Long, n As Long
  
  With Worksheets("Sheet1")
   For n = 1 To 49
     If IsNumeric(.Cells(n, 7).Value) And _
      IsNumeric(.Cells(n, 9).Value) Then
      k = .Cells(n, 7).Value - .Cells(n, 9).Value
      If k > 0 Then
        .Cells(n, 9).Interior.ColorIndex = 3
      Else
        .Cells(n, 9).Interior.ColorIndex = 2
      End If
     End If
   Next n
  End With
End Sub

【15505】Re:間違えをさがしてください
質問  ピース  - 04/6/27(日) 21:51 -

引用なし
パスワード
   ▼kein さん:
keinさんありがとうございます!
厚かましいことが重々承知の上でもうひとつ質問させてください!
初めて9列目(I)の数が7列目(G)の数を超えるときだけを赤く表示するにはどうすればいいのでしょうか?

【15507】Re:間違えをさがしてください
回答  [名前なし]  - 04/6/27(日) 22:31 -

引用なし
パスワード
   Sub henka()
  Dim k As Long, n As Long
 
  With Worksheets("Sheet1")
   Range(Cells(1, 9), Cells(49, 9)).Interior.ColorIndex = 2
   For n = 1 To 49
     If IsNumeric(.Cells(n, 7).Value) And _
      IsNumeric(.Cells(n, 9).Value) Then
      k = .Cells(n, 7).Value - .Cells(n, 9).Value
      If k < 0 Then
       .Cells(n, 9).Interior.ColorIndex = 3
       Exit For
      End If
     End If
   Next n
  End With
End Sub

【15508】Re:間違えをさがしてください
回答  ピース  - 04/6/27(日) 22:43 -

引用なし
パスワード
   [名前なし] さん、申し訳ありません!
出題ミスでした。
正しくは

連続して7列目(G)の数が9列目(I)の数を超えるときの、最初の値だけを赤く表示するにはどうすればいいのでしょうか?
(例)
7行目 1 2 3 4 5 6 7 8 9 10 11 13 14 15
9行目 0 3 4 5 2 4 3 9 10 11 12 1 7 6

この時は、9行目の 5 と 13です

本当に申し訳ありません

【15509】Re:間違えをさがしてください
回答  kein  - 04/6/27(日) 22:47 -

引用なし
パスワード
   これでも出来ます。AI列を作業列とします。

Sub henka()
  On Error Resume Next
  With Worksheets("Sheet1")
   With .Range("I1:I49").Offset(, 26)
     .Formula = "=IF($I1>$G1,1,"""")"
     .SpecialCells(3, 1).Range("A1") _
     .Offset(, -26).Interior.ColorIndex = 3
     .ClearContents
   End With
  End With
End Sub

【15510】Re:間違えをさがしてください
回答  kein  - 04/6/27(日) 22:58 -

引用なし
パスワード
   >連続して7列目(G)の数が9列目(I)の数を超えるときの、最初の値だけを赤
で、間違いないですね ? 行と列が正確に認識されてないみたいですが。

Sub Test()
  Dim MyR As Range, C As Range
 
  On Error GoTo ErLine
  With Sheets("Sheet1").Range("G1:G49").Offset(, 26)
   .Formula = "=IF($G1>$I1,1,"""")"
   Set MyR = .SpecialCells(3, 1)
   .ClearContents
  End With
  For Each C In MyR.Areas
   If C.Cells.Count > 1 Then
     C.Range("A1").Offset(, -24) _
     .Interior.ColorIndex = 3
   End If
  Next
ErLine:
  Set MyR = Nothing
End Sub

【15512】Re:間違えをさがしてください
回答  [名前なし]  - 04/6/27(日) 23:07 -

引用なし
パスワード
   Sub henka()
  Dim k As Long, n As Long, a As Boolean

  a = False
  With Worksheets("Sheet1")
   For n = 1 To 49
     If IsNumeric(.Cells(n, 7).Value) And _
      IsNumeric(.Cells(n, 9).Value) Then
      k = .Cells(n, 7).Value - .Cells(n, 9).Value
      If k > 0 And Not a Then
       a = True
       .Cells(n, 9).Interior.ColorIndex = 3
      Else
       a = k > 0
       .Cells(n, 9).Interior.ColorIndex = 2
      End If
     End If
   Next n
  End With
End Sub

【15540】Re:間違えをさがしてください
お礼  ピース  - 04/6/28(月) 20:36 -

引用なし
パスワード
   [名前なし] さん、ありがとうございました。
おかけ様で完成することができました。
そして、力を貸していただいたみなさんにも感謝いたします

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