• ベストアンサー

excel2000マクロ記述

シート名JISEKIの中のF列には2行目から4桁のコードが入っています。 X列の2行目から数値データが入っています。 条件としてF列のコードがA310又はA505で、X列の数値がマイナスの場合は、 R列からW列の数値データを非表示にしたい。 これをマクロ化したいのですが、記述の仕方を教えてください。

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

  • ベストアンサー
noname#112806
noname#112806
回答No.3

>もうひとつ条件の追加が出て来たのですが、教えてください。 >条件 F列がA310OrA505でX列が<0の場合 R列~X列に0の数値を挿入したい。 とのことですが、条件は変わらず処理を追加するということですね。 以下のコードを参考にしてください。 Sub Macro1() Dim SheetName As String Dim i As Integer Dim LastRow As Integer Dim rng As Range SheetName = "JISEKI" 'シート名 LastRow = 50 '最終行の番号 With Sheets(SheetName) For i = 2 To LastRow If (.Range("F" & i) = "A310" Or .Range("F" & i) = "A505") And .Range("X" & i) < 0 Then For Each rng In .Range("R" & i & ":X" & i) rng=0 Next For Each rng In .Range("R" & i & ":W" & i) If IsNumeric(rng) Then rng.Font.Color = rng.Interior.Color End If Next End If Next End With End Sub

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 私も#1 さんとコンセプト自体は、あまり変わりありません。 ご質問の中には、いくつか、気になる点がありますが、後は、ご自身で考えてください。 Sub Sample1() Dim c As Variant Worksheets("JISEKI").Select  For Each c In Range("F2", Range("F65536").End(xlUp))   If (c.Value = "A310" Or c.Value = "A505") And _    c.Offset(, 18).Value < 0 Then      On Error Resume Next      c.Offset(, 12).Resize(, 6).SpecialCells(2, 1) _        .Font.ColorIndex = 2 '色は白      On Error GoTo 0   End If  Next End Sub

noname#112806
noname#112806
回答No.1

詳しい処理の内容が分からないので自分の理解の範囲で答えさせてもらいます。 Sub Macro1() Dim SheetName As String Dim i As Integer Dim LastRow As Integer Dim rng As Range SheetName = "JISEKI" 'シート名 LastRow = 50 '最終行の番号 With Sheets(SheetName) For i = 2 To LastRow If (.Range("F" & i) = "A310" Or .Range("F" & i) = "A505") And .Range("X" & i) < 0 Then For Each rng In .Range("R" & i & ":W" & i) If IsNumeric(rng) Then rng.Font.Color = rng.Interior.Color End If Next End If Next End With End Subでいかがでしょうか? ちなみこの例では、50行目までデータがあるという仮定です。 あと、数値データを非表示にするという方法がちょっと分からなかったので、 フォントのカラーを背景色と同じにすることによって擬似的に非表示にしています。

noname#72697
質問者

補足

回答有難うございました。 もうひとつ条件の追加が出て来たのですが、教えてください。 条件 F列がA310OrA505でX列が<0の場合 R列~X列に0の数値を挿入したい。

関連するQ&A