- ベストアンサー
Excel VBAでのシートのコピーがヴァージョン違いで出来ない?
Excel VBAでのシートのコピーをしようとしてヘルプを参考に Sheets("master").Copy After:=Sheets("master") のようにマクロを書きました。 これでExcel2000ではちゃんとコピーしたのですが、Excel97ではコピーをしてくれません。 いくつかの端末(OSはWin95、WinNT4、Win2000)でやってみましたがExcel2000はOK、Excel97ではダメでした。 なにか原因があるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再びこんにちは。 シートにおいたActiveXコントロール(CommandButtonなど)から実行してますか? であれば、ActiveCell.Activate を入れてみては? Private Sub CommandButton1_Click() ActiveCell.Activate Sheets("master").Copy after:=Sheets("master") End Sub
その他の回答 (2)
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 #1さんのサンプルでもダメなのでしょうか? 私もExcel97環境ですが問題ないですよ。 マクロの全貌が不明なのですが、問題は他の部分にあり、On Error Goto 等でエラー回避しているとかでは?
補足
papayukiさん こんにちわ 人の作ったマクロをいじっていたので前の方を確認してみたら「On Error Resume Next」でエラーの次行から実行するようになっていました。 これをはずして実行してみるとシートコピーをしている行「Sheets("master").Copy After:=Sheets("master")」で「実行時エラー'1004':WorksheetクラスのCopyメソッドが失敗しました。」というエラーメッセージが出ました。 #1さんのサンプルをコピペしてtestcopyのみを実行しても同じエラーになってしまいます。 皆さんの方で問題なく実行できているとすると・・・・・・諦めかな?
- AQUALINE
- ベストアンサー率33% (18/53)
OS Win95 Office97 で EXCEL97の標準モジュールに以下を記述してテストしましたが、問題なくコピーされました。 具体的にどのようなエラーがでるのですか? Sub testcopy() Sheets("master").Copy After:=Sheets("master") End Sub
補足
エラーにはならずに、表面上はコピーも何もせず終わってしまいます。 エラーならばもうちょっと考えどころがあるのですが・・・・。 (ちなみにウチのWin95 Office97 ではNGでした(T_T))
お礼
コマンドボタンからの実行でしたので、"ActiveCell.Activate"を入れたら無事シートのコピーが出来ました。 どうもありがとうございました。m(_ _)m