• ベストアンサー

Excel VBAでのシートのコピーがヴァージョン違いで出来ない?

Excel VBAでのシートのコピーをしようとしてヘルプを参考に Sheets("master").Copy After:=Sheets("master") のようにマクロを書きました。 これでExcel2000ではちゃんとコピーしたのですが、Excel97ではコピーをしてくれません。 いくつかの端末(OSはWin95、WinNT4、Win2000)でやってみましたがExcel2000はOK、Excel97ではダメでした。 なにか原因があるのでしょうか?

質問者が選んだベストアンサー

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

再びこんにちは。 シートにおいたActiveXコントロール(CommandButtonなど)から実行してますか? であれば、ActiveCell.Activate を入れてみては? Private Sub CommandButton1_Click()  ActiveCell.Activate  Sheets("master").Copy after:=Sheets("master") End Sub

Flying_AII
質問者

お礼

コマンドボタンからの実行でしたので、"ActiveCell.Activate"を入れたら無事シートのコピーが出来ました。 どうもありがとうございました。m(_ _)m

その他の回答 (2)

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

こんにちは。 #1さんのサンプルでもダメなのでしょうか? 私もExcel97環境ですが問題ないですよ。 マクロの全貌が不明なのですが、問題は他の部分にあり、On Error Goto 等でエラー回避しているとかでは?

Flying_AII
質問者

補足

papayukiさん こんにちわ 人の作ったマクロをいじっていたので前の方を確認してみたら「On Error Resume Next」でエラーの次行から実行するようになっていました。 これをはずして実行してみるとシートコピーをしている行「Sheets("master").Copy After:=Sheets("master")」で「実行時エラー'1004':WorksheetクラスのCopyメソッドが失敗しました。」というエラーメッセージが出ました。 #1さんのサンプルをコピペしてtestcopyのみを実行しても同じエラーになってしまいます。 皆さんの方で問題なく実行できているとすると・・・・・・諦めかな?

  • AQUALINE
  • ベストアンサー率33% (18/53)
回答No.1

OS Win95 Office97 で EXCEL97の標準モジュールに以下を記述してテストしましたが、問題なくコピーされました。 具体的にどのようなエラーがでるのですか? Sub testcopy() Sheets("master").Copy After:=Sheets("master") End Sub

Flying_AII
質問者

補足

エラーにはならずに、表面上はコピーも何もせず終わってしまいます。 エラーならばもうちょっと考えどころがあるのですが・・・・。 (ちなみにウチのWin95 Office97 ではNGでした(T_T))

関連するQ&A