• ベストアンサー

条件に見合うシートを複数選択するには?

こんばんわ。 以下のような条件で複数シートを選択し、まとめて印刷させようとしているのですが、どうも論理的に考えられず、根をあげております。 シートは45枚そのうち左から42枚のみ下記条件に合うかどうか判別 条件:セルA2に”0”またはエラーが入っていないシートをまとめて選択する 今のところ、配列を使い42枚のシートを選択する所までは、ゴリゴリとできたのですが、条件をクリアするシートのみを配列に入れるというところで躓いています。 どなたか、お知恵を拝借ください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

選択すれば良いだけなら、こんな感じでどうでしょうか? Sub test() Dim i As Integer, cnt As Integer i = 1: cnt = 0 For i = 1 To Worksheets.Count - 3  If Not IsError(Worksheets(i).Range("A2").Value) Then   If Worksheets(i).Range("A2").Value <> 0 Then    If cnt = 0 Then      Worksheets(i).Select    Else      Worksheets(i).Select False    End If    cnt = cnt + 1   End If  End If Next End Sub

kenton
質問者

お礼

お礼が遅くなりすいません。 回答ありがとうございました。 上記のプログラムで実現されました。 記述されたプログラムを見ると、 「フムフム・・・こういう風に書けば良いのか・・・」と 思うのですが、周りに相談できる相手もおらず、一人で考えているとなかなかうまく書ききれずに困っていました。 こういうのって、思考力とかの差なんですかね(^^;) また、何かで質問するかもしれませんが、そのときにはまたよろしくお願いします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

印刷しないシートが少なければ、 Sub test05() Dim sh As Worksheet For Each sh In Worksheets MsgBox sh.Name Next End Sub を参考に、印刷しないシート方を聞くいてスキップする。 Sub test05() Dim sh As Worksheet For Each sh In Worksheets if sh.Name=(印刷しないシート名)OR sh.name=・・・then Else If sh.cells(2,"A")=0 and IsError(略) then Range("... ").Printout End If End If Next End Sub

kenton
質問者

お礼

