あるワークブックのシートを別ブックにコピーするときシーとの一番最後に足したいときは、

マクロではどうかくといいのでしょうか? 記録すると、番号になってしまいます。
しかもこの番号は入れ替えなどおこっていると順番がかわってしまうようです。
Sheets("XXX").Copy After:=Workbooks("aaa.xls").Sheets(7)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/12/10 20:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ken3memo No.1

回答回数317ベストアンサー獲得回数115

ポイント27pt

Sheets.Count で シートの数がわかるので、

>\vb|

Sub Macro1()

Dim n As Integer '作業変数

n = Workbooks("aaa.xls").Sheets.Count '.Countで相手ブックのシート数を取得

Debug.Print "相手先のシート数は" & Workbooks("aaa.xls").Sheets.Count 'テスト表示

'シートXXXをn番目にコピー

Sheets("XXX").Copy After:=Workbooks("aaa.xls").Sheets(n)

End Sub

||<

と、nに入れてから、コピーしてみるとか?

何かの参考となれば、幸いです。

Sheets.Count で 検索

http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=Sheets.Count

id:mystashes No.2

回答回数32ベストアンサー獲得回数11

ポイント27pt

コピー先のシート数を取得してやれば良いです。

http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop...

Sub mnSheetCopy()

Const lsSrcBookName As String = "Book1"

Const lsDstBookName As String = "Book2"

Const lsSrcSheetName As String = "Sheet1"

Dim llDstSheetCount As Long

llDstSheetCount = Workbooks(lsDstBookName).Sheets.Count

Workbooks(lsSrcBookName).Sheets(lsSrcSheetName).Copy after:=Workbooks(lsDstBookName).Sheets(llDstSheetCount)

End Sub

※lsSrcBookName, lsDstBookName, lsSrcSheetName コピー元Book名, コピー先Book名, コピー元Sheet名です。ご利用環境にあわせて書き換えてください。

id:HALSPECIAL No.3

回答回数407ベストアンサー獲得回数86

ポイント26pt
Sheets("XXX").Copy After:=Workbooks("aaa.xls").Sheets(Workbooks("aaa.xls").Sheets.Count)

以下が参考になります。

Excel(エクセル) VBA入門:ワークシートを操作する

【例3】Sheet1をシート見出しの最後尾へコピーします。

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sheet.html#co...

  • id:taknt
    足そうとしても 足せない場合がある。
    環境によって、その状況は違う。
  • id:HALSPECIAL
    HALSPECIAL 2009/12/04 01:32:40
    id:taknt様
    >足そうとしても 足せない場合がある。
    具体的な例を教えて頂けますか?
      例えば、どのような環境でどういう状況の場合がありますか?
    勉強の為に教えてください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません