• 締切済み

VBA シートの選択と追加

ExcelのVBAで以下の処理をするにはどうすれば良いですか。 ①現在シートが7枚あります。 ②そのうち1枚目から5枚目を選択しています。 ③先頭(最後でも可)に1シート追加します。 ④最初に選択したシート(2枚目から6枚目)に戻って処理をします。 なお、選択するシート(この場合は1枚目から5枚目)は毎回変わります。

みんなの回答

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

こんな感じですかね。 Sub Sample() Dim shs As Object Set shs = ActiveWindow.SelectedSheets Worksheets.Add before:=Sheets(1) shs.Select End Sub

  • SI299792
  • ベストアンサー率48% (714/1476)
回答No.1

選択しているシートを変数に入れればいいです。 具体的にどんな処理をするのか書いてないので、シート名をイミディエイトに表示します。 Option Explicit ' Sub Macro1()   Dim Sheet As Object '   Set Sheet = ActiveWindow.SelectedSheets   Sheets(1).Select   Sheets.Add '   For Each Sheet In Sheet     Debug.Print Sheet.Name   Next Sheet End Sub

関連するQ&A

  • excel vba シートの追加

    excel vba にてシートを以下の条件で追加したいのですが、 両方を同時に行うことができません。ご教授下さい。 ・ シート名を、”新シート”にしたい。 ・ 既存シートAAA.sheetの後ろに、追加したい。 以上、宜しくお願い致します。

  • Excel VBAでのシート全選択

    Excel2003を使用しています。 シートの数:毎回違う シート名前:毎回違う このような状況で、ExcelのVBAを使用して シートを全て選択する方法はありますでしょうか? ご存知の方、ご教授願います。

  • VBAで複数シート選択

    エクセルVBAで複数のシートを選択する場合、 Sheets(Array("AAA", "BBB", "CCC")).Select  と書くと思いますが、マクロを回してみないことにはシート名や枚数が特定できない場合、どのように記述したらいいのでしょうか? たとえば、新たに追加されたSheets(n)~Sheets(n+x)を選択するような場合です。 よろしくお願いします。

  • 選択された複数シートを見つけるには?

    EXCELで選択された複数シート名称をVBAで見つけたいと思っています。 ActiveSheetプロパティでは先頭の1シートのみ可能ですが、複数あった場合には、どうするのでしょうか? 何かよいプロパティ・関数ご存知の方宜しくお願い致します。

  • Excelのシートの追加について

    Excelのシートを追加すると、現在選択しているシートの左側に追加されてしまいます。 これを現在選択しているシート右側にシートを追加することはできますか? 宜しくお願いします。

  • エクセルVBAでシート追加

    初めて質問します。 VBAで新しいシートを追加する時 同名のシート等があるとエラーになります。 追加するときシート名をチェックしたいのですが どの様にすれば良いでしょうか? また、シートは一番最後に追加したいです。 よろしくお願いします。 Sub Macro1() x = InputBox("シート名") Worksheets.Add.Name = x End Sub

  • エクセルVBA シートの追加と名前の変更

    エクセルに「原本」シートがあり、マクロを実行すると原本シートを5シート(5日分)追加し、 (1)一つ目に追加したシートのB2のセルに「追加する日の日付け」を入力し、 シート名にその日付をyymmdd形式で名前を付け、 (2)二つ目に追加したシートのB2のセルに「追加する日の次の日の日付け」を入力し、 ・・・同様の処理・・・ (6)一つ目の追加したシートをアクティブシートにする。 というように、連続した5日分のシートを追加したいと考えています。 VBAの全くの初心者ですので教えていただけると大変助かります。 そんな素晴らしいことが短時間で教えていただけるものなのでしょうか。

  • Excel VBAで選択したシートの表を一つのシートに転記する方法

    こんばんは。 Excel VBAで、 複数のシートを選択した状態で、 マクロを実行すると、最後のシートに、選択したシートの表が 転記され、1つのシートにまとまる便利なマクロが組めないでしょうか。 よく全てのシートを1つのシートにまとめるのは見るのですが、 選択した複数のシートの名前を書き出す方法がわかりません。 良い方法をご存知でしたら教えていただけないでしょか。 宜しくお願い致します。

  • エクセルVBAでファイル・シート名を指定して、現在のブックのシートにコピーしたい

    エクセルVBA独学中の超初心者です。 VBAを利用して以下のことがしたいのですが、わかりません。 助けて下さい。よろしくお願いいたします。 1. ファイルを選択する。 2. 1で選択したファイルから、シート名を選択する 3. 2で選択したシートを現在のブックのSheet1にコピーする

  • エクセルVBAで選択していないシートのセルコピー

    エクセルVBAで質問させてください。 現在選択していないシートから、セルの書式ごとコピーして貼り付けたいのです。 たとえば Sheets(1).Range(Cells(1, 1), Cells(4, 1)).Copy Sheets(2).Range("A1") 等とすると、Sheets(2)が選択されている状態だとエラーになってしまいます。 おそらく、Copyメソッドというのは、選択されているシートにのみ有効だからなのではないか、と思いますが、セルの値だけでなくフォントその他の書式を、別のシート(現在アクティブでない)から持ってくる方法はありますか?

専門家に質問してみよう