• 締切済み

エクセル2000のマクロについて教えてください。

実は、今日会社で失敗したのですが、エクセルのマクロ実行をしたら、エラー で実行中断となってしまいました。 ワークシートから別のワークシートへコピー&ペーストして印刷というマクロを組みたかったのですが、エラー内容は、 Active Cell Offset(-7,-14).Range("A1:AN15")selectです。 元のワークシートのセル位置と、コピーするワークシートのセル位置は同じ場所でないといけないのでしょうか? セルは同じ数とっているはずなのですが。何回かやってみて、 へんな場所にペーストされて、印刷までは出来たこともあるのですが、何がちがうのだろー。。解らない(;;) だれか教えてください!!!

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

本件はコピー元の表現に問題があるようですが、 別の注意点を1つ挙げます。 私の過去の失敗は、コピー先のほうでした。 コピー先は左上隅のセルを指定し、ActiveSheetに対して Pasteするもので、「Rangeに対してでない」ことに注意。 それらしき表現が見られるので。 Sub test01() Worksheets("sheet1").Range("a1:b5").Copy Worksheets("sheet2").Activate Range("b3").Select ActiveSheet.Paste End Sub Worksheets("sheet2").Range("b3:c7").Pasteではだめ。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

こんにちは。 ActiveCell.Offset(-7, -14).Range("A1:AN15").Select の意味は 「アクティブなセルから、7行上、14列左にいった所を A1 として範囲を選択しなさい」 って事です。 実行時にアクティブセルが 本当の A1 にあったとしたら 7行上にも、14列左にも行けませんので、エラーになります。 セル O8 より右下にアクティブセルがないとエラーになるって事です。 この行の前に Range("O8").Select のように入れるか、この記述を実際の範囲に(例えば Range("N16:BA30").Select)直せば、この部分のエラーはなくなるハズです。

回答No.1

初めまして。 Active Cell Offset(-7,-14).Range("A1:AN15")select これでは、もろにエラーが出てしまいます。 たとえば、シート1のA1~N50にあるデーターをシート2のA2~N51にペーストするのであれば、 workbooks("ブック名.xls").worksheets("シート1").range("A1:N50").copy Destination:=workbooks("ブック名.xls").worksheets("シート2").range("A2") これを続けて1行に書くとコピー・ペーストできます。 まだご不明な点があればご遠慮なくお知らせ下さい。あなた様のおやりになりたいことが実現するまで、私でよろしければご一緒に考えていきたいと思います。

関連するQ&A