- 締切済み
Excelのシート自体を検索したい
Excelのシート内のセルを検索するときは、 ツールバー「編集」⇒「検索」 をすればOKですが、 複数あるシートの内の「シート名だけ」を 検索するにはどうしたらいいのでしょうか??
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- lonpoco
- ベストアンサー率44% (27/61)
下記のようなものはいかかでしょう?
- FlossenEngel
- ベストアンサー率77% (132/170)
参加します(^^) 新規Bookを開き、マクロで下記コードを実行すると、Sheet1にハイパーリンクを作成します。こっちで検索してクリックすれば[以下省略] Sub mhl() Dim wb As Workbook Dim ws As Worksheet Dim row As Long Set wb = Workbooks.Open("Book2.xls") 'ここは対象ファイル名に row = 1 For Each ws In wb.Worksheets With ThisWorkbook.Worksheets(1) .Hyperlinks.Add _ Anchor:=.Cells(row, 1), _ Address:=wb.FullName & "#" & ws.Name & "!A1", _ TextToDisplay:=ws.Name End With row = row + 1 Next wb.Close End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
1つのシートを余分に確保します。仮にシート名を「目次」とします。 A-J列までにあ-わを当てはめ、そのシートの頭文字(=商品の頭文字)の列にシート名を入れます。 A(あ) B(か) C(さ) D(た) E(な) アイロン 霧吹き 墨 テレビ インキ クレンザ 洗濯機 トナー 200品目あっても1列平均20行です。各行でアイウエオ順にしておくと見つけやすいです。 目次シートは一番左に置いておきます。 目的のシート名の入ったセルが見つかったら、そのセルをクリックするとそのシートが開きます。 VBAコードは Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets(Target.Value).Select End Sub たった3(1)行です。仮にC3セルを見たいなら Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets(Target.Value).Activate ActiveSheet.Range("C3").Select End Sub で良いでしょう。 BeforeDoubleClickイベントプロセジュアの作り方は、VBE画面を出してプロジェクトの「目次」シートをダブルクリックし、「General」をWorksheet、「Declaration」をBeforeDoubleClickを選びます。
- diashun
- ベストアンサー率38% (94/244)
またまた#1です。 事情がようやくわかったような・・・!? ロックされているんでは編集も入力もできない、いわんやマクロなど無理。 で、提案ですが・・・ そのエクセルファイルを開いたら、メニューバーの「ウィンドウ(W)」をクリック→リストから「新しいウィンドウを開く」をクリックして、この操作を5~6回して多くのウィンドウを開きます。 次にメニューバーの「ウィンドウ(W)」→「整列」をクリック→「ウィンドウの整列」画面で、「上下に並べて表示」をチェックし、さらに「作業中のブックのウィンドウを整列する」もチェックを入れます。「OK」ボタンを押すと同じエクセルファイルが横に細長く表示されます。ここでそれぞれのウィンドウのシート名を適宜表示を変えれば、シート名が一覧できるはずです。 この方法で探したい「シート名」が素早く発見しやすくなるかも・・・です。 目的の「シート名」探せたら、「最大化」ボタンでそのウィンドウを最大化して【商品の在庫数】を確認できます。 表示するウィンドウ数はそちらの環境に合わせてください。でわでわ?????
補足
どうも、お返事遅くなりました。 ご回答の方法。。。やってみましたがイマイチ意味が・・・(^_^;) すみません。 でも、セルの検索のように、シートの検索もワンタッチでできる方法を探しているのですが・・・・・・。 やっぱりムリかなぁ・・・。
- diashun
- ベストアンサー率38% (94/244)
#1です 既存の機能や標準ツールではできないと思うので マクロでよければ・・・ですが・・・ 以下のコードをVBAマクロの標準モジュールにコピペし、マクロを実行してください。 Sub Macro1() Dim i As Integer Dim CntSheet As Integer Dim strSheetName As String strSheetName = ThisWorkbook.ActiveSheet.Range("A1").Value CntSheet = ThisWorkbook.Sheets.Count For i = 1 To CntSheet If strSheetName = ThisWorkbook.Sheets(i).Name Then ThisWorkbook.Sheets(strSheetName).Activate Exit Sub End If Next i End Sub 手順 (1)ExcelのBookを開く (2)任意のシートのセル番地”A1”に検索したい「Sheetの名前」を入力します。 「ツール」「マクロ」でマクロ画面を開く (3)「Macro1」を実行 ソースコードの 「strSheetName = ThisWorkbook.ActiveSheet.Range("A1").Value」の("A1")の記述を変えれば任意のセルへの検索文字入力を設定できます。 以上、いかがでしょうか?
補足
たびたびありがとうございます。 でもでも・・・ちょっとムリですぅ~(><) そもそも、そのデータ、というのが、 商品の在庫数を記載したものなんです。 で、1つのシートに1つの商品の在庫数が店舗ごとに一覧表になってて、それが何十シートとなって保存されているんです。 しかも、担当者にロックされているので、好きにいじれないし、でもでも、TELで在庫の問い合わせがあった時に瞬時に答えないといけないし・・・ という感じなんです・・・。(ーー;) やっぱムリなんでしょうかぁ・・・。
- diashun
- ベストアンサー率38% (94/244)
例えば、Sheet1~Sheet3までの全シートを検索対称にするには、Sheet1をクリックし、「Shift」キーを押しながらSheet3をクリックするとSheetがグループ化されます。この状態で「検索」で、検索文字列を入力し「次を検索実行」で洗濯したすべてのSheetが検索対象になります。
補足
早速ご回答いただきましたが、複数あるシートの中の セルの文字列を検索したいのではなく、例えば、sheet1~sheet3まであるとすると、「sheet1」というシートの見出し自体の文字を検索したいのです。よろしくお願いいたします。
補足
ご答の方法だと、excelをひらいてから、さらに作業が必要となってしまうので、ムリだと思います~ (><)データはロックされていますし、 毎回読み取り専用で開かないといけませんので。 あくまで、セル検索=Ctrl+Fで・・・ というふうな具合で、シート名もワンタッチ探せる方法を探していますので・・・。