|
▼UO3さん:
佳 さん:
ありがとうございました。
ANDを&に替えて、結果が出せました。これで会社のパソコン苦手の人たちに(私も含めて)こうすれば、検索できるよと言ってあげられます。
ただし、お二方の指摘どおり、わざわざ検索語を二つにしなくても、*でつなげばいいんだとか、そうすると検索語の順番がいるとか、いろいろ改良点はありそうです。
これから、少しずつ頑張ってみます。行き詰ったらまた質問します。
有難うございました。
>こんにちは。
>
>Set 結果 = mySH.Cells.Find( _
> What:=検索語, _
> LookIn:=xlValues, _
> lookat:=xlWhole)
>
>ここに出てくるFindというのは、手作業での「検索」機能に相当します。
>キーボードで Ctrl + F を押すと出てくるダイアログボックスです。
>このコードで行くと「検索する語句」の欄に検索語を入れ
>「検索対象」で値を選択、「完全に同一なセルを検索」にチェックを入れる
>ことになります。(wholeとは全体という意味)
>
>それでたとえば「北海道」と「網走」の入ったセルを検索するには
>検索する語句を「*北海道*網走*」とします。
>または「完全に同一なセルを検索」のチェックを外した上で「北海道*網走」
>としてもOKです。
>(こういったことは一般機能のヘルプに載っていると思いますので
>目を通しておいて下さい。そして実際に手を動かして、いろいろためして
>実感してください。この実感の量がVBAを書くときにあとあと利いてきます)
>
>
>ということでVBAで「*北海道*網走*」という文字列を作って What:=検索語
>に入れれば、検索できるということになります。
>VBAでの「*北海道*網走*」の作り方ですが、たとえばこんなです。
> Dim 検索語 As String
> 検索語 = "北海道" 'とりあえずinbutboxの代わり.
> MsgBox 検索語
> MsgBox "■" & 検索語
>
>
>※ただしこの方法では「北海道」が先に来て「網走」があとに来るものが
> 検索されます。「網走は北海道にある」はヒットしないのです。
>※それでは困るという場合は、VBAのヘルプで like演算子の項目を読むと
> 参考になるでしょう。あ、困らない場合でもヘルプを読んで損をする
> ことはないので、時間と気持ちに余裕があれば読んでおくといいです。
>
>
>▼isausa さん:
>>佳さん
>>▼UO3 さん:
>> 佳さん
>>しばらく時間がなくて、お返事できませんでした。すみません。
>>>I2,J2 は、どのシートですか?
>>>また、ここにセットすることは必須ですか?
>>>それとも、2つのワードで検索できれば、I2,J2へのセットは不要ですか?
>>>
>>I2,J2は検索シートです。(各年のシートの検索結果を抽出して転記させるのに使っています。そのI2 AND J2を一つの検索ワードにして各年のH列のデータを抽出して、検索シートに書き出したいのです。
>>
>>>それと、
>>>H列に 涼しい北海道の網走市 といったように入っているのですか?
>>>それともH列には 北海道が含まれる字句が、I列に網走が含まれる字句が入っているのですか?
>>各シートのH列にデータ検索データを入れていますので、H列に北海道A社札幌出張とか北海道B社来社(釧路)とか入っており、北海道だけで検索するよりももう一つ検索語があったほうが絞りやすいと考えています。
>>UO3 さん佳さんのアドバイスに従って検索シートのI2,J2に 検索語を表示することはできました。
>>そこで検索なのですが、
>>Set 結果 = mySH.Cells.Find( _
>>> What:=検索語, _
>>> LookIn:=xlValues, _
>>> lookat:=xlWhole)
>>> If Not 結果 Is Nothing Then
>>> 先頭 = 結果.Address
>>の部分でWhat:検索語 AND 検索語1としたら、見事にエラーになってしまいました。
>> I2 J2
>>ここはどうしたらいいのでしょうか。
|
|