• ベストアンサー

VBAで非表示にしたシートを表示させるには

別記事の続きの質問になります。 VBエディターで表示メニューより、「プロパティ ウィンドウ」を選択します。 そして、「Visible」の項目の中の「Hidden」と「VeryHidden」の違いは別記事で理解することができました。 次に「VeryHidden」で非表示にしたシートを表示させようと思い、下記を記述してみました。 Sub シート表示() Worksheets("Sheet1").Select End Sub ですが、なぜかエラーが起こってしまい表示させることができません。 どなたか、アドバイスを御願い致します。

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

  • ベストアンサー
  • tbobi
  • ベストアンサー率45% (544/1189)
回答No.1

表示されてないシートを選択してるからでは? 私も初心者ですが、選択する前に、表示しないとダメだ思いますが。 worksheets("sheet1").visible=true これで再表示できませんか?

cuty_girl
質問者

お礼

御回答ありがとうございます。 表示させることができました。 これで、疑問が解決です(^^)

関連するQ&A

  • エクセルVBA 1つのシートで出来ますか?

    説明が下手で申し訳ございませんが、宜しくお願い致します。 sheet(1)に20個のボタンがあります。 ボタンをクリックすると、別のシートが開きます。 開いたシートにも複数のボタンがあり、そのうちの任意のボタンをクリックすると、そのボタンの値がsheet(1)のそれぞれのボタンに対応したセルに入力される、という動作を実現したいと思っています。 現状、下記のようなコードで目的の動作は実現できてはいるのですが、各ボタンそれぞれにシートを作っているような状況です。(データ自体は全く同じ内容のものが、計20シート) たぶん、もの凄く頭の悪い事をやっているんだろうと思います。 sheet(1)を除いた各シートの入力データ自体は全く同じなので、シート一枚で出来るんじゃないのかなと思い、ネットや本で調べながら色々試してみたのですが、どうも上手く行きません。データが同じでも、sheet(1)のクリックしたボタンによって入力するセルを変えなければならないのが問題です。 sheet(1)のボタンとセルの関連付けや、sheet(1)のどのボタンを押したのかの判別ができればいいのかなと思って調べてみても、初心者にはよく理解できず、もう何週間もチャレンジしているのですがお手上げです。 上級者の方の知恵をお借りできれば幸いです。 Sub sheet2を開く() Worksheets(2).Select End Sub Sub 入力1() Worksheets(1).Range("F8") = "データ1" Worksheets(1).Select End Sub Sub 入力2() Worksheets(1).Range("F8") = "データ2" Worksheets(1).Select End Sub Sub 入力3() Worksheets(1).Range("F8") = "データ3" Worksheets(1).Select End Sub Sub sheet3を開く() Worksheets(3).Select End Sub Sub 入力1() Worksheets(1).Range("H8") = "データ1" Worksheets(1).Select End Sub Sub 入力2() Worksheets(1).Range("H8") = "データ2" Worksheets(1).Select End Sub Sub 入力3() Worksheets(1).Range("H8") = "データ3" Worksheets(1).Select End Sub Sub sheet4を開く() Worksheets(3).Select End Sub Sub 入力1() Worksheets(1).Range("M8") = "データ1" Worksheets(1).Select End Sub Sub 入力2() Worksheets(1).Range("M8") = "データ2" Worksheets(1).Select End Sub Sub 入力3() Worksheets(1).Range("M8") = "データ3" Worksheets(1).Select End Sub    ・    ・    ・    ・    ・

  • VBAシートが消えたままになってしまいました

    シートを表示させないようにと以下の構文を書いたのですが。 構文を消去して、エクセルを立ちあげなおしても、表示できません。 Private Sub auto_Open() Worksheets("Sheet1").Visible = xlVeryHidden End Sub よろしくお願いします。

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

    エクセルについてですが、VBエディターを開いて、「プロパティ ウィンドウ」を開きます。 すると、下の方に「Visible」という項目があるのですが、「Hidden」と「VeryHidden」と2つの選択肢があります。 どのように違うのでしょうか? いろいろと調べてみましたが、そこまで詳しく記載されていることがないので、教えて頂けると助かります。 よろしく御願いします。

  • ExcelVBAで行の非表示、表示をコード化したい

    現在、Excel2003をつかっており、VBAを用いて sheet1シートの2行目、4行目、10行目を非表示にするマクロ(HIDDEN)と すべての行を表示にするマクロ(APPEAR)を使っています。 Sub HIDDEN() ThisWorkbook.Worksheets("sheet1").Rows("2").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("4").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("10").HIDDEN = True End Sub Sub APPEAR() ThisWorkbook.Worksheets("sheet1").Rows.HIDDEN = False End Sub いま、2つのマクロを併合し 「Sheet1の2行目、4行目、10行目のいずれかが非表示であれば、すべての行を表示 そうでなければ、2行目、4行目、10行目のすべてを非表示にしたい」 と考えています。 ここで私が困っているのは、2行目、4行目、10行目のいずれかが非表示であれば というのをどうVBAで記述するのかです。

  • ExcelVBAで行の非表示、表示をコード化

    現在、Excel2003をつかっており、VBAを用いて sheet1シートの2行目、4行目、10行目を非表示にするマクロ(HIDDEN)と すべての行を表示にするマクロ(APPEAR)を使っています。 Sub HIDDEN() ThisWorkbook.Worksheets("sheet1").Rows("2").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("4").HIDDEN = True ThisWorkbook.Worksheets("sheet1").Rows("10").HIDDEN = True End Sub Sub APPEAR() ThisWorkbook.Worksheets("sheet1").Rows.HIDDEN = False End Sub いま、2つのマクロを併合し 「Sheet1の2行目、4行目、10行目のいずれかが非表示であれば、すべての行を表示 そうでなければ、2行目、4行目、10行目のすべてを非表示にしたい」 と考えています。 ここで私が困っているのは、2行目、4行目、10行目のいずれかが非表示であれば というのをどうVBAで記述するのかです。

  • 【VBA】 超初心者です 複数のシートに転記したい

    Sub べんきょう() Worksheets(Array(1, 3)).Select Range("A1").value = 20 End Sub もしくは Sub べんきょう() Worksheets("sheet1").Select Worksheets("sheet3").Select False Range("A1").value = 20 End Sub でやってもsheet1にしか転記されないんです!! ご指導よろしくお願いします!

  • 指定したシートの行間の非表示

    通常のシートの行間の非表示設定では、ユーザーが再表示ができるので、指定した行の非表示をVBAのコードで記述したいのですが、うまくいきません。 以下のコードですと Sub 計算表の部分非表示() '計算表の部分非表示 Sheets("計算表").Select Worksheets("sheet1").Rows("5:22").Visible = xlVeryHidden End Sub インデックスエラー 有効範囲にありません とかエラーが出ます。 他に見せなくする方法はありますか? 図の固定をしてとかで隠す方法とか? でも、マクロを記述しているのでシート保護ではうまくいかないようです。 よい解決方法を教えて下さい。

  • 複数シートの選択

    エクセルVBAで複数シートの選択をしたいのです。 シート名やシートの位置が変更される可能性があるので オブジェクトで指定したいのですが 記述方法が分かりません。 ##シートの位置 Sub mac1() Worksheets(Array(2,5)).Select End Sub ##シート名 Sub mac2() Worksheets(Array("aaa","あああ")).Select End Sub

  • エクセルVBAについて

    Sub a() Sheets("Sheet1").Select End Sub Sub b() Worksheets("Sheet1").Select End Sub どちらコードもSheet1を選択しますが 「こちらを使うべき!」ってありますか? 独学のため、SheetsとWorksheetsの違いがわかりません。 ご教授よろしくお願いします。

  • Excel VBA シートの移動について。

    シートの構成は順番に『1』~『10』『メイン』となっているとします。 『メイン』以外は非表示にしています。 しかしメインシートで、番号を指定してマクロを実行すると新しいウインドウを開き指定した番号のシートが表示されるようになっています。 例えばメインシートで『1』を指定して実行すると、ウインドウが2つになり、『1』『メイン』のシートが表示されている状態になります。 問題はここからで、1~10のシートにはマクロでシートセレクトできるようにしているのですが、下記載のマクロを実行すると『メイン』を表示しているウインドウも一緒に表示が変ってしまうことです。 Sub 2に移動() Worksheets("2").Visible = True   '非表示のシートを表示 ActiveSheet.Visible = False      'シートを非表示にする。 Sheets("2").Select End Sub 『1』『メイン』が表示されているときに、『1』で上のマクロを実行すると、『メイン』が表示されているウインドウもシート『2』に移動してしまうことなんです。 これをどうにかして、その実行したウインドウだけ移動するようにしたいのですが、何か方法はないでしょうか? 一応シートの1~10を非表示にせず、表示したままならこの現象は起こらないのですが、どうにかして使用していないシートを非表示にした状態を保ったままやりたいのです。

専門家に質問してみよう