エクセルファイルの文頭に"~$"が付与されてしまう

※長文失礼します。↓↓↓
既に開いているエクセルファイル(中身を一部適当に編集しています)を開いた状態でロボを実行した場合、開いているファイルの閉じるボタンをクリックして保存するかしないかのダイアログを表示し、保存しないをチェックしてエクセルファイルを閉じるという処理を行いたいのすが、どうも開いているエクセルファイルの画面要素を取得する際、ファイル名の頭に自動で"~"が付与されてしまい、うまくセレクタを取得できません。この時当然のことながら実際に開かれているファイルと開こうとしているファイルは違うので、"他に同じファイル名を使用しているユーザーがいるので開けません(まぁ、わたくし本人なのですが。。)"といダイアログがでてきてしまい、ロボがエラーを投げて停止してしまいます(処理がうまくいかないときはエラーを投げるように製造しています)。 ここでお聞きしたいのはこの、あらかじめファイルが開かれているときにファイル名の先頭に"~"がつく事象をどのように解決すればよいでしょうか。
どなたか似たようなケースを経験したことがある方、もしくは答えが分かるかたいらっしゃいましたらご教示願います。
※ちなみに、エクスプローラーの隠しファイル設定は表示しないに設定済みです。

以上、長文になりましたが宜しくお願い致します。

EXCELを保存させずに終了したいということなら、EXCELのアプリケーションスコープで読み取り専用にチェック入れるではだめなんでしょうか?
編集はするけど保存しないというのはどういう状態なんでしょう・・
1)読み取り専用で開き
2)保存が必要かどうかを判断して
3)保存が必要な場合は改めて通常モードで開きなおす
とかのほうがよさそうに思えますが。

ご返答ありがとうございます。

>EXCELを保存させずに終了したいということなら、EXCELのアプリケーションスコープで読み取り専用にチェック入れるではだめなんでしょうか?
お客様から頂いているファイルのため、こちらではどうしようもない感じです。。
また、読み取り専用にしてしまうと、読み取り専用のチェックを外すという処理も必要になってくるので、それは避けたいと思っております。

>編集はするけど保存しないというのはどういう状態なんでしょう・・
これはあくまでも、単体テストの検証の一部として行っている(異常系)ものなので、本来であればエクセルはもともと開いていないのが正です。

読み取り専用にするという手段をお今回はご教示いただきありがとうございます。
今後の参考にさせていただきます。

すいません、誤字がありましたので修正します。
文中の"~“は”~$"のことです。
大変失礼いたしました。

EXCELファイルを読み取り専用にするのではなく
EXCELアプリケーションスコープアクティビティで読み取り専用のプロパティにチェックを入れるという意味になります。
これですと、読み取り専用でEXCELファイルを開くので、「保存せずに閉じる」と同じ意味になると思います。

1 Like

なるほど、、確かに読み取り専用にすると保存せずに閉じるにはなりますね。。
ただ、ここで行いたいのはエクセル開いた後に適当に編集し、そのあとに閉じるボタンを押すと保存しますかダイアログが表示されることの確認をするテストなので、読み取り専用にしてしまうとできなくなっちゃいます。。笑

今回の事象の原因としては、もともとファイル名をgetfileNameメソッドでファイル名を取得する際に、マッチ関数を使用してマッチするファイル名を取得していたがために起きた事象っぽいです。
なので、単純に"~$"がついている場合は、そこを切り取ってもう一度取得するように修正したらうまくいきました。

お忙しい中ご教示いただきありがとうございました。