Excel VBA質問箱 IV

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

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


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

【35582】D0 LOOP ゆか 06/3/8(水) 8:01 質問[未読]
【35593】Re:D0 LOOP Jaka 06/3/8(水) 12:17 回答[未読]
【35594】Re:D0 LOOP Jaka 06/3/8(水) 12:26 発言[未読]
【35609】Re:D0 LOOP ゆか 06/3/8(水) 14:48 質問[未読]
【35611】Re:D0 LOOP Jaka 06/3/8(水) 15:19 発言[未読]
【35613】Re:D0 LOOP ゆか 06/3/8(水) 15:38 お礼[未読]

【35582】D0 LOOP
質問  ゆか  - 06/3/8(水) 8:01 -

引用なし
パスワード
   必要な条件のみ{Manager(0,2)と Salary$40000以上(0,4)の人}のみ色をつけてはハイライトしたいのですが、以下の式だとManagerしかハイライトされていません。その後、どういう式を立てればいいのでしょうか?宜しくお願いします。

Sub HighlightManager()
'
' HighlightManager Macro
'
  Application.Goto Reference:="FirstEmployee"
  Do Until ActiveCell = ""
    ActiveCell.Range("A1:F1").Select
    If ActiveCell.Offset(0, 2) = "Manager" Then
    Selection.Font.ColorIndex = 3
    End If
    ActiveCell.Offset(1, 0).Select
    Loop
End Sub

【35593】Re:D0 LOOP
回答  Jaka  - 06/3/8(水) 12:17 -

引用なし
パスワード
   97だと Application.Goto Reference:="FirstEmployee" が
エラーになっちゃって、何なのかわかってないけど、たぶんこういう事じゃないかと....。
範囲と条件の所は直してください。

範囲 = "B4:G19"
With Range(範囲)
  .Select
  For i = 1 To .Rows.Count
    If .Cells(i, 3).Value = "Manager" Or _
      .Cells(i, 5).Value = "Salary$40000以上" Then
      .Rows(i).Font.ColorIndex = 3
    End If
  Next
End With

【35594】Re:D0 LOOP
発言  Jaka  - 06/3/8(水) 12:26 -

引用なし
パスワード
   Do Loopじゃ無くForにしちゃったけど、
条件式のところは応用できる?と思います。
条件の詳細がよく解らなかったんで Or にしました。

【35609】Re:D0 LOOP
質問  ゆか  - 06/3/8(水) 14:48 -

引用なし
パスワード
   ▼Jaka さん、ありがとうございます。学校の宿題でLOOPを使用しなければならないのですが、応用できました。だた、、、1点だけ解けないところがありまして、

  Application.Goto Reference:="FirstEmployee"
  Do Until ActiveCell = ""
    ActiveCell.Range("A1:F1").Select
    If ActiveCell.Offset(0, 5) = ">" & "4000" And _
    ActiveCell.Offset(0, 2) = "Manager" Then
    Selection.Font.ColorIndex = 3
    End If
    ActiveCell.Offset(1, 0).Select
    Loop
End Sub

If ActiveCell.Offset(0, 5) = "4000" And _ 
4000のみの時は大丈夫なのですが、
If ActiveCell.Offset(0, 5) = ">" & "4000" And _ あるいは
If ActiveCell.Offset(0, 5) = ">4000" And _ 
に変更すると動かないのです。どうしたものでしょうか?
宜しくお願いします。
ゆか

【35611】Re:D0 LOOP
発言  Jaka  - 06/3/8(水) 15:19 -

引用なし
パスワード
   よくわかんないけど、

4000より大きければ
ActiveCell.Offset(0, 5) > 4000

4000より小さい
ActiveCell.Offset(0, 5) < 4000

4000以上
ActiveCell.Offset(0, 5) >= 4000

【35613】Re:D0 LOOP
お礼  ゆか  - 06/3/8(水) 15:38 -

引用なし
パスワード
   ▼Jaka へ
ありがとうございます。以下でOKでした。今晩はぐっすりねれそうです。

ActiveCell.Offset(0, 5) >= "52000" Then

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