• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2007 マクロ)

EXCEL2007のマクロでエラーが発生する理由とは?

このQ&Aのポイント
  • 質問者は、EXCEL2003で正常に動作したマクロがEXCEL2007でエラーが発生することについて疑問を持っています。
  • 質問者は、「インデックスが有効範囲にありません」というエラーメッセージが表示されたと述べています。
  • また、質問者はEXCEL2007で使用できない命令があるかどうか、また代替命令があるかについて尋ねています。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>この中に2007だと使用できない命令があるでしょうか? そんな大げさな話ではないはず。 Windows Sheets などコレクションについての記述の中で、()内に(直接間接に)名称を指定して特定している箇所が数箇所有る。これが実際は(実行時には)プログラムで指定するものが見つからないという事態だと思う。 そこを中心にチェックすること。 ーー エラーが起こっている行(箇所)ぐらい質問に書くべきだ。回答者はテストを受けているのではなく協力者だよ。回答しやすいようヒントを出来るだけ与えるべきだ。

hiro_ele
質問者

補足

回答してくださりありがとうございます。 わたしが2007の環境に無いため自由にテストできないのですが、2007を使用している人から「エラーが出て処理されなかった」と指摘されました。 わたしは2003でテストしましたが問題なく処理が行われました。 可能性として、 ・2007と互換性のない命令文がある… ・ご指摘のとおり「()内に(直接間接に)名称を指定して特定している箇所が数箇所有る。」為、マクロで処理できなかったという人のCSVファイル名と一致していなかった… ということを考えました。 2番目に関しては、基本的に皆同じファイル名でネットからダウンロードするようになっています。 エラーが起こっている行は Windows("2008.csv").Activate Sheets("2008").Range("C3:C33").Select Application.CutCopyMode = False Selection.Copy Windows(ThisWorkbook.Sheets("報告書").Range("A2") & ".xls").Activate Range("G5:G35").Select のいづれかの行だと推測しています。 情報が少なくお答えを頂きにくい状態ですみませんでした。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Windows("2008.csv").Activate 使用者は確実にこのファイルを開いているのでしょうか? fName でファイル名を受け取っているのに、ここでファイル名を固定してしまうというのはVBAで作成されているのに惜しい事です。 Windows(fName).Activate >Sheets("2008").Range("C3:C33").Select csvの場合、シートは1枚しか無いので、”Sheets("2008")”のシート名の部分は無くても良いでしょう。 どうしても使いたいのであれば、fNameから文字列関数等で名前を取り出して適当な変数に入れる事も出来ます。 コピー部分は記録マクロそのままのコードのようですから書き直して見ました。 Dim TENKI As String TENKI = ThisWorkbook.Sheets("報告書").Range("A2") & ".xls" Windows(fName).Activate Range("C3:C33").Copy Windows(TENKI).Activate Range("G5:G35").PasteSpecial Paste:=xlPasteValues Windows(fName).Activate Range("K3:K33").Copy Windows(TENKI).Activate Range("I5:I35").PasteSpecial Paste:=xlPasteValues Workbooks(fName).Close SaveChanges:=False

hiro_ele
質問者

お礼

回答してくださりありがとうございます。 ファイル名のところは直そうとして、ついほったらかしていたところです。 それで、直してくださった 「Windows(fName).Activate」ですが、「fName」にはアドレスから入っている(C:\Users\~\2008.csv)となっているのでそこでエラーになりました。

関連するQ&A