• ベストアンサー

VBA 非表示シートの取り扱い

mar00の回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

番号指定ではないですが Sub Macro1() Ws = Application.CommandBars("Workbook tabs").Controls(1).Caption Sheets(Ws).Select End Sub でも可能だと思います。

High_Score
質問者

お礼

ありがとうございます。 Controls(1)の数字を変えると番号指定可能なのでしょうか? 検索してもなかなか見つかりません。

関連するQ&A

  • EXCEL VBAにてのワークシート作成

    エクセルのVBAにてワークシートを作成することで困っています。 自分で書き込んだのは Private Sub CommandButton1_Click() Worksheets("原紙").Copy ActiveSheet.Name = TextBox1 Worksheets.Add After:=Worksheets(2) End Sub Private Sub UserForm_Initialize() TextBox1 = Format(Date, "yy.mm.dd") End Sub 実行したいことはCommandButton1クリック時に 左から2番目にあるワークシート 原紙を テキストボックス1に入力されている(日付) 名前を付けて左から3番目に新規で作成したいのですが 思うように動かずエラーが出てしまいます。 どの様に修正すれば宜しいでしょうか? またクリック時にすでにテキストボックス1と同じ 名前のワークシートが存在した場合はそのワークシートを Activeにしたいのですがどの様に書き込めば宜しいでしょうか? 重ね重ねですが宜しくお願いいたします。

  • エクセルVBA ワークシート操作について

    エクセル2000 VBAで ワークシートが左から順番に 入力フォーム⇒加工費単価マスタ⇒出荷日報(原紙)と 3個あり4個目に出荷日報(原紙)をコピーしたワークシートを 入力して⇒テキストボックス1 (日付入力します出来れば、日付入力の指定方法⇒テキストボックスの入力制限方法も教えていただきたいです)に入力した名前を ワークシートに付けて保存したいのですが? 翌日は また左から4番目の位置にコピーされ 右に行くほど古い日付の順番にしたいです。 説明が不足していましたら連絡お願いします。

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

  • エクセル VBA初心者です

    エクセルでマクロを設定したいのですが、まだ初心者なのでVBAはほとんど書けません。 たとえば、A1セルの値をコピーして、一番最後のシートのA1セルに貼り付けるという作業を、始めのシートから最後から2番目のシートまで実行したいと思います。最後のシートにはA1からA2、A3、A4・・・のようにどんどん下に貼り付けていきたいのです。特にシートの名前を指定するのではなく、一番左から、最後から2番目までのシートまで、シートの数に関わらず実行したいのですが。。。 いろいろ本を見て調べたのですが、シートを指定して移動するのとかは書いてあったのですが、こういう場合はどうすればよいのでしょうか、よろしくお願いします。

  • VBA 複数シートをまとめて別ブックに移動させる

    Winは10、Excelは2016を使用しています。 複数シートをまとめて別ブック(新ブック)に移動させて、名前を付けて保存したいのですが、私の知識、理解が追い付かずに困っています。 シート名ではなく、シート番号で指定したいです。 移動させたいのは、左から3番目~27番目までのシートです。 Sub 移動 () Dim arr(2 To 26) As Integer Sheets(Arrar(arr)).Select Selection.Worksheets.Move '(保存場所選択と名前は手動でやります。) 'マクロが付いている移動元のブックは変更を保存せずに終了したいです。 おかしいところだらけですが、上記のおかしいところ、修正方法、追記文構文を教えて下さい。 よろしくお願い致します。

  • excelで画像名を入れると別のシートに画像を表示する方法

    初心者です。 50枚くらいの画像の名前を入力していくと、別のシートに順番に表示されるようにする方法を教えてください。画像の大きさも指定したいです。VBAでできるかもしれないとも聞きましたが、よく分かりません。できればわかりやすく教えて頂けますか?宜しくお願い致します。

  • エクセルで、シート番号をシート名にする方法

    エクセルのシート番号を、シートの名前にする、ということをVBAをつかってやりたいのですが、うまくいきません。 たとえば、5枚のシートがあったとしたら、最初のシート名=1となり、二番目が"2"、三番目が"3"で、"付録"というシートになったらなまえをつけるのをやめる。。。。ということをしたいのです。それをフッターにいれて、ページとして表示したいのですが、どうしてもうまくいきません。 シートの名前をつける方法として、 ActiveSheet.Name = "シート名前" ということですが、BOOK内の複数のシートに名前をつける方法がわかりません。 詳しいお方、どうかおしえてください。

  • マクロでシート名「1」から繰返し処理したい

    VBAの繰り返し処理でWorksheets名が「1」から「100」の時はどう書くのでしょうか。 (「集計表」など他のシートも混じっているので左から1番目~100番目ではない) For i = 1 To 100 Worksheets(i).Select とすると名称「1」のシートでなく最左1番目からと見なされます。 Worksheets("i").Select と書くと「i」名のシートと見なされ変数と認識されません。 「積算1」の様に他の字を混ぜると不思議と認識されます。 Worksheets("積算" & i ).Select  の時はOKでした。

  • EXCEL VBA ワークシート貼り付け

    EXCEL2000のVBAを使用して 元データーの左から5番目のワークシートをコピーして 同じフォルダー内にあるエクセルデーター(10個)の 一番左に貼り付けたいのですがVBAの処理で出来ますでしょうか? 実施する処理は元データーの左から5番目のワークシートを コピーして貼り付けたいデーターを開いて 開いたデーターを移動先ブック名に指定して一番左に元データーの 左から5番目のデーターを貼り付けて 処理が終了したら移動先ブックを閉じて次のデーターも 同じことを行いフォルダー内のデーター全てに同じ処理を 行ったら終了する? 文面だけの説明で大変申し訳ないのですがご教授していただけないでしょうか?

  • シートを増やすVBA

    フィルタで隠れている場合もある列の値を シート名として増やしていくVBAで以下のようなものをつくりました (値は重複している場合もある) 雛型シートがありそれをシート名だけ増やしていくというものです Sub シートを増やす() Dim target As Range Dim h As Range On Error Resume Next Set target = Worksheets("一覧シート").Range("E10:E" & Worksheets("一覧シート").Range("E65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) If target Is Nothing Then Exit Sub 'シートを増やしていく For Each h In target On Error GoTo errhandle Worksheets(h.Value).Select On Error GoTo 0 Next Sheets("一覧シート").Select Exit Sub errhandle: Worksheets("雛型").Copy after:=Worksheets(Worksheets.Count) ActiveSheet.Name = h.Value Resume End Sub そうすると、実行エラー1004 ”シートの名前をほかのシート、Visual Basicで参照されるオブジェクトライブラリまたはワークシートと同じ名前に変更することはできません。” というエラーがたまにおきます(シート名が数字の場合におきるようです) 解決方法及び理由をご教授ください