- 締切済み
エクセルのマクロが7回目でエラーになる。シートコピーでエラー発生。
エクセルマクロで【ファイルA】に【マクロ表示】を作成。 内容:【ファイルA】は4シート(シート名:【チャート】【ひな型】【データ】【メニュー】)。 (1)【メニュー】にあるリストから「地域A」を選択 (2)他のブックを開き「地域A」のデータをコピー、【データ】に貼り付け。20のブックからデータを貼り付ける。 (3)【チャート】【ひな型】には、グラフがある。 元のデータは【データ】にあるので、「地域A」のデータがコピーされた時点でグラフは出来る。 (4)【チャート】、【ひな型】をコピーする。 (5)【データ】で作表し、【ひな型(2)】【チャート(2)】に貼り付ける。 (6)【チャート(2)】、【ひな型(2)】を新しいブックに移動。 新しい名前【Book1】で保存。リンクを切り上書きする。 (7)【マクロ表示】は終了し、【メニュー】に戻る。 画面は【Book1】【ひな型(2)】で終わる。 (8)【Book1】を閉じる。 【ファイルA】【メニュー】から「地域B」を選択。【マクロ表示】を実行。 以上の手順で、【ファイルA】を閉じることなく、「地域A」「地域B」・・と選択して、【マクロ表示】を実行していくと、 7回目で(4)でエラーになってしまう。 Worksheets("ひな型").copy before:=worksheets(1)の行で。 エラーメッセージは「実行時エラー1004 WorksheetクラスのCopyメソッドが失敗」。 【ファイルA】のシートを右クリックでを見てみると、 「シートの移動またはコピー」の「移動先ブック名」が(新しいブック)、挿入先が空になっています。 通常、「移動先ブック名」は現在のブック名【ファイルA】、 挿入先【メニュー】【データ】【ひな型】【チャート】であると思うのですが。 シートのコピー回数に制限でもあるのでしょうか? マクロで回避が出来る方法があればお教え下さい。 次のリストを選択前に毎回【ファイルA】を閉じる以外無いのでしょうか? よろしく御指導下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 今の状態では、解決の目処が立ちません。 コードを見せずに、言葉だけで判断してください、という方は時々いますが、ほとんど解決していないはおろか、多くは最後はトラブルの原因になるので、ご自身で、良くコードの内容をまとめられたほうがよいです。回答者泣かせの質問です。 7回目でエラーになるのは、おそらくは、オブジェクトを取得しながら、解放をしていないのが原因だと想像します。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 本当は、きちんとした全体のコードと説明を入れていただきたかったですね。 その問題はねもうお分かりになっているかもしれませんが、 Worksheets と Sheets の違いではないかと思います。 チャートとは何を指すか知りませんが、おそらく、Worksheet ではないのではないでしょうか?Chart ではありませんか?それは、Copy メソッドでは取得できません。
お礼
Wendy02様。 Worksheets("ひな型").copy before:=worksheets(1)を Sheets("ひな型").copy before:=Sheets(1)に変更して試してみましたが、残念ながら7回目で同様なエラーです。 シート名【チャート】はワークシートです。 全体のコードは長くて記載できません。 (4)でエラーになったとき、シートを見てみると、 【ひな型】にある「グラフ11」の「第2数値軸」が選択された状態で止まっています。 「グラフ11」「第2数値軸」は【マクロ表示】の前半部分でAxesで設定しています。 マクロ初心者なので、本を見ながら記述しています。 さらなるアドバイスをお願いいたします。 ありがとうございました。