下村と申します。
Excelで分からないことがあり、質問させていただきたいと思います。
Excel 2013で、VBAのマクロを利用して帳票を作成しています。
以下の環境で実行すると、マクロの実行中に「Excelに問題が発生しました」というエラーになって
終了してしまいます。
エラーになる環境
Windows 7 32ビット
Excel 2013 (インストールのタイプはクイック実行) バージョン:15.0.4615.1001
同じものを別の環境で実行するとエラーにはならず、正常に動作します。
正常動作する環境
Windows 8.1 Pro 64ビット
Excel 2013 (インストールのタイプはMSI) バージョン:15.0.4615.1000
(因みに、Excel2003、2007、2010で実行してもエラーにはなりません)
マクロの中にメッセージボックスを埋め込んで調べたところ、オブジェクトの名前を変更している
ところでエラーになっていることがわかりました。
また、エラー箇所を特定するためにオブジェクトの名前を変更する前後にメッセージボックスを入れて
実行するとエラーにはならず、メッセージボックスを入れずに実行するとエラーになります。
実際のコードは以下のようなものです。
(前略 変数宣言などはしています。)
MsgBox "1"
For iCnt = 1 To Page_Count
MsgBox "1-" & iCnt
Sheets(Image_sheet & "_" & iCnt).Select
For Each sShape In Sheets(Image_sheet & "_" & iCnt).Shapes
If Mid$(sShape.Name, 1, 4) = "Oval" Then
idx = idx + 1
sShape.Select
Selection.Name = "Oval " & CStr(idx)
MsgBox Selection.Name
Selection.ShapeRange.Line.Visible = msoFalse
End If
Next
Next iCnt
MsgBox "2"
(後略)
やっていることは、複数のシートに存在するオブジェクトの名前を、「Oval」とつくもの
について1から振り直しているのですが、「MsgBox Selection.Name」があれば
正常に動作しますが、この行をなくすとエラーになります。
前述したように同じExcel2013であってもエラーになる環境、ならない環境があり
手詰まり状態です。
なにかアドバイスを頂ければ幸いです。
※モデレーター注 : タイトルを編集させていただきました。
編集前タイトル : Excel2013 環境によってエラーが発生する