Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3497 / 13646 ツリー ←次へ | 前へ→

【61828】手動でシートコピーできるのに、マクロだと出来ない件。 kouka 09/6/8(月) 18:40 発言[未読]
【61829】Re:手動でシートコピーできるのに、マクロ... つん 09/6/8(月) 23:28 発言[未読]
【61833】Re:手動でシートコピーできるのに、マクロ... kouka 09/6/9(火) 10:10 お礼[未読]
【61834】Re:手動でシートコピーできるのに、マクロ... つん 09/6/9(火) 10:19 発言[未読]
【61846】Re:手動でシートコピーできるのに、マクロ... kouka 09/6/9(火) 13:04 お礼[未読]

【61828】手動でシートコピーできるのに、マクロだ...
発言  kouka  - 09/6/8(月) 18:40 -

引用なし
パスワード
   こんばんわ、koukaです。

シートコピーの件ですが、手動だと普通に出来るのに、
マクロの記録を使い、マクロを記述すると、
『copyメソッドが失敗しました』とエラーが出て、
シートのコピーが出来ないのは、なぜなのでしょう??
原因がよくわからず、困ってます(ToT)

ちなみに記述は下記の通りです。
標準モジュールに書いてあります。
Sheets("依頼書(原紙)").Select
Sheets("依頼書(原紙)").Copy Before:=Sheets(1)
Sheets("依頼書(原紙) (2)").Select

原因がわかる方がいましたら、教えてください。
すみませんが、よろしくお願いします。

【61829】Re:手動でシートコピーできるのに、マク...
発言  つん  - 09/6/8(月) 23:28 -

引用なし
パスワード
   ▼kouka さん
こんばんは^^


>シートコピーの件ですが、手動だと普通に出来るのに、
>マクロの記録を使い、マクロを記述すると、
>『copyメソッドが失敗しました』とエラーが出て、
>シートのコピーが出来ないのは、なぜなのでしょう??
>原因がよくわからず、困ってます(ToT)
>
>ちなみに記述は下記の通りです。
>標準モジュールに書いてあります。
>Sheets("依頼書(原紙)").Select
>Sheets("依頼書(原紙)").Copy Before:=Sheets(1)
>Sheets("依頼書(原紙) (2)").Select

こちらでシート名「依頼書(原紙)」を作って実行したら、問題なく動きましたが・・・・
上記のコード以外のところで、何か原因があるんかな?

ちなみに、コピーするのに、いちいちSelectする必要はなく、
またコピーしたら、コピーで作られたシートが自然にアクティブになるので、これまたSelectする必要はないと思います。

Sub test2()

  Sheets("依頼書(原紙)").Copy Before:=Sheets(1)

End Sub

これで、koukaさんが書かれた(マクロの記録で作られたの?)と同じ振る舞いをすると思います。

【61833】Re:手動でシートコピーできるのに、マク...
お礼  kouka  - 09/6/9(火) 10:10 -

引用なし
パスワード
   こんにちわ、koukaです。
つんさん、回答ありがとうございます。

ちなみにパソコンを再起動したら、前述したコードでも、
問題なく動いてしまいました・・・。
パソコンのせい?Excelのせい??
どちらにしてもお騒がせしました。。。

>ちなみに、コピーするのに、いちいちSelectする必要はなく、
>またコピーしたら、コピーで作られたシートが自然にアクティブになるので、これまたSelectする必要はないと思います。
そうなんですか!?
今まで、コピーするのにSelectしなきゃ、と、
必ず記述していたのですが。。。
勉強になりましたm(_ _)m
コピーで作られたシートは今回、Renameする為にSelectしたのですが、
もしかしてこれも必要なかったりします??
あっ、そのようですね。。。
ちなみに最初から記述するのが面倒で、マクロの記録を使いました(^^;)

【61834】Re:手動でシートコピーできるのに、マク...
発言  つん  - 09/6/9(火) 10:19 -

引用なし
パスワード
   ▼kouka さん
おはようございます^^

>ちなみにパソコンを再起動したら、前述したコードでも、
>問題なく動いてしまいました・・・。
>パソコンのせい?Excelのせい??

そですか。良かったですね・・・
でも、原因不明はちょっと気になりますねえ・・・

>コピーで作られたシートは今回、Renameする為にSelectしたのですが、
>もしかしてこれも必要なかったりします??
>あっ、そのようですね。。。

リネームするなら

Sub Copy_test()

  Worksheets("Form").Copy after:=Worksheets(Worksheets.Count)
  ActiveSheet.Name = "6月"

End Sub

こんな感じやね^^
(シート名は適当で後ろにくっつけてます)
ここで、すでに「6月」シートがあったら、エラーになるんで、場合に寄ったらエラー処理が必要かも。

【61846】Re:手動でシートコピーできるのに、マク...
お礼  kouka  - 09/6/9(火) 13:04 -

引用なし
パスワード
   つんさん、こんにちわ。

原因不明の現象でしたが、
再発するまでは、とりあえず放っておきます(^^;)
今の所、再発は無いので。

シートをSelectしなくてもOKとの事なので、
Worksheets("依頼書(原紙)").Copy before:=Worksheets(1)
ActiveSheet.Name = "依頼部署"
と、変更しました。
ファイル名に変数の数値をつけて、保存してしまうので、
エラー処理は大丈夫です。

いろいろとありがとうございましたm(_ _)m

3497 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free