- ベストアンサー
Excelでの検索について
検索のウインドウですが 常に表示しておきたいのですが、最前面に出てしまうので邪魔な時が多いです。 クリップボードのように右端に表示させるか ツールバーに表示させるようにする方法はありますでしょうか?? 住所録と予約の注文をエクセルで管理しておりまして 固定電話に着信があった時にナンバーディスプレイで電話番号を確認し、電話番号の下4桁を検索してから電話を受けるとスムーズに注文がとりやすいのです。 邪魔にならなくてすぐに使えるように検索ウインドウを表示しておきたいのですが…
- みんなの回答 (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
その他の回答 (3)
- onntao
- ベストアンサー率32% (108/332)
ご要望のものとは違いますが 任意のセルを検索窓とし、電話番号の下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)
おそらくご希望の機能はエクセル自身には無いと思います。 ちなみに、Ctrl+Fキーで「検索」のショートカットになります。 この方法は使えないでしょうか?
お礼
今現在はショートカットで検索を呼び出したり 検索ウインドウを出しっぱなしにしてます。
- maron--5
- ベストアンサー率36% (321/877)
◆メニューバーの[ウィンドウ]-[整列]を選択して、並べて表示すれば、いいのでは ◆なお、同じファイルの場合は、メニューバーの[ウィンドウ]-[新しいウィンドウを開く]を選択してから、「整列」を選択してください
お礼
はじめてマクロを使います。 ツールバー内に検索ウインドウが表示され 邪魔にならないし、常に表示させておくことができました。 ほんとうにありがとうございました。 大事に使わせていただきます。