• ベストアンサー

エクセルシート検索

現在見積書を1つのブックで大量に作成(年間でシート数が100くらいになります)しており、過去の見積を検索するのに時間がかかって仕方がありません。例えば、シート1に検索ボタンを作り、シート名(見積番号で保存)を入力するとそのシートにジャンプするというような方法ってありますか? あると思うのですが、マクロっていうのが全くわかりません。 誰か助けて下さい。

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

  • ベストアンサー
  • tag1701
  • ベストアンサー率54% (67/123)
回答No.1

下記のページに希望に近いものが記載されています。 見てみてください。 http://vbatips.blog37.fc2.com/blog-entry-9.html

その他の回答 (5)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.6

>今回は別シートへ移動ですが、別ブックを開くっていうこともできるんでしょうか? これにレスがついて無かったですね。 もちろんできます。 Workbooks.open を調べてみてください。

15honbu
質問者

お礼

ありがとうございます。 ネット検索ですぐに解決できました。 素人なりに、少しは本でも読んで勉強します。 本当にありがとうございました。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.5

InputBoxを使用してシート名を入力 キャンセル、未入力、誤入力の場合は何も起こりません '標準モジュールへ Sub Macro1() Dim Sh As String On Error Resume Next Sh = Application.InputBox("見積番号を入力してください", "見積シート検索") Worksheets(Sh).Select End Sub マクロの実行の画面で一番下のオプションボタンを押し ショートカットの設定をするか ツールバーにマクロボタンを設置すると使用しやすいかも 参考まで

15honbu
質問者

補足

ありがとうございます。非常に助かりました。 今回は別シートへ移動ですが、別ブックを開くっていうことも できるんでしょうか?

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.4

単純にシート名のところに飛ぶだけなら (1) Option Explicit Sub Sheet_jump() Worksheets(Range("A1").Value).Activate End Sub これでA1に書いてある名前のシートに移動します。 これをボタンかショートカットにすればいいかと また次のコードだと名前の書いてあるセルをダブルクリックすると移動します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True Worksheets(Target.Value).Activate End Sub (1)の入力方法 Excelの通常画面からAlt+F11 (マクロ用のウインドが開く) 標準モジュールの挿入 そのモジュール内に上記のコードを記入(コピペ)する マクロ用のウインドを閉じる Excelの通常画面からAlt+F8(マクロ選択ウインドが開く) Sheet_jump(マクロの名前)を選び オプションからショートカットキーを登録する(例えばq) 今後はCtrl+qでそのシートに移動するようになります。 (2)の方法 同じようにマクロウインドを開いた後 左の「プロジェクト」の中からシート名(シート1)を選んでダブルクリックします。 同じようにコード入力の画面になるので上記のコードを記入(コピペ) マクロ用のウインドを閉じる 名前の書いてあるセルをダブルクリックするとそこへ移動します どちらにします? また画面に窓をだして入力する方法おありますが... どっちにしてもシート数が100枚というのは尋常じゃないですね。 なんらかの方法を考えないとまたどこかで破綻しそうな気がします。

15honbu
質問者

補足

早速のご回答ありがとうございます。 やっていることは全くはわかりませんが、ジャンプできました。 画面に窓を出す方法も教えて下さい。出来れば、ボタンを 押すと窓が出るなんて最高です。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

例えばシート1のA1セルに次の式を入力して下方にオートフィルドラッグします。この場合には同じブック内(Book1)でシート名が2,3,4、と連続的に変わる場合です。 ="[Book1]Sheet"&ROW(A1)+1&"!A1" もちろん作成するシート名を上のような形式で"[Book1]請求書あ!A1"のように入力してもよいでしょう。 その上でB1セルには=HYPERLINK(A1)と入力して下方にオートフィルドラッグします。 こうしたのちにB列のどれかのセルをクリックすれば該当のシートが即座に表示されます。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

シート名のリストを作成 入力規則で、リストからシート名を選択入力できるようにする HYPERLINK関数で、入力されたシートへジャンプ といった仕組みを作ればどうでしょうか。 シート名を書き出すマクロが公開されています。 ワークシートの名前を取得する http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sheet.html#name 入力規則の使い方は Excel2007(エクセル2007)基本講座:入力規則の使い方【リスト編】 http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html HYPERLINK関数の使い方は 同じブック内のシートにハイパーリンク-HYPERLINK関数 http://www.relief.jp/itnote/archives/000998.php Excel(エクセル)基本講座:ハイパーリンクの関数の使い方 http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/hyper.htm