プロが教えるわが家の防犯対策術!

ご存知の方がいらしたら教えて下さい。
EXCELで日報の管理を指定ます。かなりの文書を入れる場合もあるのですが、複数の単語を同時に満たすセルを検索したいのですが、何かいいアドインツールなどありますでしょうか?
EXCELの検索が、複数語に対応してくれればいいのですが・・・

A 回答 (4件)

編集→検索で検索する文字列に単語間を「*」で連結すれば可能ですが如何でしょうか。


但し、単語指定順に左右されますのでご注意下さい。
    • good
    • 5
この回答へのお礼

教えて下さって本当にありがとうございます。
早速やってみました。感動です!
「単語指定順」を気をつけながら役立たさせていただきます。

お礼日時:2006/09/26 23:13

セルの先頭から255文字までしか対応しませんが...こんな方法もあります。


「書式」「条件付き書式」で
「数式が」「=COUNTIF(セル,"*言語1*")*COUNTIF(セル,"*言語2*")」
として書式を押して塗りつぶしパターンを選択する。
言語を別セルで用意して
=COUNTIF(セル,"*"&$A$1&"*")*COUNTIF(セル,"*"&$B$1&"*")」
のように参照しても可能です。
※セルは塗りつぶすセルのセル座標を相対参照で入れてください。
    • good
    • 0
この回答へのお礼

教えて下さって本当にありがとうございます。
早速やってみました。
初めて使う機能でしたがいろいろ試しながら、該当するセルの色を変える方法で試してみました。
該当箇所が一目瞭然でとてもわかりやすいです。

お礼日時:2006/09/26 23:30

こんばんは。



以下をアドインにすることは可能だと思いますが、アドインの場合は、ユーザーフォームを加工したりするほうがよいでしょうね。

ただし、こんな検索は出来ません。第一検索語が「あい」で、第二検索語が「あ」の場合は、重複してしまいますので、出来ません。また、常識的にほとんどすべてのセルに存在するものを、第一検索語には入れないほうがよいです。完全にデバッグが終わったわけではありませんが、一応、こちらではうまく出来ています。

'標準モジュールに入れてください。
'-------------------------------------------------------

Sub FindDoubleWords()
 '第一語、第二語検索
 Dim c As Range
 Dim fstFind As String
 Dim sndFind As String
 Dim myFadd As String
 Dim myAdd As String
 Dim u As Range
 Dim n As Variant
 
 fstFind = Application.InputBox("第一検索語を入れてください。", Type:=2)
 If fstFind = "False" Or fstFind = "" Then Exit Sub
 sndFind = Application.InputBox("第一検索語を入れてください。", Type:=2)
 
 If sndFind = "False" Or sndFind = "" Then Exit Sub
 If InStr(fstFind, sndFind) > 0 Then
  MsgBox "第一検索語: " & fstFind & " が、第二検索語: " & sndFind & vbCrLf & _
  " に等しいか、充当される場合、その語の検索は出来ません。", vbInformation, "検索エラー"
  Exit Sub
 End If
 
 Set c = ActiveSheet.UsedRange.Find( _
          What:=fstFind, _
          LookIn:=xlValues, _
          LookAt:=xlPart, _
          SearchOrder:=xlByRows, _
          SearchDirection:=xlNext)
 If Not c Is Nothing Then
  myFadd = c.Address
  myAdd = c.Address
  Do
   Set c = ActiveSheet.UsedRange.FindNext(c)
   If c.Address = myFadd Then Exit Do
   myAdd = myAdd & "," & c.Address
  Loop Until c Is Nothing
 End If
 On Error Resume Next
  For Each n In Split(myAdd, ",")
   If u Is Nothing Then
    Set u = Range(n)
   Else
    Set u = Union(u, Range(n))
   End If
  Next n
 If Err.Number > 0 Then MsgBox "エラーが発生していますので検索できません。", vbCritical: Exit Sub
 On Error GoTo 0
'第二検索
 Set c = u.Find( _
          What:=sndFind, _
          LookIn:=xlValues, _
          LookAt:=xlPart, _
          SearchOrder:=xlByRows, _
          SearchDirection:=xlNext)
 
 If Not c Is Nothing Then
  myFadd = c.Address
  c.Activate
  If MsgBox("次を検索しますか?", vbOKCancel) = vbCancel Then Exit Sub
  Do
   Set c = u.FindNext(c)
   If c.Address = myFadd Then Exit Sub
   c.Activate
   If MsgBox("次を検索しますか?", vbOKCancel) = vbCancel Then Exit Sub
  Loop Until c Is Nothing
 End If
End Sub
 
 
    • good
    • 0
この回答へのお礼

教えて下さって本当にありがとうございます。
質問の投稿後、数時間でこんな回答をいただけるなんてビックリです。
VBAというものだと思いますが、どうしていいのか分からない状況で、
すぐにはどうしていいのか分かりませんが、何とか調べて試してみます。
先ずは、お礼まで。

お礼日時:2006/09/26 23:55

こんばんは~♪




>かなりの文書を入れる場合もあるのですが

1つのセルに、入っているのでしょうか?

その場合の具体例を提示されて

>複数の単語を同時に満たすセルを検索したいのですが

検索して結果をどう表示すれば良いかも
表を提示された方が良いと思います。

回答で無くすみません。。。Rin~♪♪
    • good
    • 0
この回答へのお礼

投稿ありがとうございます。アドバイスありがとうございます。
質問が正確でなくてすいません。

1.文書量についてですが、1案件には、いくつかの項目があり、
  「記入者」,「記入日時」等々あって、日報の本文は列幅50のセル
  にどんどん文書を入力し、高さが409を超えるようなら、下のセル
  に続きを記入しています。

2.検索結果の表示の件ですが、過去に同じような案件があったかどう
  かを調べたいケースですので、該当箇所をどんどん探して行ければ
  十分です。
  「編集→検索」で、空白で区切って複数語の指定が出来て、その語
  を全て含むセルを検索出来ればいいのですが・・・。

宜しくお願いいたします。

お礼日時:2006/09/26 23:45

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

このQ&Aを見た人はこんなQ&Aも見ています