[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件によるシート移動』(CLAN)
おはようございます。
よろしくお願いします。
シートが15シートほどあります。
1シートに検索する言葉があれば次のシートに移動し
検索する言葉なければ、そのシートを非表示にして、
次のシートに移り、同じことをして、最後のシートまでその処理を行いたいと
おもっております。
1シートの検索言葉がなければ→シート非表示はできたのですが、
シートの移動、すべてのシートに処理をする所がわかりません。
シート名は毎回違うのでそこも苦労しています。
お手数ですがおしえていただけませんでしょうか
< 使用 Excel:Excel2010、使用 OS:unknown >
やりたいのは関数などエクセルの一般機能でしょうか? それともVBAでしょうか? (カリーニン) 2014/07/26(土) 10:43
VBAで実現を考えております。
(CLAN) 2014/07/26(土) 11:10
http://www.max.hi-ho.ne.jp/happy/YNxv9c48.html
(マナ) 2014/07/26(土) 11:33
こんなことでしょうか。 1シートも一致するものが無い場合エラーになりますので、回避処理は別途追加ください。
Sub Sample() sWord = "検索する言葉" For Each ws In Worksheets ws.Visible = IIf(Application.CountIf(ws.Cells, sWord) > 0, xlSheetVisible, xlSheetHidden) Next End Sub
(Mook) 2014/07/26(土) 12:24
ありがとうございます。
情けない話しなのですが、実は検索する言葉は4つありまして、どれもなかったら非表示にしたいのです。
お手数ですが、再度教えていただけましたら幸いです。
(CLAN) 2014/07/26(土) 16:54
横から失礼します。
>実は検索する言葉は4つありまして
↓をキーワード数分繰り返すだけです。
>Application.CountIf(ws.Cells, sWord)
Sub Sample2() Dim sWordArray As Variant Dim sWord As Variant Dim ws As Worksheet Dim flg As Boolean sWordArray = Array("検索する言葉1", "検索する言葉2", "検索する言葉3", "検索する言葉4") For Each ws In Worksheets flg = False For Each sWord In sWordArray If Application.CountIf(ws.Cells, sWord) > 0 Then flg = True Exit For End If Next ws.Visible = IIf(flg = True, xlSheetVisible, xlSheetHidden) Next End Sub (カリーニン) 2014/07/26(土) 20:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.