• ベストアンサー

エクセルVBAでUsedRangeかつB列の指定方法について

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

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

範囲を得たいなら 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

AQUALINE
質問者

お礼

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

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が 表示されます。

AQUALINE
質問者

お礼

有難うございました。

回答No.1

For Each c In ActiveSheet.UsedRange  If Left(c.Address, 2) = "$B" Then    略  End If Next ではだめですか?

AQUALINE
質問者

お礼

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

関連するQ&A