6

WinActorでExcelファイルを加工する際、ウィンドウ識別名で苦労します。
ウィンドウ識別名がファイル名で変化するためです。

対策として、ウィンドウ識別名の緩和です。
多いのが「【.xlsx - Excel】で終わる」、「【.xlsx】を含む」だと思います。

この場合、複数のファイルを開いていると、どのファイルをターゲットにするか予想ができず、誤作動することがあります。
回避するために、ファイルを閉じたり開いたりしながら、ファイルを一つにして動作させていました。
これだと誤作動しませんが、遅いしプログラムも面倒です。

解決案
読込んだ直後に作業用ファイル名に変更する。

どんなファイルでも構いません。
読込んだ直後に作業ファイル名で保存します。

昔、Basicプログラムではテンポラリファイルと呼んで「$$$」で始まるファイルを利用していました。
なので、次のようなファイル名で保存し、ウィンドウ識別名を固定しています。

変数       ファイル名      ウィンドウ識別名
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
作業$$一時$$   D:\$$$-一時.xlsx   タイトル_$$$-一時.xlsx
作業$$作業$$   D:\$$$-作業.xlsx   タイトル_$$$-作業.xlsx
作業$$読込$$   D:\$$$-読込.xlsx   タイトル_$$$-読込.xlsx
作業$$出力$$   D:\$$$-出力.xlsx   タイトル_$$$-出力.xlsx
作業$$マクロ$$  D:\$$$-マクロ.xlsm  タイトル_$$$-マクロ.xlsm
作業$$一覧$$   D:\$$$-一覧.csv    タイトル_$$$-一覧.csv

これでファイルを幾つ開いても、指定したファイルをターゲットにできます。

エミュレーションもよく使うものはウインドウ識別名毎に登録しています。
「→(一時)」 「Enter(作業)」 「Ctrl+C(読込)」 「Ctrl+V(出力)」

ライブラリに「一時」、「作業」、「読込」のようにフォルダを作成し、ウィンドウ識別名毎に登録しています。
指定のウィンドウ識別名用のエミュレーションになるので、加工せずに利用できます。

Excelファイルに目的の加工を行った後、作成したいファイル名で保存します。
プログラムを終了する際、ファイル削除で「D:\$$$*.*」で全ての作業ファイルを削除して終了です。

こんな方法を紹介させてもらいました。
良ければ、皆さまもご利用下さい。

スクリプト探究者 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。