- ベストアンサー
VBA 実行エラーの原因
次のコードは、アクティブブックのSheet2を、Book222のSheet1の後ろにコピーします。 とあって、実際Book111、Book222を開いて実行するも、 実行時エラー9:インデックスが有効範囲にありませんがでます。 どこが悪いかさっぱりわかりません。教えてください。 Sub Sample05() Worksheets"Sheet2").CopyAfter:=Workbooks"Book222").Worksheets("Sheet1") End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
"Sheet2" と "Book222" の前に ( が無いのはただ単に記入もれな だけですよね?? Excel VBA だと思うんですが、 一番いい方法は、自分がやりたいことをマクロで記録してしまうのが 早いかな、と。 それからコードを見ていらない部分を削っていく。 私は Excel VBA を使用するときはこの方法を結構使います。 ちなみに、やりたいこととはちょこっと違うかも知れませんが、 シートを別ブックにコピーするコードです。 参考までに。。。 ↓ Sheets("Sheet1").Copy Before:=Workbooks("Book222.xls").Sheets(1)
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
2箇所も( 漏れを指摘されている。 記入ミスなのか、質問ぶんのコードどおりで実行したのか、すぐお礼欄で返事すべきだ。後続の読者は迷惑する。
お礼
おっしゃるとおりです。ご回答どうもありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
>Worksheets"Sheet2").CopyAfter:=Workbooks"Book222").Worksheets("Sheet1") Worksheets("Sheet2").Copy After:=Workbooks("Book222.xls").Worksheets("Sheet1") 括弧の相手がいないのと、取り敢えず拡張子(.xls)つけてみました。
お礼
ご回答どうもありがとうございました。
お礼
Sub Macro111() ' ' Macro111 Macro ' マクロ記録日 : 2008/1/8 ユーザー名 : ' ' Sheets("Sheet1").Move Before:=Workbooks("Book222.xls").Sheets(1) Windows("Book111.xls").Activate End Sub で解決しました。 おっしゃるとおり自分のPCじょうで動いたものを使うようにします。ご回答どうもありがとうございました。
補足
( が無いのはただ単に記入もれな だけですよね?? はい。元のコードはきちんとついています。