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

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

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

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

Q&A

解決済

1回答

8674閲覧

VBAでシートを他ブックの末尾にコピーしたいのですが、エラーが出てしまいます。

umai29

総合スコア19

VBA

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

0グッド

0クリップ

投稿2020/08/20 01:22

Excelで、現在開いているブック(ブックAとします)のあるシート(シートaとします)を他ブックBの末尾にコピーする処理をVBAで記述しています。

しかしながら、「インデックスが有効範囲にありません。」とエラーが発生してしまいます。

【コード①】

VBA

1Dim wb As Workbook 2Set wb = Workbooks.Open(ThisWorkbook.Path & "\B.xlsx") 3 4With wb 5 'シートaをブックBの末尾にコピー【※】 6 Sheets(a).Copy After:=.Sheets(.Sheets.Count) 7 8 '上書き保存し、終了 9 .Close SaveChanges:=True 10End With 11

コード①の場合、【※】のところでエラーが発生します。

シートの値の指定を間違えたのかな?とも思ったのですが、シートの数を数えてみても正しいので、原因がわかりません。

https://www.sejuku.net/blog/70165
https://www.relief.jp/docs/excel-vba-sheet-copy-to-another-book.html

これらのサイトのを参考に、コード②や③に変更して試してみましたが、やはりいずれも【※】のところで同じエラーが発生してしまいます。

【コード②】

VBA

1Dim wb As Workbook 2Set wb = Workbooks(ThisWorkbook.Path & "\B.xlsx") '【※】 3 4With wb 5 'シートaをブックBの末尾にコピー【※】 6 Sheets(a).Copy After:=.Sheets(.Sheets.Count) 7 8 '上書き保存し、終了 9 .Close SaveChanges:=True 10End With

【コード③】

VBA

1Dim wb As Workbook 2Workbooks.Open(ThisWorkbook.Path & "\B.xlsx") 3Set wb = ActiveWorkbook 4 5With wb 6 'シートaをブックBの末尾にコピー【※】 7 Sheets(a).Copy After:=.Sheets(.Sheets.Count) 8 9 '上書き保存し、終了 10 .Close SaveChanges:=True 11End With

何かを見落としているのかもしれないのですが、やはり原因がわからないため、こちらに投稿させていただきました。

詳しい方、ご教示をお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記でいかがでしょうか。

VBA

1ThisWorkbook.Sheets("a").Copy After:=.Sheets(.Sheets.Count)

ファイルを開いた後なのでブックBがアクティブになっており、
ブックBにシートaがないのでエラーになっています。

投稿2020/08/20 01:28

radames1000

総合スコア1923

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

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

umai29

2020/08/20 07:00

ThisWorkbookをつけたらできました! 他ブックをOpenするとアクティブのブックが変わることが原因だったのですね。勉強になりました。 ありがとうございますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問