• ベストアンサー

エクセルのマクロ

勉強を始めたばかりで処理を繰り返す項目をいろいろ調べたのですがうまくいきません。教えてください。 オートフィルタで3列目を”東京 ”という文字でを抽出したあとである処理をし、その後同じ列で今度は”神奈川 ”を選び同様の処理をする。また今度は 次は"千葉”と繰り返したいのです。 マクロを見てみると Selection.AutoFilter Field:=3, Criteria1:="1"    何らかの処理 Selection.AutoFilter Field:=3, Criteria1:="2"    何らかの処理 Selection.AutoFilter Field:=3, Criteria1:="3"    何らかの処理 となっています。こうなると必要な数だけ これをコピーしないといけないので ループのようなもので下記の■の部分の 数字を1.2.3.~と処理を繰り返す毎に 増やして生きたいのです。 そしてリストの最後にきたらおしまいにしたいのですが・・・・。FOR NEXT とか DO LOOP とか 試しましたが、私の幼稚な知識ではうまく動いてくれませんでした。すみませんがよろしくお願いします。 Selection.AutoFilter Field:=3, Criteria1:="■" 処理

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

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

東京等がコードになっていないときの一般的な方法 Sub test01() a = Array("東京", "千葉", "神奈川") For i = 0 To UBound(a) Selection.AutoFilter Field:=3, Criteria1:=a(i) Next i End Sub でできると思いますが。

その他の回答 (1)

  • wildcard
  • ベストアンサー率54% (54/100)
回答No.1

下記のような記述で良いと思います。 一行目は、変数aを整数型として定義し、二行目は、Forループでaが1から3までの3回ループ(aはひとつずつ増加します)、三行目で変数aを整数型から文字列型に変換して代入しています。   Dim a As Integer   For a = 1 To 3     Selection.AutoFilter Field:=3, Criteria1:=CStr(a)     処理   Next a

cyama9
質問者

お礼

いや~本当にありがとうございます。 本ではとてもこのようにぴったりと 考えられるまで導けなかったので 感激です。早速試してみます。 ありがとうございました。

関連するQ&A