Excelで各種加工する際にウインドウ識別名を指定し誤作動を防止する方法のご紹介
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:\$$$*.*」で全ての作業ファイルを削除して終了です。
こんな方法を紹介させてもらいました。
良ければ、皆さまもご利用下さい。