- ベストアンサー
エクセル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行をまるまるとばしたい時は如何すればいいのでしょうか? 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
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の順に表示されます。 ご参考に。
お礼
回答有難うございます。 解決しました。 またお願いします。
お礼
回答有難うございます。 >x.Row x.Column こういう使い方が出来るんですね。 またお願いします。