Excel VBA質問箱 IV

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

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


1863 / 13645 ツリー ←次へ | 前へ→

【71382】ワイルドカード AoYasu 12/2/28(火) 9:17 質問[未読]
【71384】Re:ワイルドカード kanabun 12/2/28(火) 10:02 発言[未読]
【71385】Re:ワイルドカード AoYasu 12/2/28(火) 10:56 質問[未読]
【71392】Re:ワイルドカード hint 12/2/28(火) 13:30 発言[未読]
【71394】Re:ワイルドカード AoYasu 12/2/28(火) 14:49 質問[未読]
【71396】Re:ワイルドカード hint 12/2/28(火) 15:05 発言[未読]
【71397】Re:ワイルドカード hint 12/2/28(火) 15:48 発言[未読]
【71398】Re:ワイルドカード AoYasu 12/2/28(火) 15:54 お礼[未読]
【71399】Re:ワイルドカード ASD 12/2/28(火) 15:59 発言[未読]
【71411】Re:ワイルドカード AoYasu 12/3/1(木) 8:30 質問[未読]
【71427】Re:ワイルドカード ASD 12/3/1(木) 16:59 発言[未読]
【71435】Re:ワイルドカード 12/3/2(金) 20:11 発言[未読]
【71441】Re:ワイルドカード AoYasu 12/3/3(土) 13:28 質問[未読]
【71442】Re:ワイルドカード UO3 12/3/3(土) 15:43 発言[未読]

【71382】ワイルドカード
質問  AoYasu  - 12/2/28(火) 9:17 -

引用なし
パスワード
   ワイルドカードを用いて検索をしているのですが
検索項目で
   西東京
   東京
   東京熱
    ・
    ・
 検索では東京を含む全てが検索され
 東京のみを検索したい場合ワイルドカードを用いて
 どのようにしたらよいのでしょうか
  以下のように書いて処理しています
  TextBox場所に”東”と入力
  Type_場所 =納期表検索.TextBox場所.Text
  検索文字= "*" & Type_場所 & "*"

【71384】Re:ワイルドカード
発言  kanabun  - 12/2/28(火) 10:02 -

引用なし
パスワード
   ▼AoYasu さん:
>ワイルドカードを用いて検索をしているのですが
>検索項目で
>   西東京
>   東京
>   東京熱
>    ・
>    ・
「完全一致」検索ですからワイルドカード不要では?
以下、参考です
Sub test1()
 Dim r As Range
 Dim c As Range
 
 Set r = Range("A1:A3")
 Set c = r.Find("東京", LookAt:=xlWhole)
 If Not c Is Nothing Then
   MsgBox c.Address(0, 0) & " に見つかりました"
 End If
End Sub

Sub test2()
 Dim r As Range
 Dim m As Variant
 
 Set r = Range("A1:A3")
 m = Application.Match("東京", r, 0)
 If IsNumeric(m) Then
   MsgBox r(m).Address(0, 0) & " に見つかりました"
 End If
End Sub

Sub test3()
 Dim r As Range
 Dim c As Range
 
 Set r = Range("A1:A3")
 For Each c In r
   If c.Value Like "東京" Then
     MsgBox c.Address(0, 0) & " にあります"
   End If
 Next
End Sub

【71385】Re:ワイルドカード
質問  AoYasu  - 12/2/28(火) 10:56 -

引用なし
パスワード
   ▼kanabun さん:
  解答ありがとうございます
  質問の仕方が悪くてすいません

   検索項目でセル("B3:B20")に以下のように文字があります
    西東京
    東京
    東京熱
     ・
     ・
     ・
  ここでワイルドカードで”東京”を含むものも検索したりしています
  TextBoxで入力して検索し、”東京”のみも検索
  しようとしています
  
  Type_場所 =納期表検索.TextBox場所.Text
  検索文字= "*" & Type_場所 & "*"
  よろしくお願いいたします

【71392】Re:ワイルドカード
発言  hint  - 12/2/28(火) 13:30 -

引用なし
パスワード
   ▼AoYasu さん:
>  解答ありがとうございます
>  質問の仕方が悪くてすいません
横から失礼します。
悪いのは質問の仕方ではないと思います。
回答をしっかり読んで理解してください。
ワイルドカードで検索すると、東京の前後に文字があるものも拾われます。
前後にあるものは排除したいなら、指摘にありますように、
ワイルドカードをつけずに完全一致するものを検索すればいいだけです。
どうしてもワイルドカードが好きで、これしか使いたくないなら、
検索結果の文字数を見て2文字を超えたものを捨てることです。

【71394】Re:ワイルドカード
質問  AoYasu  - 12/2/28(火) 14:49 -

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

   TextBoxに入力して 抽出条件を次のようにしました
   Dim 検索文字 As String
   Dim 文字 As String

   検索文字 =Userform.TextBox場所 ---検索文字値 =東
   文字 ="*" & 検索文字 & "*"  ----文字 =*東*

  Set Ran = sht3.Range("B" & Mgyou).CurrentRegion
  Set Ran = Intersect(Ran, Ran.Offset(, 1))
   抽出条件が *東* を選択
  Ran.AdvancedFilter Action:=xlFilterCopy, _
  CriteriaRange:=sht2.Range("B" & Mgyou & ":" & "M" & Mgyou1), _
  CopyToRange:=sht1.Range("B" & WriteGyou), Unique:=False

  これで行うと東の前後に文字があるものも拾われます
  これは理解できるのですが、ここで東京のみを拾うのは
  やはり無理のようですね
   東京 のみを拾うためには
  もう一つ完全一致の為のTextBoxから東京を入力して
  完全一致の検索をしなければだめのようですね

