[[20210907200959]] 『条件にあったシートを複数選択』(おやこどん) ページの最後に飛ぶ

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

 

『条件にあったシートを複数選択』(おやこどん)

こんばんは。VBAの知識が足らず、わたし一人ではらちがあかないため、有識者の方のお知恵をお借りできたらと思います…

条件(何かしら数字が入っていること)を満たしていれば、満たしているシートを全て選択、というマクロなのですが…
A.B.C.D… とシートが複数あるとして、数字があるシートのみを判別して、シートを複数選択したいのですが…
実際は10シート以上シートがある中で、条件を満たすシートの組み合わせは膨大になるため場合分けは現実的ではないように思います…

変数等を使って上手いことできるテクニックがあれば教えていただきたいです。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


複数選択するとは、どういう意味でしょうか。
また、選択したとして、その後。何をしたいのでしょうか。

(マナ) 2021/09/07(火) 21:17


お返事ありがとうございます!
分かりにくくて申し訳ございません。複数選択とは、操作的にはキーボードでコントロールを押しながらマウスでシートを複数選択した状態です。(伝わりますでしょうか…😢)
そのあとは選択したものののみ印刷したいです。
言葉足らずな点がございましたらご指摘ください。
(おやこどん) 2021/09/07(火) 21:33

 >条件(何かしら数字が入っていること)を満たしていれば、

 何か検索範囲が漠然としているんですが、
 シート上に一つでも数字(数値?)が入っていたら、と言う条件なんですか?

 普通、エクセルのどのシートにも1個ぐらいは入っているもんだと思うのですが、
 何か特定の範囲に限定した話じゃないのですか?

(半平太) 2021/09/07(火) 22:55


おっしゃる通りです。特定のセルに何かしら数字(<>0)入っていた場合、それらのシートを抽出したいのです。
A.B.C,D…どのシートも判別したいセルの位置は同じです!(全てのシートのA1セル、といった感じです)( ; ; )
(おやこどん) 2021/09/07(火) 23:17

 >特定のセルに何かしら数字(<>0)入っていた場合、
 >・・・位置は同じです!(全てのシートのA1セル

 上記の条件でいいとした場合

 Sub selectMultSheets()
     Dim firstCounter As Boolean
     Dim Ws As Worksheet

     firstCounter = True

     For Each Ws In Worksheets
         If IsNumeric(Ws.Range("A1")) And Ws.Range("A1") <> 0 Then
             Ws.Select firstCounter 'Trueは単純選択、Falseは追加選択
             firstCounter = False
         End If
     Next Ws

     If firstCounter Then
         MsgBox "該当なし"
     End If
 End Sub

(半平太) 2021/09/07(火) 23:25


コメント返信:

[ 一覧(最新更新順) ]


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