Excelワークブックの排他制御

いつもありがとうございます。

共有フォルダ上にあるExcelワークブックを編集したいと思います。

Excelのアプリケーションで行われるように、ワークブックを開いたときにロック取得、
閉じるとロック解除、のようなことは実現できないでしょうか?

Excel Application Scope では、他人がロックしていてもお構いなしにワークブックを開
き、結果は別ファイルに保存されてしまいます。

Excel Application Scope でないアクティビティを使用すると、その都度のロック確認に
なり、処理の途中でワークブックの内容が変化する可能性があり、要件を満たしません。

こちらで試したこと

1.Open ApplicationまたはStart Processで目的のワークブックを開き、Excel
Application Scope で編集
→別ファイルに保存されました。

2.Open ApplicationまたはStart Processで目的のワークブックを開き、Excel
Application Scope でないアクティビティで編集
→エラーになりました。

3.手作業で目的のワークブックを開いておき、Excel Application Scope で編集
→うまくいきました。

ほかに方法がない場合は3が解決策になりますが、1と3の結果がなぜ違うのか疑問に感
じます。

よろしくお願いします。

1 Like

In the properties of Excel Application Scope, uncheck the following option -

Screenshot 2019-06-14 at 1.18.40 PM.png

Regards,
Karthik Byggari

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

つい先ほど「解決」と書き込んでしまったのですが、誤りでした。

新しいファイルの作成 → Off
自動保存 → Off

にしたうえで、

1.AパソコンでNASのワークブックを開く。
2.BパソコンのExcel Application Scope で1と同じワークブックを開き、内容を編集。
3.BパソコンのExcel Application Scope で「ワークブックを保存」アクティビティを
呼び出し。

以上の結果、Bパソコンのドキュメントフォルダにワークブックが保存されました。

Excel Application Scope でワークブックを開いている間、ロックがかかることは分かっ
たのでそれは良いのですが、目的のワークブックに上書きされないことがあるので、注意
が必要だと思いました。

目的のワークブックに上書きされたかの確認は必須で、その方法はExcel Application
Scope終了後にワークブックの内容を検証する。こういうことが必要なんでしょうか。