[[20140726101002]] 『条件によるシート移動』(CLAN) ページの最後に飛ぶ

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

 

『条件によるシート移動』(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


Mook さん

ありがとうございます。
情けない話しなのですが、実は検索する言葉は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.