手動だと実行されるマクロがWinActorで実行すると無視される
作成して、動作することも確認したVBAがWinActorから「Excel操作(マクロ実行)」機能で実行すると動作しないので困っています。
マクロの内容は、以下のように途中で空白行があったら削除するというものです(storeSheetsのシート名は適当に入れていますが、実際は定数で指定しています)。
Sub deleteBlanks() ' 空白行削除
Dim storeSheets As Variant
Dim storeSheet As Variant
storeSheets = Array(sheet1 , sheet2 , _
sheet3, sheet4)For Each storeSheet In storeSheets
Dim storeWorksheet As Object
Set storeWorksheet = Sheets(storeSheet)On Error Resume Next
storeWorksheet.Range("A4:A500").SpecialCells(xlCellTypeBlanks).EntireRow.DeleteSet storeWorksheet = Nothing
Next
End Sub
以前は上記のプロシージャをメインプロシージャの処理の後段に組み込んで、メインプロシージャを手動で実行していてうまくいっていたのですが、
WinActorからメインプロシージャを実行するとこの部分が無視されるようになりました。
このプロシージャだけ切り離してWinActorから実行しても、やはり無視されます。
どのような原因が考えられるでしょうか?
追記:
storeWorksheet.Range("A4:A500").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
の代わりに以下のような記述を実行してみた結果
- Msgbox "hoge" Excel実行 WAともにメッセージボックスが表示される
- storeWorksheet.Parent.Name Excel実行 WAともに同じファイル名が表示される
- storeWorksheet.Range("A4:A500").SpecialCells(xlCellTypeBlanks).Delete Excelから実行でA列の空白セルを削除して上詰め、WAだと無視される。
- storeWorksheet.Range("A4").EntireRow.Delete Excelから実行で4行目を削除して上詰め、WAだと無視
- storeWorksheet.Range("A4").EntireRow.Clear Excelから実行で4行目をクリアする、WAだと無視
EntireRowとSpecialCellsメソッドを書くと無視されているように見えます。
これは前段の処理に組み込んでも独立して実行させても同様です
WinActorのバージョンは7.0.2です。