Excel2007で2003のVBAが実行時エラー1004
普段は事務員の非プログラマーです。
Excel2000,2003で動いていたマクロを2007でも動くようにしてほしいと言われて頑張っているのですが、どうすればいいのか見当がつきません(*_*)
どうぞ知識者の皆様のお知恵をお貸しください。
Excel2003で読み取りのみのVBAのファイルで、ボタンを押すとマクロが実行され、別CSVファイルを指定しVBAのファイルの別シートとして読み込みます。次に別txtファイルを指定してVBAのファイルの別シートに読み込みます。最後にその2つのシートの必要な個所のみ結合して、新しいcsvファイルとして保存する処理をしています。
Excel2007でこれを実行すると、csvファイルを読み込むときに次のようなエラーがでます。
「実行時エラー'1004':移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー]コマンドと[貼り付け]コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。
マクロの中身はこのような感じです。
エラーは最終行の「ActiveSheet~」ででています。
Sub openExcel() 'Step1 open excel
Dim ExcelFileOpen As String
ExcelFileOpen = Application.GetOpenFilename(FileFilter:="Excel Files,*.csv")
If ExcelFileOpen <> "False" Then
Workbooks.OpenText Filename:=ExcelFileOpen
ActiveSheet.Move After:=Workbooks(ThisWorkbook.Name).Sheets(1)
どうぞよろしくお願いいたします(_ _)
お礼
複数(30くらい)のファイルを開いて、コピーを繰り返すので、途中で「クリップボードがいったいになりました。クリアしますか?」のメッセージでクリアしないと進まないのです。で、あれば、1ファイルコピーの後、必ずクリアにする処理を加えようかと。。。 mmlさんのアドバイスだと、実際にはクリアされてない、 んですよね。
補足
mmlさん、ありがとうございました。 私の方がきちんと理解できずにいました。すみません。 mmlさんのアドバイスで、きちんと処理できました。 ありがとうございました!