• ベストアンサー

エクセルVBAで

いつもお世話になります。 使い方がいまいち分かっていないのでご指導願います。 set Y=range("a1:e5") for each X in Y ・・・・ next X で、恐らくa1からa2,a3と順々にe5まで進んでいると思うのですが。 質問(1)これを1個とばしにする事は可能でしょうか? for n=1 to 10 step2みたいな使い方です。 質問(2)B行をまるまるとばしたい時は如何すればいいのでしょうか? 宜しくお願いします。

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

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

A1,B1,C1,D1,E1,A2,B2・・・と進みます。 ifで判定するとか、、、 '質問(1) Sub aa()  Dim x As Range  Set Y = Range("A1:e5")  For Each x In Y    If (x.Row Mod 2) <> 0 Then x = 1  Next x End Sub '質問(2) Sub bb()  Dim x As Range  Set Y = Range("A1:e5")  For Each x In Y    If x.Column <> 2 Then x = 1  Next x End Sub

keiri2002
質問者

お礼

回答有難うございます。 >x.Row x.Column こういう使い方が出来るんですね。 またお願いします。

その他の回答 (1)

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

For Each NextステートメントでStepは使えないようです(エラーに成ります、経験済み)。 A1:C3に a1 b1 c1 a2 b2 c2 a3 b3 c3 といれて Sub test01() Dim cl As Range For Each cl In Range("A1:C3") If cl.Column = 2 Then Else MsgBox cl '処理の代わり End If Next End Sub を実行すると A1/C1/A2/C2/A3/C3の順に表示されます。 ご参考に。

keiri2002
質問者

お礼

回答有難うございます。 解決しました。 またお願いします。

関連するQ&A