[[20150523075237]] 『複数(300)のシートの中からアバウトなシート名で戟x(ya) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数(300)のシートの中からアバウトなシート名で検索したい』(ya)

いつも拝見し参考にさせて頂いているエクセル初心者です。

エクセルファイルにシートが300有り、いつも探すのに時間が掛り困っております。
簡単に探したいシートを見つけ出す方法はないでしょうか

宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 300シート!!

 ちょっと怖い(?)ですね。ブックが破損しそう。ブックをわけることも検討されてはいかがでしょう。

 それはさておき。

 >>簡単に探したいシートを見つけ出す方法はないでしょうか

 ・シート名がわかっていて、そこを、さっと選択したいということなら、エクセル画面左下、最初のシートタブの左側に 
  ◀ ▶ と表示されているところを右クリックするとシート一覧がでますので、そこから選ぶ。
  でも、300もあればリストにも300でてくるわけで、それはそれで大変?
 ・「アバウトな」ということは、シート名の一部を与えてワイルド検索的に候補シートを表示して選ぶ?
  この場合は、標準機能ではどうなんでしょうか? マクロ処理になるのでは?

(β) 2015/05/23(土) 08:50


 横から失礼します。

 参考になると思います。

http://ascii.jp/elem/000/000/206/206808/
(カリーニン) 2015/05/23(土) 08:51


 マクロでの選択案です。

 ・ユーザーフォームを挿入します。
 ・ユーザーフォームに TextBox1 と ListBox1 を配置します。
 ・ユーザーフォームモジュールに以下を貼り付けます。

 Private Sub UserForm_Initialize()
    ListBox1.ListStyle = fmListStyleOption
    MakeList
 End Sub

 Private Sub ListBox1_Click()
    Sheets(ListBox1.Value).Select
    Unload Me
 End Sub

 Private Sub TextBox1_Change()
    MakeList TextBox1.Value
 End Sub

 Private Sub MakeList(Optional myStr As String = "")
    Dim sh As Worksheet
    ListBox1.Clear
    For Each sh In Worksheets
        If sh.Name Like "*" & myStr & "*" Then ListBox1.AddItem sh.Name
    Next
 End Sub

 ・標準モジュールに以下を貼り付けます

 Sub ShowForm()
    UserForm1.Show vbModeless
 End Sub

 ・マクロショートカットで、ShowForm に シートカットキー(たとえば a )を割り当てます。

 これで、選択した時、このブックのどのシートが表示されている状態であっても Ctrl/a でユーザーフォームが表示されます。
 最初は、すべてのシートがリスト表示されています。
 TextBoxにワイルドカード抽出をしたい文字列を入力します。文字タイプのたびにシートが絞り込まれます。
 リスト内で選びたいシートをクリックすると、そのシートが選択されて、ユーザーフォームが消えます。

(β) 2015/05/23(土) 09:14


β様 カリーニン様ご連絡有難うございます。

β様の「◀ ▶ と表示されているところを右クリックするとシート一覧」は簡単で今よりも格段に時間短縮ができそうです。

カリーニン様 参考になりました。

マクロを実施した経験は有りませんが今回挑戦してみようと思いますが、すでに解らない事に突き当たってしましました。
・ユーザーフォームを挿入します。・・・・・なんとかできましたが
次からが全く分かりませんでした。β様教えて頂くと助かります。お願い致します。
・ユーザーフォームに TextBox1 と ListBox1 を配置します。
(ya) 2015/05/23(土) 09:37


 まず、ユーザーフォーム上でのコントロールの配置に関しては、私が言葉で説明するより、たとえば

http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html

 あるいは

http://www.atmarkit.co.jp/ait/articles/1404/04/news037.html

 このあたりを参考にしていただくほうが、ビジュアルでわかりやすいと思います。
 コントロールツールボックスのどれがテキストボックスでどれがリストボックスなのか
 わかりにくければ、各コントロールの上にマウスをあてればコントロールの種類がポップアップされます。

 >> ・ユーザーフォームモジュールに以下を貼り付けます。

 VBE画面の左上にプロジェクトエクスプローラというものが表示されていると思います。
 その中の、UserForm1を右クリックしてコードの表示を選ぶと、そこがユーザーフォームモジュールです。

 >> ・標準モジュールに以下を貼り付けます

 おわかりだとは思いますが念のため。
 VBE画面の上にあるメニューの挿入から、標準モジュールを選ぶとでてくるところが標準モジュールです。

 >> ・マクロショートカットで、ShowForm に シートカットキー(たとえば a )を割り当てます。

 VBE画面を右上のXボタンで閉じて、シートに戻り、開発タブの 左から2番目にある「マクロ」をクリック。
 でてきたダイアログでShorFormをクリックして選択(すでに選択されていると思いますが)、オプションで
 ショートカットキーに任意のアルファベット(a とか)をいれて OK。ダイアログをXボタンで閉じます。

(β) 2015/05/23(土) 10:10


β様
 
ご丁寧にご指導頂き有難うございました。

時間が掛りましたが無事に出来ました。

初めてマクロを体験し感動です。

有難うございました。
(ya) 2015/05/23(土) 12:43


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.