アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0

こんにちは。



私も#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
    • good
    • 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 & ":W" & i)
If IsNumeric(rng) Then
rng.Font.Color = rng.Interior.Color
End If
Next
End If
Next
End With
End Subでいかがでしょうか?
ちなみこの例では、50行目までデータがあるという仮定です。
あと、数値データを非表示にするという方法がちょっと分からなかったので、
フォントのカラーを背景色と同じにすることによって擬似的に非表示にしています。

この回答への補足

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

補足日時:2005/08/23 10:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!