質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

254閲覧

指定したシート以降をコピーしたい

pomiw0000

総合スコア19

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2022/01/28 07:25

前提・実現したいこと

指定したシート以降をコピーしたい

発生している問題・エラーメッセージ

該当のソースコード

'都道府県シート以降をコピーしたい ThisWorkbook.Worksheets("都道府県").Next.Index To Worksheets.Count.copy

試したこと

ThisWorkbook.Worksheets("都道府県").Next.Index To Worksheets.Count

この構文で、都道府県以降のシートの次のシートからという意味になります。
都道府県以降のシートをコピーしたいため、「Copy」と語尾に入れると赤字になってしまいます、、。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

都道府県シート以降のシートを新規ブックにコピーしたいということなら、

vba

1Sub Sample() 2 Dim nextIndex As Long, i As Long, ary() As Long 3 4 nextIndex = Worksheets("Sheet1").Next.Index 5 ReDim ary(nextIndex To Worksheets.Count) 6 For i = nextIndex To UBound(ary) 7 ary(i) = i 8 Next 9 Sheets(ary).Copy 10End Sub

投稿2022/01/28 14:09

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ThisWorkbook.Worksheets("都道府県").Next.Indexは都道府県シートの次のシート番号、
Worksheets.Countは、シートの枚数(つまり最後のシート番号)を返すだけなので、
「都道府県以降のシートの次のシートから」という意味にはなりませんね…

例えば、10シートあるブックのうち、3番目に都道府県シートがあるとします。
ThisWorkbook.Worksheets("都道府県").Next.Index To Worksheets.Countの結果は、
4 To 10となります。
これにcopyメソッドを付けることはできません。

しかし、ここで出た数字を利用して、for文でシートのコピーをすることは可能かと思います。

Dim i As Integer for i=ThisWorkbook.Worksheets("都道府県").Next.Index To Worksheets.Count Worksheets(i).Copy Next i

蛇足ですが、Worksheets(i).Copyを実行すると、新規Bookにシートをコピーすることになります。
なので、上記のコードを実行すると、コピーしたいシートの数だけブックが作成されてしまうかと思います。
元のブックにコピーしていくなら、Copyの後ろに、BeforeかAfterを付けてやる必要があります。
最後にコピーするなら
Worksheets(i).Copy After := Worksheets(Worksheets.Count)
先頭にコピーするなら
Worksheets(i).Copy Before := Worksheets(1)

投稿2022/01/28 09:21

Oaroana

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問