Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6845 / 13644 ツリー ←次へ | 前へ→

【42737】オートフィルタで複数検索 ミーナ 06/9/20(水) 12:37 質問[未読]
【42740】Re:オートフィルタで複数検索 Jaka 06/9/20(水) 13:31 発言[未読]
【42744】Re:オートフィルタで複数検索 ミーナ 06/9/20(水) 14:00 質問[未読]
【42745】Re:オートフィルタで複数検索 Jaka 06/9/20(水) 14:08 発言[未読]
【42746】Re:オートフィルタで複数検索 ミーナ 06/9/20(水) 14:11 質問[未読]
【42747】Re:オートフィルタで複数検索 Jaka 06/9/20(水) 14:20 発言[未読]
【42771】Re:オートフィルタで複数検索 ミーナ 06/9/21(木) 11:48 お礼[未読]

【42737】オートフィルタで複数検索
質問  ミーナ  - 06/9/20(水) 12:37 -

引用なし
パスワード
   検索用のユーザーフォームをつくりました。
電話番号というオプションボタンにチェックを入れると
サーチ1とサーチ2というテキストボックスに入力した文字を含むものを
オートフィルタで検索するというコードを作っています。

If 電話番号.Value = True Then
Selection.AutoFilter Field:=23, Criteria1:="*" & サーチ1 & "*", _
                      Operator:=xlAnd, Criteria2:="*" & サーチ2 & "*"
Else
Selection.AutoFilter Field:=23, Criteria1:="*" & サーチ1 & "*", _
                      Operator:=xlOr, Criteria2:="*" & サーチ2 & "*"
End If

上のコードを作ったのですが、サーチ1のみ又はサーチ2のみに入力した場合のみしか検索できません。
どちらか一つの場合、またはサーチ1、サーチ2共に入力されている場合すべてで検索できるようにしたいのですが、ここから先がわかりません。
どこをなおせば、すべてにおいて検索できるようになるのか教えていただけませんか?

【42740】Re:オートフィルタで複数検索
発言  Jaka  - 06/9/20(水) 13:31 -

引用なし
パスワード
   オートフィルターで、Selectionとかあいまいな表現をしたことないですが、
テキストボックスの値を見て素直に分けたら良いと思います。
(と、書いておきながら、Fugo部分が素直じゃないですが...。)

Dim Fugo As Variant
Fld = 23
If 電話番号.Value = True Then
  Fugo = xlAnd
Else
  Fugo = xlOr
End If
If サーチ1.Value <> "" And サーチ2.Value Then
  Selection.AutoFilter Field:=Fld, Criteria1:="*" & サーチ1.Value & "*", _
                  Operator:=Figo, Criteria2:="*" & サーチ2.Value & "*"
ElseIf サーチ1.Value <> "" Then
  Selection.AutoFilter Field:=Fld, Criteria1:="*" & サーチ1.Value & "*"
ElseIf サーチ2.Value <> "" Then
  Selection.AutoFilter Field:=Fld, Criteria1:="*" & サーチ2.Value & "*"
End If

【42744】Re:オートフィルタで複数検索
質問  ミーナ  - 06/9/20(水) 14:00 -

引用なし
パスワード
   ▼Jaka さん:
ありがとうございます。しかし・・・
>If サーチ1.Value <> "" And サーチ2.Value Then
で 実行時エラー"424"がでてしまいます。なぜなんでしょう?

【42745】Re:オートフィルタで複数検索
発言  Jaka  - 06/9/20(水) 14:08 -

引用なし
パスワード
   ▼ミーナ さん:
>>If サーチ1.Value <> "" And サーチ2.Value Then
>で 実行時エラー"424"がでてしまいます。なぜなんでしょう?

すみません。抜けてました。
If サーチ1.Value <> "" And サーチ2.Value <> "" Then

【42746】Re:オートフィルタで複数検索
質問  ミーナ  - 06/9/20(水) 14:11 -

引用なし
パスワード
   ▼Jaka さん:

>If サーチ1.Value <> "" And サーチ2.Value <> "" Then

でやっても
 
実行エラー"424"
オブジェクトが必要です

がでます><
     

【42747】Re:オートフィルタで複数検索
発言  Jaka  - 06/9/20(水) 14:20 -

引用なし
パスワード
   ▼ミーナ さん:
>>If サーチ1.Value <> "" And サーチ2.Value <> "" Then
>でやっても
> 
>実行エラー"424"
>オブジェクトが必要です
>がでます><
     
あの、
>サーチ1とサーチ2というテキストボックスに入力した文字を含むものを
って、テキストボックスのオブジェクト名を「サーチ1」とかに変えたんじゃないんですか?
でしたら、TextBox1.Value 等に変えてください。

上では無く、
サーチ1 = TextBox1.Value
とか、「サーチ1」を変数として使っているのなら、
.Value
は、いりません。はずしてください。

【42771】Re:オートフィルタで複数検索
お礼  ミーナ  - 06/9/21(木) 11:48 -

引用なし
パスワード
   ▼Jaka さん:
お返事が遅くなって申し訳ありませんでした。
変数宣言してたことをすっかりと忘れていました。。。
ちゃんとできるようになりました。本当にありがとうございました。

6845 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free