質問: マクロが急に動かなくなった win7からwin10にpc変えてからマクロが動かなくなりました。 dim i,d for i =3 to 50 if cells(i,1).value <> "" then d=cells(i,4).value worksheets(d).printout end if next こんな感じでa列に日付が入っていたらd列に対応したシートを印刷するマクロです。 win7の時は普通に動いていたんですがwin10になってからインデックスが有効範囲にありません的なメッセージが出て動かなくなりました。 デバッグで一行づつ実行すると何事もなく動作するのですが何が原因か分かる人がいましたらご教授の程よろしくお願いいたします。
回答: こんばんは、 >デバッグで一行づつ実行すると何事もなく動作する osバージョン変更に伴いofficeに不具合が発生した可能性も捨てられません。 この場合、officeの修復などを実行してみてください。(簡単な修復から再インストールまでいくつか方法があります) os,officeに問題がない場合は、goouserラックさんの回答にあるように、vbaコードの問題と思います(示されているものならば) ただ、この条件で今までエラーが返らなかった事には、疑問もありますが。。 示されているvbaコードには明らかに対策が必要な部分がありますので、そのためエラーが返る可能性があります。 (今回の不具合がそこにあるとは断言できませんが) >if cells(i,1).value <> "" then a列対象セル空白でなければ、、です。 これだけでは、d列対象セルが空白でも(又は何が入っていても)実行されてしまいますね。 まあ、詳しい表組み参照式など分かりませんので断言できませんが、コードだけで判断するに、 最低でも下記の様にエラー対策をするべきです。 if cells(i,1).value <> "" and cells(i,4).value <> "" then また、検証が必要な事として、シート自体をvbaで作成している場合、そのコードでd列への出力部分での問題の可能性もあります。 もっとも、型やシートなどを省略されているので、投稿用に走り書きしたのかも知れませんが、 コードの対策、ダメならofficeの修復、新規ブックに移すなどなど、、不具合を確認しながら、対策(原因)を切り分けて進めてみてはいかがでしょう。