• ベストアンサー

オートフィルタをマクロで作成したときに列番号ではなく文字で判別させたい

こんにちわ、質問させていただきます。 マクロでオートフィルタを使いたいのですが、 Worksheets("Sheet1").Range("A1").AutoFilter _ field:=1, _ Criteria1:="東京" VisibleDropDown:=False このfield:=1という列番号指定を文字列で検索したいと思っています。 例えばどこかの行に「地域」という列があった場合”地域”の列にフィルタをかけて東京を検索したいといった場合です。 ↓ 地域  市外局番  郵便番号 東京   03     100 このフィールドを文字列指定することは不可能なのでしょうか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub test() ActiveSheet.Rows("1:1").Find(What:="地域", LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False).Activate x = ActiveCell.Column Worksheets("Sheet1").Range("A1").AutoFilter _ Field:=x, _ Criteria1:="東京" End Sub

kakikukei
質問者

お礼

希望通りのものができました!本当にありがとうございます。

その他の回答 (1)

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.2

>field:=1 これはフィルタを設置した範囲の相対位置を示す番号です。 No.1さんのように別手段で"地域"の列位置を探して、 その番号を割り当てるしかありません。 今回のケースではフィルタがA列から始まっているようなので、 相対番号=カラム番号 ですが、本来はフィルタの範囲の相対位置の番号なので注意が必要です。

kakikukei
質問者

お礼

補足説明ありがとうございました。何とか理解することができました。柔軟性が必要ですね・・・お世話になりました!

関連するQ&A