• ベストアンサー

VBA For Eachの使い方

For Each x In Range("A1:G1") このようなコードにおいて、A1からG1の全てに対して処理を行うのではなく、A1とC1とE1とG1に対して処理を行い、B1とD1とF1は飛ばして処理をしないようにするにはどうすれば良いですか?

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

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

やり方は色々あるけど、例えば列数で処理分けする場合 --- For Each x In Range("A1:G1")  Select Case x.Column   Case 1, 3, 5, 7    MsgBox ("○")   Case 2, 4, 6    MsgBox ("×")  End Select Next

VitaminBB
質問者

お礼

回答ありがとうございます。 STEP~とかで、一つ飛びなんてことは出来ないのですね。

その他の回答 (2)

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

例データA1:C3 1 2 3 4 5 6 7 8 9 コード Sub test03() Dim cl As Range For Each cl In Range("A1,c1,a3") MsgBox cl Next End Sub 実行すると 1,3,7が表示されます。 ご参考に。

VitaminBB
質問者

お礼

回答ありがとうございます。 STEP~とかで、一つ飛びなんてことは出来ないのですね。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

For Each x In Range("A1,C1,E1,G1") '処理 Next とか flag = True For Each x In Range("A1:G1") If flag Then '処理 End If flag = Not flag Next とか

VitaminBB
質問者

お礼

回答ありがとうございます。 STEP~とかで、一つ飛びなんてことは出来ないのですね。