• ベストアンサー

Excelでの検索について

検索のウインドウですが 常に表示しておきたいのですが、最前面に出てしまうので邪魔な時が多いです。 クリップボードのように右端に表示させるか ツールバーに表示させるようにする方法はありますでしょうか?? 住所録と予約の注文をエクセルで管理しておりまして 固定電話に着信があった時にナンバーディスプレイで電話番号を確認し、電話番号の下4桁を検索してから電話を受けるとスムーズに注文がとりやすいのです。 邪魔にならなくてすぐに使えるように検索ウインドウを表示しておきたいのですが…

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 マクロで作ってみました。 >クリップボードのように右端に表示させるか >ツールバーに表示させるようにする方法はありますでしょうか?? こんな感じでしょうか? 一通りの検索機能はあります。次の検索も可能です。 最初だけ、Auto_Open を実行してください。後は、設定したブックを開けば、検索ボックスが現れます。そのブックを閉じると、検索ボックスはなくなってしまいます。 設定されるまで、少し、時間が掛かります。 '標準モジュールに入れてお使いください。 Private c As Range Private Fadd As String Private Fdata As String Sub Auto_Open()  Call CommandMenu_Add End Sub Sub Auto_Close() Dim myCBCtrl As CommandBarControl  On Error Resume Next  With Application.CommandBars("WorkSheet Menu Bar")    .Controls("検索ツール(&K)").Delete    .Controls("次検索...").Delete  End With  On Error GoTo 0 End Sub '----------------------------------- '実行メニュー '----------------------------------- Sub CommandMenu_Add() Dim myCB As CommandBar Dim cnt As Integer Dim myCBCtrl As CommandBarControl  On Error Resume Next  '二重設定の回避  With Application.CommandBars("WorkSheet Menu Bar")    .Controls("検索ツール(&K)").Delete    .Controls("次検索...").Delete  End With  On Error GoTo 0  '  Set myCB = Application.CommandBars("WorkSheet Menu Bar")  cnt = myCB.Controls.Count  With myCB.Controls.Add(Type:=msoControlEdit, Before:=cnt + 1, Temporary:=True)   .Caption = "検索ツール(&K)"   .TooltipText = "現在のシートの文字を検索します"   .OnAction = "MyFind"  End With  With myCB.Controls.Add(Type:=msoControlButton, Before:=cnt + 2, Temporary:=True)   .Caption = "次検索..."   .OnAction = "myNextFind"   .TooltipText = "次検索..."   .Style = msoButtonCaption  End With Set myCBCtrl = Nothing End Sub Private Sub myFind() Dim myFind As String  myFind = Application.CommandBars("WorkSheet Menu Bar").Controls("検索ツール(&K)").Text  Set c = Nothing  Fadd = ""  Fdata =""  Set c = ActiveSheet.Cells.Find( _  What:=myFind, _  LookIn:=xlValues, _  LookAt:=xlPart, _  SearchOrder:=xlByRows, _  SearchDirection:=xlNext, _  MatchByte:=False)       If Not c Is Nothing Then        Fadd = c.Address        Fdata = ActiveWorkbook.Name & "!" & ActiveSheet.Name        c.Select       Else        Beep      End If End Sub Private Sub myNextFind() '次の検索    On Error GoTo ErrHandler    If c Is Nothing Then Exit Sub    If Fdata <> ActiveWorkbook.Name & "!" & ActiveSheet.Name Then      Fadd = c.Address      Fdata = ActiveWorkbook.Name & "!" & ActiveSheet.Name    End If    Set c = Cells.FindNext(c)    c.Select    If c.Address = Fadd Then      Beep    End If    Exit Sub ErrHandler:  MsgBox "検索できませんので、新たに、検索ボックスから実行してください。", vbInformation End Sub

spymaster
質問者

お礼

はじめてマクロを使います。 ツールバー内に検索ウインドウが表示され 邪魔にならないし、常に表示させておくことができました。 ほんとうにありがとうございました。 大事に使わせていただきます。

その他の回答 (3)

  • onntao
  • ベストアンサー率32% (108/332)
回答No.3

ご要望のものとは違いますが 任意のセルを検索窓とし、電話番号の下4桁を、入力 データの表からその4桁をキーに関数(VLOOKUP関数)でその他の住所や名前の項目を表示する仕組みを作ってはいかがでしょう http://www.yoshikawa.co.jp/ybs/skilup/ybs0308.htm http://allabout.co.jp/computer/msexcel/closeup/CU20060805A/index.htm?FM=rss

  • michi_001
  • ベストアンサー率32% (21/65)
回答No.2

おそらくご希望の機能はエクセル自身には無いと思います。 ちなみに、Ctrl+Fキーで「検索」のショートカットになります。 この方法は使えないでしょうか?

spymaster
質問者

お礼

今現在はショートカットで検索を呼び出したり 検索ウインドウを出しっぱなしにしてます。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆メニューバーの[ウィンドウ]-[整列]を選択して、並べて表示すれば、いいのでは ◆なお、同じファイルの場合は、メニューバーの[ウィンドウ]-[新しいウィンドウを開く]を選択してから、「整列」を選択してください