• ベストアンサー

エクセルVBA/非表示シートの使い方

度々よろしくお願いします。 シート(1)が入力用、シート(2)が計算および並び替え用、シート(3)が編集表示用として、シート(2)を常に非表示にしておきたいのです。 非表示のまま、記述の対象とする方法というのはあるのでしょうか?なければ、 Sheets(2).Visible = True ⇔ False で挟む方法が一般的なのでしょうか?

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。 >Sheets(2).Visible = True ⇔ False これ以外に、シートのVisibleプロパティを設定することでも可能です。 VBEを開いて、左ペインのプロジェクトツリーから対象シートを選択し、上記のプロパティを設定します。 1. [-1 - xlSheetVisible] 表示 2. [ 0 - xlSheetHidden] 非表示 3. [ 1 - xlSheetVeryHidden] 非表示 2と3の違いですが、 xlSheetVeryHidden を設定した場合、EXCELメニューの[書式]-[シート]-[再表示]から再表示できなくなります。 データの参照方法はNo.1の方のようにマクロからでも、普通に=Sheet1!A1のようにでも可能です。

tsubasa2003
質問者

お礼

ありがとうございました。表示⇔非表示の作業は必要ということですね。

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

その他の回答 (1)

  • HAL2010
  • ベストアンサー率24% (37/150)
回答No.1

はなはだ適当な回答ですが(笑) シート名『B』(非表示)の座標A1のセルに”aaa”を代入する例 With Sheets("B") .Cells(1, 1) = "aaa" End With

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

