• ベストアンサー

常に一番右(末尾)にシートを挿入したい

エクセルvbaですが 現在のシート数が3シートの場合、 Sub Macro() Sheets("基本").Copy After:=Sheets(3) End Sub で基本シートをコピーして、一番左に生成することはできますが この時点でシート数は4枚になり、また同じコードを実行すると、 右から2番目、左から3番目、にシートが挿入されます。 Sheets(3)をすることによって左から3番目になってしまうと思うのですが 常に一番右にシートを挿入する方法を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

worksheets("基本").copy after:=worksheets(worksheets.count) のようにします。

blrajuyjqznj
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • うまくいきません。(シートの連続挿入)

    業務にて、選択した範囲の名前のシートを作成し、 なおかつその内容は「マスタ」というシートをコピーする。というマクロを作ったのですが、うまくいきません。 名前のシートを作成するのみならばうまくいくのですが、内容をコピーしようとすると、逆順になり、空白のシートが挿入されます。 最終的には降順(名称にはNo.があります)になり、空白のシートが挿入されないようにしたいです どうしたらうまくいくのでしょうか? ==== Sub 連続シート作成() For Each 対象セル In Selection Sheets.Add After:=ActiveSheet Sheets("マスタ").Copy After:=Sheets("マスタ") ActiveSheet.Name = 対象セル.Value Next 対象セル End Sub

  • 「シート1のアクティブセルをコピーしてシート2のA列の最終行+1に貼り付ける」

    「シート1のアクティブセルをコピーしてシート2のA列の最終行+1に貼り付ける」 というVBAコードが知りたいのですが Sub Macro1() Selection.Copy Sheets("Sheet2").Select Selection.End(xlDown).Offset(1).Select ActiveSheet.Paste End Sub ではうまくいきませんでした。 ・マクロを実行する前のもともとのアクティブセルはシート1の入力されたセル上にあるとします。 ・シート2のA列にはA1~A?と削除したり挿入したりで数が変わりますが何かしら文字列が隙間なく入っています。 よろしくお願いします。

  • シートを挿入したと同時にイベントを生成することは可

    VBAでシートを挿入したと同時に そのシートにイベントを生成することは可能ですか? 例えば、 Worksheets.Add でシートを挿入し、 そのシートに Private Sub Worksheet_Activate() Msgbox “” End Sub というイベントをVBAで記述させることはできないのでしょうか?

  • エクセルVBAでシートコピー

    Sheets("Sheet1")をCopyして、現在の最終のシートの後に持っていき、それを変数wsに設定しようとしています。 Sub TEST01() Sheets("Sheet1").Copy After:=Sheets(Sheets.Count) Set ws = Sheets(Sheets.Count) MsgBox ws.Name End Sub これで通常はうまくいきますが、最終シートが非表示になっているとwsはその非表示のシートが指定され、Sheets("Sheet1")をCopyしたものでなくなってしまいます。 Sheets("Sheet1")をCopyして、現在の最初のシートの前に持っていき、それを変数に設定しようとしています。 Sub TEST02() Sheets("Sheet1").Copy Before:=Sheets(1) Set ws = Sheets(1) MsgBox ws.Name End Sub これで通常はうまくいきますが、最初のシートが非表示になっているとwsはその非表示のシートが指定され、Sheets("Sheet1")をCopyしたものでなくなってしまいます。 Set ws = ActiveSheet で設定できましたが、それ以外の方法はないでしょうか?

  • VBA シートを別ブックの先頭・一番左にコピー

    このシート(例Sheet1)を別ブックの先頭・一番左にコピーしたいのです。 下記のコードは一番右にコピーです。 宜しくお願いします。 Sub SheetCopy5() Dim bk As Workbook  Set bk = Workbooks("コピー先のブック.xlsx")  ActiveSheet.Copy _    After:=bk.Sheets(bk.Sheets.Count) End Sub

  • VBA シートのコピー

    シートをコピーし、挿入をシートの末尾にする場合はどうなりますか? マクロを使ってやったときに、20のシートがあったため、下記のようになりますが、これだと、2回目以降にコピーしたとき20番目に挿入されて末尾には移動しないですよね。 そこは、どうしたらいいですか?? シート名「あああ」 Sheets("あああ").Copy After:=Sheets(20) お願いします。

  • エクセル2007でシートをコピーして23年9月と

    仕事で毎月月報を出す作業があります。 ひな形があり、ひな形の右に23年9月、23年8月、23年7月とシートを毎月追加していきます。 毎月同じ作業なのでマクロでやろうと参考書を買い込みはじめましたがシート名に日付けを入れるところでつまづいております。 Sub Macro1() ' ' Macro1 Macro Sheets("月次点検用紙").Select Sheets("月次点検用紙").Copy Before:=Sheets(2) Sheets("月次点検用紙 (2)").Select Sheets("月次点検用紙 (2)").Name = Date End Sub のようになると思うのですがDateのところでつまづいています。 23年9月のように和暦で記入日の月までを入れたいのです。 よろしくお願いいたします。

  • Excel2002のVBAでワークシートの挿入で疑問

    VBAの勉強をし始めたばかりものものです。 ワークシートの数が10枚になるまでワークシートの挿入を繰り返すように、以下のVBAを作成しました。 Sub wsins() Dim i As Integer For i = Worksheets.Count To 10 Step 1 Sheets.Add Next End Sub しかし、上記の方法だと、ワークシートが11枚になってしまいます。 もちろん10のところを9にすることによって、ワークシートがトータルで10枚にはなるのですが、理由がわかりません。 勉強したばかりで、思い違いをしているのかと思いますが、教えていただけないでしょうか?よろしくお願いいたします。

  • シートをコピーして シートに1から連番をふる

    (マスター)というシートがありまして、そのシートをコピーしてシート名に1からの連番をふる マクロをお教え下さい。 Sub sub_CopySample() Dim myLooP As Integer For myLooP = 1 To 10 Sheets("マスター").Copy After:=Sheets(myLooP) Next myLooP For myLooP = 1 To 10 Sheets(myLooP + 1).Name = myLooP Next myLooP End Sub これだと止まりません。 1シートづつ増やしたいのですが。

  • エクセル マクロ シートの追加 メモリー

    エクセル2003のマクロでシートのコピーを行っておりますが、シート数35枚程度からたびたびマクロ異常が出ます。(表示内容:実行エラー 1004worksheetクラスcopyソメッドが失敗しました ) メモリーが足りないのでしょうか、 現在の回避方法:異常が出たらエクセルを再読み込みする。作業終了まで4回程度再読み込みで、終了時ファイルの大きさは約4000kbytです。 詳しいご指導をいただければ幸いです Sub シート追加() ' Macro2 Macro ' マクロ記録日 : 2011/2/3 ユーザー名 : son ' Keyboard Shortcut: Ctrl+q ActiveCell.FormulaR1C1 = Date Range("D8").Select 'シートのコピー Sheets("sheet1(0)").Copy After:=Sheets(3) '上書保存 ActiveWorkbook.Save End Sub

専門家に質問してみよう