プロが教える店舗&オフィスのセキュリティ対策術

EXCEL2003でオートフィルタを使用すると、一つの列に対し、二つの条件までしか設定できません。
三つ以上、具体的には、「A」を含む 又は 「B」を含む 又は 「C」を含む…といったようなフィルター設定をしたいのですが、
これをVBAなどでできませんでしょうか。

2007なら可能なのは分かっているのですが、会社のPCの為2003しか使えません。

よろしくお願いします。

A 回答 (4件)

データ→フィルタ→フィルタのオプション設定をお試し下さい。

    • good
    • 1
この回答へのお礼

フィルターオプションを使用することはなかったのですが、確かに希望通りのことを実行できました。これをマクロにも組み込めるようなので、目的の処理ができるようになりました。
ありがとうございました。

お礼日時:2008/01/18 18:14

エクセルのフィルタをしきりに出しているが、、


それなら、オートフィルタやフィルタオプションの設定のマクロの記録を修正とかになるでしょうが。
ーー
VBAでやるなら、他の方法もあるよ。
フィルタのように操作とは手順が違うが。
下記での
sd
dfg
we
をどう取り込むかの問題があるが。
Sub test01()
d = Range("a65536").End(xlUp).Row
k = 2
For i = 1 To d
p = InStr(Cells(i, "A"), "sd")
If p <> 0 Then
Cells(k, "F") = Cells(i, "A")
k = k + 1
GoTo ext
End If
p = InStr(Cells(i, "A"), "dfg")
If p <> 0 Then
Cells(k, "F") = Cells(i, "A")
k = k + 1
GoTo ext
End If
p = InStr(Cells(i, "A"), "we")
If p <> 0 Then
Cells(k, "F") = Cells(i, "A")
k = k + 1
GoTo ext
ext:
End If
Next i
End Sub
Findメソッドを使う、ワイルドカードを使うなどの方法もあるが
原始的な方法もある。
例データ
asdf
wersddf
fgwaer
wsdfgh
qqwrty
下記を含む行を抜き出し
sd
dfg
we
上記を両方該当するとき2回書き出しを避けるのがポイント。
結果
asdf
wersddf
wsdfgh
    • good
    • 0
この回答へのお礼

ありがとうございます。ただ私には高度すぎてよく分かりません。
フィルタオプション使用した方が、コンパクトにまとめられそうですし、そちらを採用したいと思います。

お礼日時:2008/01/21 17:25

項目名


="=*A*"
="=*B*"
="=*C*"

という条件を表とは別に設定
「データ」「フィルタ」「オートフィルタ」で
リストの範囲の元の表の範囲
条件範囲に上記の項目名と条件の範囲
でOKしてみてください。

この回答への補足

すみません、意味がよく分かりません。
「データ」→「フィルタ」→「オートフィルタ」をしても、フィルターモードになるだけで、
・リストの範囲の元の表の範囲
・条件範囲に上記の項目名と条件の範囲
を指定するボックスは出てきません。
理屈的にはフィルターオプションと同じように感じられますが、いかがでしょうか。

補足日時:2008/01/18 18:09
    • good
    • 0

VBAでもエクセルの機能に無いことはできません。

この回答への補足

デフォルトに無い機能でもVBAならできることもあるでしょう。
例えばユーザー定義関数のように。

補足日時:2008/01/18 17:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!