• ベストアンサー

マクロが使えなくなりました。

OS Win98でExcel2000SP3を使用しています。 先日,新しいパソコン(Win2000)に入替てExcelファイルを移行したところ, 実行時エラー'9' "インデックスが有効範囲にありません。" というエラーが出てしまい,今まで使用したマクロが使えなくなってしまいました。 前のPCでは今でも動いているのですが,どうしたら直るのでしょうか?

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

拡張子の表示・非表示の違いではないですか? Workbooks("作成").Worksheets("貼付け").Activate Win98SEの環境で試しましたが、Workbooks("作成")は拡張子非表示にした状態だと動きますが、同じPCでも「拡張子を表示する」にして実行するとエラーになります。 Workbooks("作成.xls").Worksheets("貼付け").Activate のようにしておけば、拡張子の表示・非表示に関係なく動きました。

tomjap
質問者

お礼

急な出張で長期デスクを離れていました。俺が遅くなって申し訳ありません。まさに上記の方法でマクロは使えるようになりました。ありがとうございます。

その他の回答 (3)

  • big_fool
  • ベストアンサー率22% (43/193)
回答No.3

カレントフォルダからファイルを開くときは次のような感じではいかがでしょうか Workbooks.Open Filename:="作成.xls" Worksheets("貼り付け").Activate でも今まで動いていたのですから??? 外れていたらすみません

  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

ブックを開いて、VisualBasicEditorのイミディエイトウインドウに、エラー部分のコードをコピーして貼り付け、下記のように分割して、ブックの"作成"が無いのか、シートの"貼付け"が無いのかを調べてみましょう。 Workbooks("作成").Activate [Enterキー]を押す Worksheets("貼付け").Activate [Enterキー]を押す 実行エラーが起こった方の名前が正しくない可能性があります。実行エラーが起こったら、手動でブックまたはシートをアクティブにして、 ?ActiveWorkbook.name [Enterキー]を押す (返り値が表示される) ?Activesheet.name [Enterキー]を押す (返り値が表示される) 返り値が正しい名前になります。名前に半角の空白があったり、送りがながが違っていたりする場合もありますので、確実に修正してください。 もし、これでもダメだったら、ファイル名やシート名を変えて(もちろんコード中も同様に変更)みたり、名前でなくインデックス値にしてみるなど、試してみてください。

  • TTak
  • ベストアンサー率52% (206/389)
回答No.1

マクロの中にパスが書かれていたりすると、パスが無効になっている可能性もあります。特殊フォルダなどはWin98と2000ではパスが変わる場合があります。 f8キーを使ってステップ実行させながら、どこでエラーが出るか確認しましょう。 その部分が解ればもっと的確に回答が得られると思われます。

tomjap
質問者

補足

早速の回答ありがとうございます。 エラー後デバッグにてエラー箇所を見てみたら, Workbooks("作成").Worksheets("貼付け").Activate という行で停まっていました。特にブック名やシート名を変更したということは無いのですが,上記の行をコメントアウトして再度実施したら,またブックとシートを参照するところで停まってしまいます。 また,同じ環境でと思い他の98マシンで実行しても同じエラーが出てしまいます。

関連するQ&A