こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

Excel VBAでのシートのコピーをしようとしてヘルプを参考に

Sheets("master").Copy After:=Sheets("master")

のようにマクロを書きました。
これでExcel2000ではちゃんとコピーしたのですが、Excel97ではコピーをしてくれません。
いくつかの端末(OSはWin95、WinNT4、Win2000)でやってみましたがExcel2000はOK、Excel97ではダメでした。
なにか原因があるのでしょうか?

投稿日時 - 2003-06-05 11:15:38

QNo.566672

すぐに回答ほしいです

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

再びこんにちは。

シートにおいたActiveXコントロール(CommandButtonなど)から実行してますか?

であれば、ActiveCell.Activate を入れてみては?

Private Sub CommandButton1_Click()
 ActiveCell.Activate
 Sheets("master").Copy after:=Sheets("master")
End Sub

投稿日時 - 2003-06-06 12:54:56

お礼

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

投稿日時 - 2003-06-09 13:29:09

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんにちは。

#1さんのサンプルでもダメなのでしょうか?
私もExcel97環境ですが問題ないですよ。

マクロの全貌が不明なのですが、問題は他の部分にあり、On Error Goto 等でエラー回避しているとかでは?

投稿日時 - 2003-06-05 21:21:38

補足

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

投稿日時 - 2003-06-06 10:37:59

ANo.1

OS Win95 Office97 で
EXCEL97の標準モジュールに以下を記述してテストしましたが、問題なくコピーされました。
具体的にどのようなエラーがでるのですか?

Sub testcopy()
Sheets("master").Copy After:=Sheets("master")
End Sub

投稿日時 - 2003-06-05 13:59:58

補足

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

投稿日時 - 2003-06-05 15:07:00

あなたにオススメの質問