• ベストアンサー

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

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

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

[xlVeryHidden]にした場合は、VBAで表示させるかVBEからシートのプロパティを変更しないと表示されません。 Worksheets("Sheet1").Visible = True -----Excel ヘルプ--------- Visible プロパティ True の場合、指定されたオブジェクトを表示します。ワークシートの場合、このプロパティに定数 xlVeryHidden を設定できます。xlVeryHidden を設定するとオブジェクトは非表示になります。このプロパティに再び True を設定しない限り、オブジェクトを表示しません。また、ユーザー側でオブジェクトを表示することはできません。値の取得および設定が可能です。ブール型 (Boolean) または 長整数型 (Long) の値を使用します。

suisouoku
質問者

お礼

早々なご回答本当に助かりました。 詳細はこれから勉強していきたいと思います。

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

関連するQ&A

  • エクセルのマクロをしようして、特定のシートを表示させないようにしました

    エクセルのマクロをしようして、特定のシートを表示させないようにしました。下記の構文です。 Private Sub auto_Open() Worksheets("Sheet1").Visible = xlVeryHidden End Sub これで、Sheet1は表示されなくなりました。次に、Sheet1の内容を変更しようとし、上記の構文を削除しましたが、Sheet1のシートが表示されません。VisualBasicEditorを開くと、Sheet1のシートは表示されていますが、BOOK自体にSheet1がなくなってしまいました。 非常に困っています。助けてください。もう、Sheet1はなくなっているのでしょうか?

  • 以下のコードですと、アクティブシート以外全て隠してしまいますが、

    以下のコードですと、アクティブシート以外全て隠してしまいますが、 選択(複数)されているシート以外を非表示にするにはどのように書き換えたら良いでしょうか。 Sub Test() Dim mstr as String Dim i as Integer mstr = ActiveSheet.Name For i = 1 To Worksheets.Count If Worksheets(i).Visible = True And Worksheets(i).Name <> str(0) Then Worksheets(i).Visible = xlVeryHidden End If Next i End Sub よろしくお願いします。

  • エクセルVBAでコピーして 手動で貼り付け 

    こん○○は 初心者であちこちからコードをコピペしてなんとかつなぎ合わせているレベルです。 エクセル2002 OS XP Sub copy() i = Worksheets(3).Range("I2")      'I2に適当な数字が入ってる i = i + 1 左上 = "G1" '選択する範囲の左上セル 右下 = "H" & i '   〃   右下セル 範囲 = 左上 & ":" & 右下 Worksheets(3).Range(範囲).copy_ Worksheets(3).Range("n1").PasteSpecial Paste:=xlPasteValues i = (i + 1) / 2 左上2 = "N1" 右下2 = "O" & i 範囲2 = 左上2 & ":" & 右下2 Worksheets(3).Range(範囲2).copy End Sub というコードでコピーした状態にした後手動で他のエクセルやテキストに貼り付けようとしています。ただしシート3は Private Sub auto_Open() ActiveWorkbook.Unprotect Worksheets("Sheet1").Visible = False Worksheets("Sheet3").Visible = False ActiveWorkbook.Protect End Sub でみえなくしています。 こうすると他のエクセルに貼り付けると 貼り付け先のシートが消えてしまいます。消えないようにしたいのですが。 なんとかお知恵を拝借できませんでしょうか?よろしくお願いします。

  • エクセル:チェックボックスで他シート複数図形を操作

    現在、エクセルにて sheet1に帳簿内容入力画面 sheet2に入力画面の項目を反映した印刷用帳簿 というものを作成しています。 その中で、sheet1にチェックボックスを1つ設置し、チェックONでsheet2任意の場所に 4個のオートシェイプの楕円を一括表示、チェックOFFで4つの楕円を一括消去、 とさせたいのですが、うまくいきません。 sheet1上にチェックボックス1個・楕円を1個設置し、 ------------------------------------------- Sub test01() With ActiveSheet If .CheckBoxes(Application.Caller).Value = xlOn Then worksheets("sheet2").Shapes("楕円1").Visible = True Else worksheets("sheet2").worksheets.Shapes("楕円1").Visible = False End If End With End Sub ------------------------------------------- とイベント設定をしたところ、チェックON/OFFで楕円1個の表示/非表示はできるように なりました。 残りの楕円2、3、4を構文内に色々当てはめてみましたが、エラーが出てしまいます。 どのように記述すれば一括表示できるでしょうか。 連投申し訳ないですが、詳しい方アドバイスを宜しくお願いします。

  • エクセル VBA

    先日初めてVBAに触れた者です 知恵をお貸しください エクセルのバージョンは2000です ブックのデータを誰も編集できないようにして、 尚且つオートフィルタだけを有効にする方法を探しています。 この条件だけならば、 Sub Auto_Open() Worksheets("Sheet1").EnableAutoFilter = True Worksheets("Sheet1").Protect UserInterfaceOnly:=True End Sub で、可能になったのですが あとこのシートに「パスワード保護」をかけることは 出来るでしょうか? 私には「出来る」か「出来ないか」すらわからないです。 お手数をおかけして申し訳ないですが どうぞお助けくださいませ。 よろしくお願いします

  • VBA  Auto_Openについて

    いつもお世話になってます。 Private Sub メイン() Load メイン メイン.Show End Sub Private Sub Auto_Open() Worksheets("sheets1").Range("A1").Value = Time Application.OnTime Now + TimeValue("0:00:01"), "Auto_Open" End Sub こんなかんじのを書きました。 上の「メイン」フォームもAuto_Openさせたいのですが どうしたらいいのでしょうか? 時刻は常に作動させておきたいです。 よろしくお願いします。

  • VBAで指定したSheetの削除

    お世話になります 指定したシート以外すべてのシートを削除させるボタンを作成したいのですが ↓こんなものを見つけました。(URLわからくなってしまった;;) これは図1~ワークシートを削除させるVBAらしいのですが ■解らないこと なぜかsheetにすると削除してくれません。 '指定以外ワークシート削除 Private Sub CommandButton1_Click() Dim myShe As Worksheet For Each myShe In Worksheets If myShe.Name <> Worksheets("図").Name Then myShe.Visible = Delete End If Next End Sub

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

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

  • エクセル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    ・    ・    ・    ・    ・

  • EXCEL ツールバーを非表示にするには(VBA)

    EXCELを開いた時、ツールバー(standerd)が見えないように(非表示)したいのですが、わかりません。 VBAで下記のように記述するとエラーが返ります。 Private Sub Workbook_Open() CommandBars(3).Visible = False End Sub 教えて頂けると幸いです。

専門家に質問してみよう