1

お世話になります。

最近WinActorを使い始め、慣れないスクリプト等の扱いに苦戦しております。

明細形式のExcelデータに対し、特定の条件でオートフィルターをかけた後に可視セルとなっている明細のみを選択する操作を行いたいです。

既存のExcel系のライブラリ(Excel操作(範囲値削除))を編集して実装できないかと試行錯誤しているのですが、エラーが出てしまいます。

スクリプトの内容は以下になります。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(ここより上の部分は既存のスクリプトのままです)

' ====指定された範囲をクリップボードへコピー==================================================

scell = !開始セル!

On Error Resume Next
cnt = worksheet.range(scell).COUNT
On Error Goto 0

'指定された範囲が有効か確認
If cnt = "" Then
Err.Raise 1, "", "指定された範囲が無効です。"
End If

worksheet.range(scell).CurrentRegion.SpecialCells(xlCellTypeVisible).Select

(ここより下の部分は既存のスクリプトのままです)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

エラー

スクリプトの実行に失敗しました。

エラー番号:1004

内容:RangeクラスのSpecialCellsプロパティを取得できません。

試しにExcel上のvbaエディタでActiveSheet.range("A2").SpecialCells(xlCellTypeVisible).Select のように実行したところ

正常に動いていたのでvbsでも同様に動くかと思ったのですが。。。

SpecialCellsは使用できないのでしょうか原因がわからず困っております。

解決方法や何か試すべき事などご教授いただければ幸いです。どうぞよろしくお願いいたします。

ベストアンサーが解除されました

「Excelのコピペにおける不具合」に回答しておりますが、
.SpecialCells(12) とすることで可視セルのみを選択できます。
参考:
https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/range-specialcells-method-excel
_
記載されている「SpecialCells(xlCellTypeVisible)」はVBAでの記載となります。
WinActorで使用しているVbscriptでは、オプションをコード(数字)で記載する必要があります。
コードで記載していない場合はエラーとなります。
参考まで。

スクリプト探究者様
コメントありがとうございます。

教えて頂いた通りに設定することで、期待通りの動作をさせることができました。
参考に調べていたページがすべてVBAだったので不安だったのですが、やはりそのままではVBSでは動かないですね。

大変参考になり助かりました。ありがとうございます。

daichi00550様
悩まれていることは誰かが解決してきたことの可能性が多くあります。
困ったら投稿してみてください。
スクリプト関係であれば私より詳しい方が多いので
何かの糸口になる回答があると思います。