遅くなりすいません。 回答ありがとうございました。 参考になりました。 ただ、ちょっと理解できなかったのですが、 最初のIF文の条件で「sh.name=・・・」とあり、 ここには何が入るのでしょう? この条件が真の時は、For文を抜けてしまうような気もするのですが・・・ 実際に動かしてみる余裕が今現在ありませんので、 お礼という形のみで終了させていただきます。 また、何かの際に質問するかもしれませんが、そのときにはまたよろしくお願いします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 複数シートの余白設定について

    EXCEL2003を利用し、複数シートのブックでマニュアルを作成しています。方眼紙のようにセルを設定し、セルの大きさも全シートそろえました。また、各シートの余白・ヘッダー・フッターを同一にし、縮尺も100%で設定しているにも関わらず、印刷プレビューしてみたところ、各シートによって1ページあたりに印刷される範囲が異なってしまいます。改ページ設定もクリアし、印刷範囲設定もクリアしましたが、改善されません。(例:AのシートはAFのセルまで1ページに印刷されるところ、Bのソートでは、AAのセルまでしか1ページに印刷されず、2ページに分かれる)何か解決方法をご存知でしたら教えていただければ有難いです。

  • マクロで条件一致のシート選択

    エクセルで複数のシート(50頁程)の決まったセル(A5)に 関数式の結果、条件に一致すれば「○」、不一致なら「×」となるようにしています。 これを「○」が表示されるシートのみ全て印刷するマクロが作成したいのですが、 どのような命令文を組めばよいのか分かりません。 本を購入して勉強していますが、浅い知識では初歩的なことしか出来ません。 ぜひ、御教授願います。

  • エクセル シート複数選択して編集

    エクセル2003です。 シートを複数選択して選択したシート全部を同じ編集にしたいの ですが、今まではできていたのが今回出来ないものがあります。 例えば、結合の解除は出来ますが、セル幅が狭くてセルの端を ダブルクリックして表示出来る幅にする操作は上手くいきません。 解決方法を教えてください。

  • 複数のシートを1つのシートにコピーしたい

    VBA初心者です。よろしくお願いします。 【状況】 1つのワークブックの中に『まとめ』という名前のシート、それ以外にコピーしたいシートが複数あります。 コピーしたくないシートもあります。 まとめを一旦クリアし、コピーしたいシートだけをコピーして貼り付けたいです。 まとめシートもコピーしたいシートも、データの入っているセルは"B5"から始まり、M列までの任意の行までデータが入っています。(B5:M?) 【やりたいこと】 コピーしたいシートのみ、データの入っている範囲をコピーして、まとめシートに貼り付けたい。 最終行を取得するVBAはいろいろなサイトを参考に書くことができたのですが、そこから"B5"までの範囲を指定してコピーをするという方法がいまいち分かりません。 参考にしたサイトはA1~特定の範囲のみ選択というものばかりで・・・。 稚拙ながら途中まで書いたコードです。 (1)Sub B5から最終セルの選択とコピー() (2)Range("B65536").End(xlUp).Offset(0, 11).Select (3)Range("B5", ※).Copy (4)End Sub ※に(2)で取得した最終セルを代入したいのですが方法が分からず・・・。 ここでまず躓いてしまっています。 どうかお知恵を貸して下さい。よろしくお願いします。

  • EXCEL VBA 複数シート選択の方法(VBA)

    エクセルのシート選択方法について教えてください。 選択対象シート数は4つ(シート名は、「りんご」「みかん」「ばなな」「すいか」とします) シート名「表紙」のセルは A1:りんご A2:みかん A3:ばなな A4:すいか となっており、使用者はB1~B4セルに「○」「×」を入力し、 「○」となっているシートのみ選択出来るようにしたい。 シート名が「sheet1~4」のように連続するシート名である場合や、 ひとつの条件に当てはまるシートを複数選択する方法は 他サイトでも見つけることが出来たのですが、このような場合は どのようにすれば良いのでしょうか?

  • EXCEL の複数シートを選択するVBA

    お世話になります。 複数のシートがあるEXCELファイルで、特定のセル(A1)に「オリンピック」と入力れているワークシートをすべて選択するマクロを組みたいのです。ご教示よろしくお願い致します。

  • Excelで条件を指定して複数のセルを選択する方法

    Excelで、条件を指定して、複数のセルを選択する方法をご教授ください。 例えば、シート内に0~100まで様々な数値(下1桁は0か5)が入力されたセルが並んでいたとして、そのうちの60~90を選択したい場合、どのような方法があるのでしょうか? データの抽出などではなく、選択をして書式等の変更を加えたい意図です。 検索では1つの数値しか入力することができず、60、65、70…というように数回検索しなければならず、これを一度に済ませたいです。 そのような方法は無く、出来ないという結論でも構いません。 よろしくお願い致します。

  • シートを開いたとき、ソノシートに応じたセル選択

    エクセル2003です。複数のシートがあるファイルです。それぞれのシートを開いたとき、自動的にシートに応じたセルを選択させる方法を教えてください。ウインドウ枠が固定されているシートを選択したとき、セルを間違えて記入する例が多いので、誤りを防ぎたいのです。

  • 【EXCEL】複数シートの条件付き書式一括クリア

    EXCELの条件付き書式を複数シートにコピーしたところ、 コピー先のセルに元々適用されていた条件付き書式ルールに上書きではなく、 コピーしたルールが追加された形になってしまいました。 例)  ※コピー先に元々設定されていたルール   (1)上位1位のセルをピンクで塗りつぶし+赤太字にする   (2)上位3位のセルを水色で塗りつぶし+青太字にする   ↓  ※新規条件付き書式コピー後   (1)上位1位のセルを黄色で塗りつぶし(コピーしたルール)   (2)上位5位の赤太字にする(コピーしたルール)   (3)上位1位のセルをピンクで塗りつぶし+赤太字にする(元々設定されていたルール)   (4)上位3位のセルを水色で塗りつぶし+青太字にする(元々設定されていたルール) のような感じです。 必要なのは新規でコピーしたルールのみなのですが、 複数シートの条件付き書式を一括でクリアできる方法はないでしょうか? ご教授よろしくお願いします。

  • エクセルで複数のシートの1枚目だけを印刷するには

    あるエクセルのファイルに50ほどのシートがあり、 各シートには2枚の印刷範囲があります。 複数のシートの1枚目だけを印刷したいのですが、 複数のシートを選択して、印刷メニューの印刷範囲のページ指定で 1枚目だけを指定すると、先頭のシートの1枚目しか印刷されません。 何か方法はありますでしょうか?? どなたかわかる方がおりましたら教えてください。 よろしくお願いします。

専門家に質問してみよう