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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/12/03 20:50:42
  • 終了:2009/12/10 20:55:02

回答(3件)

id:ken3memo No.1

ken3memo回答回数242ベストアンサー獲得回数742009/12/03 21:11:39

ポイント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

mystashes回答回数32ベストアンサー獲得回数112009/12/03 21:20:22

ポイント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

HALSPECIAL回答回数407ベストアンサー獲得回数862009/12/03 21:36:16

ポイント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様
    >足そうとしても 足せない場合がある。
    具体的な例を教えて頂けますか?
      例えば、どのような環境でどういう状況の場合がありますか?
    勉強の為に教えてください。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません