0

作成して、動作することも確認した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.Delete

    Set 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です。

anothersolution 回答した質問
回答とコメントは、会員登録(無料)で閲覧できるようになります。