関連するQ&A

  • エクセル VBA SHeetの隠し

    エクセルマクロでThisWorkbookの 記述に下記のようにしました! つまりSheet2を隠す為にしました! Sheet2はマスターなのでそこを使用者に 触らせないように!と思いしましたが・・・ いざ、ファイルを開くと{マクロを有効にする} をクリックしすと{編集の為にロックされています} と表示され読み取り専用になってしまいます! 記述が間違っているのでしょうか? しかもファイルを閉じるとエラー表示され エラーを報告を送信しますか?と必ず表示されます! 他のファイルは問題なく開いたり閉じたり出来ます。 やはり、記述の問題なのでしょうか? 教えて下さい! Private Sub Workbook_Activate() Dim Msg As String, Sn As Variant Sheets("入力").Visible = True Sheets("Sheet2").Visible = False Sheets("グラフ").Visible = True Sheets("入力").Activate UserForm1.Hide End Sub

  • エクセルのマクロを有効にしないと表示しないようにする方法

    エクセルでマクロを有効にしないと、シートが表示されないように設定したいのですが、下記の様に(ほかの方の投稿から)入力すると三行目がエラーになります。素人なので、よくわかりません。どのようにしたら、マクロを有効にしないと全てのシートを表示しないようにできるのでしょうか? ご教授いただけますでしょうか Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets(\"Sheet1\").Visible = False Sheets(\"Sheet2\").Visible = False ActiveWorkbook.Protect Password:=\"error123\" End Sub Private Sub Workbook_Open() ActiveWorkbook.Unprotect Password:=\"error123\" Sheets(\"Sheet1\").Visible = True Sheets(\"Sheet2\").Visible = True Sheets(\"Sheet1\").Select End Sub

  • 【Excel VBA】ワークシートの表示

    Excel 2013で以下のコードを実行し、 非表示にしているワークシートの表示を試みましたが、 上手く機能しませんでした。 コード自体にエラーはなく、該当シートのVisibleプロパティを確認すると xlSheetVisibleに変わっているのですが、実際のシートは非表示のままでした。 どう対処すればワークシートを表示することが可能でしょうか? ==================== If actsht = tmp(i) Then If Sheets(元データ).Visible = False Then Sheets(元データ).Visible = True End If End If ====================

  • EXCELのVBAで質問です。

    Sub Sheet_COPY() Sheets("電圧降下計算書").Visible = True Sheets("電圧降下計算書").Copy Before:=Sheets("電圧降下計算書") Sheets("電圧降下計算書").Visible = False End Sub 上記のプログラムを1行づつ説明していただけませんでしょうか?

  • Excel(エクセル)で非表示シートをVBAで計算するには?

    よろしくお願いします。 エクセルで1つのブックにAシート~Fシートまであるとします。 再計算させると、すべてのシートを再計算してしまうため時間がかかるので、マクロの自動記録を利用して「Aシート→Bシート→Cシート→Dシート→Eシート」と、必要なシートだけを順番に計算させる事で、処理時間短縮をさせる事をする事ができました。 EシートとFシートは表示させておいて、その他のA~Dシートは非表示にしました。 Eシートには、A~Dシートで計算した結果が表示されるようになっています。 ですが、A~Dシートを非表示にして作成したマクロを実行すると、エラーが出てしまい上手くできません。 A~Dシートを非表示にしていても、ブック全体を再計算させる事はできます。 非表示にしたシートをマクロで計算させるには、どのようにしたら良いでしょか? アドバイスをお願い致します。 登録したマクロは下記のようになっています。 Sub 計算() Sheets("Aシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Bシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Cシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Dシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Eシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Eシート").Select End Sub

  • 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を非表示にせず、表示したままならこの現象は起こらないのですが、どうにかして使用していないシートを非表示にした状態を保ったままやりたいのです。

  • エクセルで、シートを非表示のままマクロを実行するには?

    エクセル初心者です。 Sheet1で、マクロの実行ボタンがあり、Sheet2で、データを編集して、 Sheet1に結果の一覧を表示させるマクロなのですが、 Sheet2は非表示のままマクロを実行したいのですが、うまくいかず、 Sheet2を表示して、実行するとうまくいくため、 一時的にシートを表示させるようにしてみたのですが、 Sheets("Sheet2").Range(Cells(2, 28), Cells(rowCnt, 37)).Insert Shift:=xlDown で、アプリケーション定義・オブジェクト定義エラーになります。 どなたかご指南下さい。 Private Sub EDITSLINF() Dim rowCnt As Long Application.ScreenUpdating = False Worksheets("製造記録一覧 (edit1)").Visible = True  Sheets("Sheet2").Range("AB2:AK300").ClearContents '追加レコード抽出&コピー&ペースト Sheets("Sheet2").Range("Q1:Z300").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "AP1:AP2"), CopyToRange:=Sheets("Sheet2").Range("AB1:AK1"), Unique:=False '既存レコードコピー&ペースト rowCnt = Sheets("Sheet2").Range("O1") Sheets("Sheet2").Range(Cells(2, 28), Cells(rowCnt, 37)).Insert Shift:=xlDown Sheets("Sheet2").Range(Cells(2, 28), Cells(rowCnt, 37)).Interior.ColorIndex = xlNone Sheets("Sheet2").Range(Cells(2, 2), Cells(rowCnt, 11)).Copy Sheets("Sheet2").Range("AB2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Worksheets("Sheet2").Visible = False 'メインシートへコピー   Application.CutCopyMode = False Sheets("Sheet2").Range("AB2:AJ300").Copy Sheets("Sheet1").Range("K4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False End Sub

  • 新しいシートが表示されません。

    Sub 新清算書シート作成() ' ' 新清算書シート作成 Macro ' 新しいシートに交通費清算書を作成する ' ' Worksheets("新清算書").Range("b1:f22").Copy Set NewSheet = Sheets.Add(Type:=xlWorksheet) ActiveSheet.Paste Destination:=NewSheet.Range("b1:f22") NewSheet.Visible = True NewSheet.Name = Sheets("メニュー").Range("A3").Value & Sheets("メニュー").Range("B3").Value Worksheets("メニュー").Range("A3").Copy NewSheet.Range("D4") Worksheets("メニュー").Range("B3").Copy NewSheet.Range("F4") ActiveWindow.SelectedSheets.Visible = False End Sub サンプルコードを勉強し自分なりに変えて作っています。 このコードでNewSheet.Visible = True があるにも関わらず、シートが表示されなくて困っています。しかし書式からシート→再表示にいけば表示は可能です。NewSheet.Visible = True 以外にも方法はありますか?  また新清算書をマクロで実行してコピーしても完璧にはコピーできず、セルの中身はコピーできるのですが、セルの行や列の幅まできれいにコピーできません。完璧にコピーするにはどうすればいいのでしょうか?

  • Excel VBAの不可解(?)な動作について

    Excel 2000 VBAでの質問です。 Sheet1に以下のようなコードを書きました。 --------------------------------------------------------- Public Sub test() Application.DisplayAlerts = False Sheets("Sheet2").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "test" Sheets("test").Visible = xlVeryHidden Sheets("Sheet3").Visible = xlVeryHidden Sheets("test").Visible = True Sheets("test").Delete Sheets("Sheet2").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "test" '問題の行 Application.DisplayAlerts = True End Sub --------------------------------------------------------- このコードで期待している動作は、最終的にSheet3(xlVeryHiddenになっている)の後ろにSheet2をコピーし、その名前を「test」にするというものです。 しかし、実際にはSheet3の後ろにSheet2がコピーされるものの、名前はSheet2が「test」と変更されてしまいます。 Sheets.Countの値はSheet3をさしているはずなのですが・・・。 皆様に教えていただきたいのは、 ・この意図しない動作がなぜ起こるか ・どうすればこの問題を回避できるか です。よろしくお願いいたします。 もし初歩ミスでしたら、申し訳ありません・・・。ご指摘ください。

  • エクセルのVBAマクロで隠れシートを表示させる方法について教えて下さい

    エクセルのVBAマクロで隠れシートを表示させる方法について教えて下さい。 エクセルで”書式→シート→表示しない”を実行するとエクセルのシートを非表示にすることが出来ます。 逆に”書式→シート→表示する”にすると隠れているシートが表示出来ます。 この非表示のシートを表示させるVBAマクロの記載を教えて下さい。 但し、”Sheets(シート名).Visible = True”の様にシート名を記載すれば非表示のシートが表示されるのは知っています。今回知りたいのは、シート名の分からない全ての非表示のシートを表示させるVBAマクロの記載方法を教えて下さい。

専門家に質問してみよう