[[20050426144657]] 『多くのシートから検索文字を見つけたい』(ooshima-suisan)  ページの最後に飛ぶ

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

 

『多くのシートから検索文字を見つけたい』(ooshima-suisan)

[多くのシートの中から検索文字を見つけたい]

[何十枚かのワ−クシートの中から、検索文字を見つけたい]

エクセルのワ−クシートが何十枚とある時、ワークシートの全てを選択し、文字の編集→検索とすると、ワークシート画面上に検索文字が出ても、ワークシ−トのタブが検索文字とズレていて、どのワークシートにその検索文字があるのか判らない。

Excel2000、Windows2000


 えぇ〜〜っと、、一枚一枚検索するのはだめなんですか?
それとか、ワークシートを順番に検索していくのをマクロに記録するとかぁ。。
ちょっと修正が必要かとは思いますが、どうでしょうか?
えぇ〜〜っと試しに今やってみたのですが
検索文字と一緒にシートのタブも変わる様ですが??

Win98SE Excel2000です。
(SoulMan)


 >検索文字と一緒にシートのタブも変わる様ですが??
 シートがたくさんあるとわからないんですよ。表示がずれて
 いけば見えるのだけれど。私も常々思っており、この問題の
 回答に注目していました。自分のシートではレイアウト上
 出来ないのですが、シートの見える位置に下記数式を入力して
 シート名を表示させておく手はありますね。
(純丸)(o^-')b
 =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)


 たくさんのシートというのが何枚あるのかわかりませんが
純丸さんの方法がいいかもしれませんね。
(SoulMan)


 >あなたが判断することではありません。
 判断しているつもりはありません。私自身の意見を述べているのです。
シートの数がいくつあるのかわかりませんが、20枚も30枚もあっても
表示されるのでしょうか??
(SoulMan)


 横から失礼!

 Sheet名の最大は、31 だったんですね〜
 純丸さんの式の最後の
 >・・・))+1,31)
         ~~~~
 が、今やっとわかりました〜♪
 勉強になりました。
 (キリキ)(〃⌒o⌒)b


 >闇雲に探すよりは早いと思いますが???
 そうでしょうか?
 それこそあなたが決めることじゃないんじゃないんですか???
(SoulMan)


 え〜と、、、
 スレ主さん、帰ってきませんね・・・

 川野鮎太郎さん、SoulManさん、
 σ(^o^;)が言うことではないかもしれませんが
 お二人は、ご自身の経験・推測上からスレ主さんの質問に対し
 最善の対処・案を出しているのに過ぎないのでは?
 だとしたら、スレ主さんに多くの提案をするのは賛成です。

 なにを言ってるかわからなくなってきた・・・
 とにかく、スレ主さんに出てきた案を色々試して頂いて
 報告を待ちましょーよ♪
 違ったら、またカキコしましょ〜☆

 (キリキ)(〃⌒o⌒)b


 >常識に近い一般論です。
 これはまた随分なご意見ですねぇ??
 なにが常識で何が常識じゃないんですか?
 自分の意見だけが正しいというその傲慢な姿勢を改められたらどうですか?
(SoulMan)


 私の提案することがお気に召さないようなので、自主削除します。

 (川野鮎太郎)


 >私の提案することがお気に召さないようなので、自主削除します。
 これは誰に対していっておられるのかは存じ上げませんが、
 少なくとも私はあなたのことなどなんとも思っていませんよ。
 もしも、私に対してのご意見でしたらどの様に私が感じているかも
 わからないのに推測でものを言うのは控えていただきたいものです。 
 知らない人が読んだら誤解されます。
 そもそも、私が
 私の回答よりも
 >たくさんのシートというのが何枚あるのかわかりませんが
 >純丸さんの方法がいいかもしれませんね。
 といったことにあなたが過剰に反応したのではないのですか?
 >あなたが判断することではありません。
 と、、 
 何度もいいますが、私はあなたのことなどなんとも思っていませんよ。
 さんざん言いがかりをつけて都合が悪くなったら自主削除ですか? 
 それこそ、私には関係ありませんが、、 
 授業中のみなさん。
 無駄レス大変失礼しました。m(__)m
(SoulMan)

皆さま、多くの回答をありがとうございました。GW前で込んでいて、チェックする間がありませんでした。m(_ _)m
さて、回答いただきましたが、ます説明しなければいけないのが、シートの枚数です。それは100枚ほどもあり、且つ他人の作ったファイルなので、なんとも手がかかり、扱いにくいのです。結果、自動的にタブはやはり動かないので、100枚のシートの1枚1枚を三角マークでズラして探す手間しかないかなーと...。とても探す機になれません...。何か他に良い方法を知っておられる方、お待ちしてます。
皆様に不快な思いをさせてしまって、申し訳なく思っています。失礼いたしました。


 下記マクロをお試し下さい。私の方の検証ではうまく行きました。
 パソコンのスペックなどにより、動きが悪くなるようでしたら
 解除して下さい。
(純丸)(o^-')b

 該当するブックのThisWorkbookモジュールにコピペして下さい。

 Private Sub Workbook_SheetActivate(ByVal Sh As Object)

  Dim i As Integer
  i = ActiveSheet.Index - Worksheets.Count
  ActiveWindow.ScrollWorkbookTabs Position:=xlLast
  ActiveWindow.ScrollWorkbookTabs Sheets:=i + 1

 End Sub

 検索を実行するたびに表示されるのが難点ですが、、、
現状より少しでも改善できればという程度です。
ちょっとややこしいですがよかったら一度試してみてください。
Bookを一度保存して再度開いてから有効になります。
どうでしょうか?
ThisWorkBookモジュールに
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    開放
End Sub
Private Sub Workbook_Open()
    てすと
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If MyFlag Then
        MsgBox ActiveSheet.Name & ActiveCell.Address
    MyFlag = False
    End If
End Sub
標準モジュールに
Option Explicit
Public MyFlag As Boolean
Dim MyClass As New Class1
Sub てすと()
    Set MyClass.MyFind = _
    Application.CommandBars("Worksheet Menu Bar").Controls("編集(&E)").Controls("検索(&F)...")
End Sub
Sub 開放()
    Set MyClass.MyFind = Nothing
End Sub
クラスモジュールに
Option Explicit
Public WithEvents MyFind As CommandBarButton
Private Sub MyFind_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    'MyFlag = True
    If ActiveWindow.SelectedSheets.Count > 1 Then MyFlag = True
End Sub
編集→検索で実行した時のみ有効です。
http://ryusendo.no-ip.com/cgi-bin/upload/src/up0300.xls
(SoulMan)

 ほんの少しだけ改良です。
 >検索を実行するたびに表示されるのが難点ですが
↑これはクラスモジュールの↓を
MyFlag = True
↓これに
If ActiveWindow.SelectedSheets.Count > 1 Then MyFlag = True
とすることで複数のシートを選択した状態で尚且つ
編集→検索と実行した時のみ有効とする事ができます。
検索を実行して検索のダイアログを閉じるとシート名と番地が表示されます。
後、MyFlag = FalseもIF文の中に入れた方がいいです。
上のコードは修正しています。
If MyFlag Then
    MsgBox ActiveSheet.Name & ActiveCell.Address
    MyFlag = False
End If
少しでも改善されればいいのですが、どうでしょうか?
(SoulMan)

コメント返信:

[ 一覧(最新更新順) ]


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