【71396】Re:ワイルドカード
発言  hint  - 12/2/28(火) 15:05 -

引用なし
パスワード
   ▼AoYasu さん:
>   東京 のみを拾うためには
>  もう一つ完全一致の為のTextBoxから東京を入力して
>  完全一致の検索をしなければだめのようですね
そのとおりです。
*東* を与えて 東京 だけにヒットさせたい、
って、そこまで空気読むようなことを期待しちゃだめです。
無茶苦茶ですよ、そんなことが実現できたら。

【71397】Re:ワイルドカード
発言  hint  - 12/2/28(火) 15:48 -

引用なし
パスワード
   例えば、検索条件範囲のB1:B2を
B1 は 何も入力せず
B2 は =A2="東京"
としておいてフィルタオプションを実行します。
これで完全一致のものだけが抽出されるはずです。

【71398】Re:ワイルドカード
お礼  AoYasu  - 12/2/28(火) 15:54 -

引用なし
パスワード
   ▼hint さん:
無理な質問を投げかけました
以下のことを実行してみます
ありがとうございました

>例えば、検索条件範囲のB1:B2を
>B1 は 何も入力せず
>B2 は =A2="東京"
>としておいてフィルタオプションを実行します。
>これで完全一致のものだけが抽出されるはずです。

【71399】Re:ワイルドカード
発言  ASD  - 12/2/28(火) 15:59 -

引用なし
パスワード
   AoYasu さん:
1.抽出条件が *東* ということですが
 東京としたくない理由は?
2.検索項目でセル("B3:B20")に以下のように文字に条件があるのですか?
3.文字 ="*" & 検索文字 & "*"  
 文字比較するのであれば、やはり
 文字 LIKE "*" & 検索文字 & "*" ですね

なにをしたいのか わかりませんよ

【71411】Re:ワイルドカード
質問  AoYasu  - 12/3/1(木) 8:30 -

引用なし
パスワード
   ▼ASD さん:
返事が遅くなりました
検索項目でセル("B3:B20")の中に
  西東京
  東京東
 など、東京を含む文字が混在しています
 この中で 東京 のみを検出したかったのです
  

>AoYasu さん:
>1.抽出条件が *東* ということですが
> 東京としたくない理由は?
>2.検索項目でセル("B3:B20")に以下のように文字に条件があるのですか?
>3.文字 ="*" & 検索文字 & "*"  
> 文字比較するのであれば、やはり
> 文字 LIKE "*" & 検索文字 & "*" ですね
>
>なにをしたいのか わかりませんよ

【71427】Re:ワイルドカード
発言  ASD  - 12/3/1(木) 16:59 -

引用なし
パスワード
   AoYasu さん
>>1.抽出条件が *東* ということですが
>> 東京としたくない理由は?
理由がないのなら

kanabunさん

完全一致」検索でできます

【71435】Re:ワイルドカード
発言    - 12/3/2(金) 20:11 -

引用なし
パスワード
   こんにちは。横から失礼します。

> もう一つ完全一致の為のTextBoxから東京を入力して
> 完全一致の検索をしなければだめのようですね

テキストボックスはひとつで大丈夫です。
かわりにボタンを2つ(完全一致用と部分一致用)使うとか
ボタンは1つで、そのほかに完全一致と部分一致を選択するためのオプションボタン
(コンボボックスでもチェックボックスでも可)とかすると
カッコイイんじゃないかと思います。

【71441】Re:ワイルドカード
質問  AoYasu  - 12/3/3(土) 13:28 -

引用なし
パスワード
   ▼佳 さん:
アドバイスありがとうございます

>>完全一致の為のTextBoxから東京を入力して
>> 完全一致の検索をしなければだめのようですね

そうなんです
  データーの中身なのですが
    場所
    東京
    東京西
    東京東
    西東京
     ・
     ・
 上記のように並んでいます
 ご指摘のようにオプションボタンで
 ワイルドカードの時と完全一致の時に分けまして
 TextBoxから東京を入力(完全一致)
  結果 
  前2文字が東京の場合全て検索され
  東京西のように後に別文字がある文字まで
  検索されてしまします
  これを東京のみ検索したいのです
  うまくいかなく困っています
  よろしくお願いいたします

【71442】Re:ワイルドカード
発言  UO3  - 12/3/3(土) 15:43 -

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


【71397】のhintさんのコメントはご理解されましたか?
xl2002(だったと思います)だけは、検索欄に東京といれると完全一致、部分一致にしたければ
使う側で、*を付加する必要があったと聞いています。

ただ、それ以外のバージョンでは、東京 と入れると、前方一致になってしまいます。
なので、完全一致にしたければ検索欄に "'=東京" という文字列を入れておく必要があります。

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