dポイントプレゼントキャンペーン実施中!

For Each c In ActiveSheet.UsedRange



Next

この構文で、cが全てのUsedRangeではなく、B列かつUsedRange内とするためにはどう記述すればいいのでしょうか?
よろしくお願いします。

A 回答 (3件)

範囲を得たいなら



Sub Test1()
 With ActiveSheet
   MsgBox Application.Intersect _
       (.Range("B:B"), .UsedRange).Address
 End With
End Sub

ループさせて各Rangeを処理するなら

Sub Test2()
Dim c As Range
 With ActiveSheet
  For Each c In Application.Intersect _
         (.Range("B:B"), .UsedRange)
    MsgBox c.Address
  Next c
 End With
End Sub
    • good
    • 0
この回答へのお礼

有難うございました!
完璧な回答、感謝いたします。

お礼日時:2004/04/20 09:10

For Each c In ActiveSheet.UsedRange


のIn以下では別の表現を入れてAND条件の指定は無理でしょう。
だから次の行に、IF文を入れて
Sub test02()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If c.Column = 2 Then
MsgBox c.Address
End If
Next
End Sub
とすると$B$1,$B$2・・・のように$B付きのAddressが
表示されます。
    • good
    • 0
この回答へのお礼

有難うございました。

お礼日時:2004/04/20 09:11

For Each c In ActiveSheet.UsedRange


 If Left(c.Address, 2) = "$B" Then

   略

 End If
Next

ではだめですか?
    • good
    • 0
この回答へのお礼

さっそくありがとうございました。
なるほど!

お礼日時:2004/04/20 09:09

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