• ベストアンサー

【EXCEL VBA】あるシートの表示・非表示の判断

WindowsXP、Excel2003を使用しています。 ブックに、 Sheet_A・Sheet_B・Sheet_Cと3枚のシートがあります。 If文にて、 Sheet_Aが表示されているならば、非表示にする Shees_Aが非表示ならば、表示させる と書きたいのですが、コーディングを教えていただけますでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

こういう意味ですか? Sub Macro1()  If Worksheets("Sheet_A").Visible Then    Worksheets("Sheet_A").Visible = False  Else    Worksheets("Sheet_A").Visible = True  End If End Sub

motsu2006
質問者

お礼

まさにその通りです。 助かりました、ありがとうございました!

その他の回答 (1)

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

良く見る手法は Sub test01() Worksheets("sheet1").Visible = Not (Worksheets("sheet1").Visible) End Sub 実行の都度TRUEとFALSEが逆転する。

motsu2006
質問者

お礼

なるほど、こういう使い方があるんですね、、、。 ありがとうございました!

関連するQ&A

  • 【Excel】シートの表示について

    Excel2003を使用しています。 同じブック内の2枚のシートを左右に並べて画面に表示させることは可能ですか? 別のブックだったら、ウィンドウ→整列でできるのですが、それと同じような感じで、並べて表示させることができるのであれば、その方法を教えていただきたいです。 よろしくお願いします。

  • 【Excel VBA】シート表示&ボタン操作

    何度もすみません。 シート表示のコードの続きです。 また、別記事で質問していた件(件名の後者)も合わせて コードに組み込んでいます。 Sheets(actsht).Tab.ColorIndex = 2 '当月分のワークシート見出しの色を白に設定する Sheets(actsht).Range("B3").Value = Sheets("Sheet2").Range("A1").Value 'ワークシート(Sheet2)のA1セルの値を当月分のワークシートのB3セルに代入 Sheets(actsht).Range("B4").Value = Sheets("Sheet2").Range("A2").Value 'ワークシート(Sheet2)のA2セルの値を当月分のワークシートのB4セルに代入 ActiveSheet.Range("A2").Select '翌月分のワークシートのA2セルを選択する Sheets("元データ").Visible = True 'ワークシート(元データ)を表示する Call clear_Click 'フォームボタン(clear)をクリックする Sheets("元データ").Visible = False 'ワークシート(元データ)を非表示にする Exit For 'For文を抜ける ElseIf Anser = vbNo Then 'MsgBoxで"vbNo"を選択した場合 Exit For 'For文を抜ける End If 'If文を終了する End If 'If文を終了する Next 'iの値を1増分する If Flag = O Then 'Flagが0であった場合 MsgBox ("新しいワークシートを作成出来ません。") 'MsgBoxを表示する End If 'If文を終了する End Sub

  • VBA(Excel):他のブックからシートごと取込みたい

    他のブックからシートを取込む(シート名を変更して)VBAがわからないのですが、どなたか詳しい方がいましたら、ご教授下さいませ。 以下を例として、ご回答いただけると幸いです。 よろしくお願いします。 ---------------------------------- 次の3つのブックが存在するとします。 a.xls b.xls c.xls a.xlsにはシートが1つだけあり、シート名は"sheet1"です。 b.xlsにはシートが1つだけあり、シート名は"sheet1"です。 c.xlsにはシートが3つあり、シート名は"sheet1"、"sheet2"、"sheet3"です。 a.xlsにVBAマクロを作り、a.xls上で実行させて、 a.xlsの"sheet1"は残したまま、 b.xlsの"sheet1"のシート名を"sheet1-b"に変更して、 a.xlsのシートとして取込み、 同様に今度は、 a.xlsの"sheet1"、"sheet1-b"は残したまま、 c.xlsの"sheet1"のシート名を"sheet1-c"に変更し、 c.xlsの"sheet2"のシート名を"sheet2-c"に変更し、 c.xlsの"sheet3"のシート名を"sheet3-c"に変更し、 a.xlsのシートとして取込み、 最終的に、a.xlsには、 "sheet1"、"sheet1-b"、"sheet1-c"、"sheet2-c"、"sheet3-c" の、5つのシートが存在するようにしたいのです。 (各シート上のデータは、a.xlsの各シートとしてすべて移行されている) ----------------------------------

  • Excelの特定シートを非表示にしたい

    WinXPでExcel2002を使用しています。 今、シートA~シートC迄、3つある中で、シートBのみを非表示にする方法を教えてください。

  • VBA_イコールではない時に○○と表示する方法

    VBA初心者です。A,B,Cのブック間のシート1のセルA1がそれぞれイコールでない時に「AとBはイコールではありません」、「BとCはイコールではありません」、「AとCはイコールではりません」それ以外のときは「すべてイコールです」と表示したいのですがIFを試してみたのですがうまく作成できません。どなたか教えてくださいませ。

  • EXCEL2010 VBA 繰り返し処理

    EXCEL2010でVBAを使用してシートを作成しています。 シート1のA1にヘッダ数・A2に項目数を入力します。 VBAのコードを実行するとA1のヘッダ数が1ならシート2のA列には何も表示せず A2の項目数の分だけB列の14行目から数字を入力していきます。 (例)シート1   A1:1   A2:20  の場合はシート2のB14から20行下まで1~20の値を自動入力させる。   シート2   B14:1   B15:2     ↓   B33:20 シート1のA1が2以上の場合はシート2のA14から、シート1のA2の数値分アルファベットを表示させていきます。 (例)シート1   A1:2   A2:10  の場合シート2のA14:A23に「A」を表示させます。(シート1のA2の数分この場合は10行ずつ)               A24:A33に「B」を表示させます。               B列にはアルファベットごとに数字を1~表示させます。   B14:B23 1~10   B24:B33  1~10 シート1のA1が2なのでA・Bを表示 A1が3だとA・B・C A1が10だとA・B・C・D・E・F・G・H・I・JがA2の数字で区切りながら表示される。 このようなコードを書きたいのですが、どなたかご教示お願いします。

  • シートの非表示について

    マクロを始めたばかりで解読はできるのですが、まだまだ自分で文書を作ることが出来ません。どなたか教えて下さい。 (1)まず、A,B,C,Dのシートを作ります Aシート = 入力シート Bシート = 入力シートで入力したデーターを表にして表示されるシート Cシート = 入力シートのセルA1~A15までのデーターがCシートのA1~A15に表示されるシート Dシート = 入力シートのセA16~A30までのデーターがDシートのA1~A15に表示されるシート (2)マクロボタン『非表示』を押す (3)シートが下記のように非表示される Aシート = 表示 Bシート = 表示 Cシート = シートのセルA1に入力があれば表示、無ければ非表示 Dシート = シートのセルA1に入力があれば表示、無ければ非表示 (If Sheets("Cシート").Range("A1").Value <> "" Then)みたいな というマクロを作りたいのですが。

  • Excel2003 マクロでブックを開かずにコピペ

    Excel2003でC:\にあるブックBを開かずに、 開いているブックAの指定したセルをコピーしたいのですがうまくいきません。 具体的なイメージは 開いているコピー先のブックA:いろは.xls コピー先のシート:Sheet1 コピー元のブックB:らりるれろ.xls コピー元のシート:らりるれろ (ブックBの名前(らりるれろ.xls)とシート名が同じなのはシステム上の仕様です。) ブックBのC6をブックAのC5に、 ブックBのI6をブックAのC6に、 ブックBのK6をブックAのC7に、 ブックBのH6をブックAのC8にコピーしたいと考えています。 宜しくお願いします!

  • Excel複数シートにあるデータを1枚にまとめる

    Excelブックにある50枚ほどのシートのデータを一枚のシートにまとめたいです。 現在シート1には機材Aを使用している人の名前、シート2には機材Bを使用している人の名前、シート3には機材Cを・・・ というような感じで50枚ほどあります。 これを一枚にまとめます。 列Aに名前、列Bからを機材名としたいんです。 たとえば山田さんが機材Aと機材Cを使用していたとしたら、「山田 ○  ○」という感じで、機材A、Cの列に○が付くようにしたいです。 各シートに記載されている名前は、重複しています。(佐藤さんはシート1にも2にも40にも名前があるというようなかんじです) 列の中に何回も同じ名前が出ることを避けたいです。 出来る限り短時間で終わらせたいのですが、なんせExcelの知識が乏しく困っています。 なるべく早くするよう言われていますので、初心者でも出来るような方法をご存じでしたら教えてください。 ちなみにしようするのはExcel2010です。 大雑把な質問で申し訳ございません、よろしくお願いいたします。

  • excel:あるsheet Bからその中の情報で別のsheetを表示する。

    (問題概要)あるsheet Bからその中の情報で別のsheetを表示する。 Mydocの中のAというフォルダに、ExcelのBOOKが複数個(A1~A5とB)あり、また各bookには複数個のシートが入っています。 ブックBの中に表形式で   B.xlsのsheet1   (表) 各book名 各sheet名 A1.xls     A1-1sheet  A1.xls A1-2sheet A1.xls A1-3sheet A2.xls A2-1sheet ~ A5.xls   A5-1sheet A5.xls   A5-2sheet などと入っています。 やりたいことは、この表のsheetの所などをクリックしたときに(方法はプログラムを作り安い方法でよいのですが)、当該シートを開き表示するようにしたいが、マクロがいいですか。その場合マクロはどんなふうに書けばいいでしょうか。 またBの表を作るため、BOOK内のsheet名の情報を採集する(コピー)方法はありますか

専門家に質問してみよう