SharePoint上のExcelにアタッチする方法

SharePoint上のExcelを開きたいのですが、Excel Application ScopeはURI/URLをサポートしていないので、例外となり開けません。何か代替の方法はないでしょうか?
Attach WindowのOutputで得られるWindowオブジェクトからExcel Application ScopeのExistingWorkbookに渡せるWindowからWorkbookApplicationに変換する方法でも構いません。

1 Like

こんにちは

ダウンロードしてからローカル側で開く方法では問題ありますか?
排他制御しながら編集・更新もしたいのであれば、SharePointのチェックイン・チェックアウト機能を組み合わせる手もあるかと思います。

コメント有難う御座います。

やっぱり、ダウンロードしてからの方法しかないですかね。
今の時点だとURL/URIだけがわかっていて、直接SharePointが見えないので困っていました。

こんにちは

かなり環境に依存しますが、特にイントラネット内のアクセス等でCIFSがreachable等が条件になると思いますが、URL表現をUNC表現に変更してもアクセスできる場合があります。
例: http://example.com/sites/hoge/hoge.xlsx
→ ¥¥example.com¥sites¥hoge¥hoge.xlsx
(円マーク(バックスラッシュ)がエスケープされるので全角にしています。)

これならUiPathのexcel関連アクティビティからもアクセスできるかもしれません。

情報を取得するだけでよいならHTTP Requestアクティビティでダウンロードするのが手軽かと思います。

その他のワークアラウンド案としては、手元のURLから大元のドキュメントライブラリのページを特定してIEでアクセスしてチェックアウト→ダウンロード→更新→アップロード→チェックインを行う感じでしょうか。
(URLからファイル名を削除するだけで大元のライブラリのページに行けるケースも多いと思います。)

あけましておめでとうございます。
アドバイス有難う御座います。(確認、お礼が遅くなってすみません)

教えて頂いた方法で対応できるか試してみようと思います。
UNCという言い方があるんですね。(知りませんでした)

ちなみにご存知でしたら教えていただきたいのですが、
今のUiPathの機能ではパスが決まっていないとExcel Application Scopeを作ることは出来ない
という認識で正しいでしょうか。(すでに開いていてExcelプロセスがあっても)

よろしくお願いします。

こんにちは

当方ユーザーのため内部構造に熟知しているわけではありませんが、Excel Application ScopeはOffice Primary Interop Assembly (PIA)を利用しているため、少なくともWindowハンドルとかそちらの世界とは異なる仕組みで動作していると思います。(いわゆるCOMの世界)

C#やVB.netなどからでは、System.Runtime.InteropServices.Marshal.GetActiveObject を用いてすでに開いているEXCELをPIA経由でアクセスすることはできますが、UiPathの Excel Application Scopeでは独自のクラスを用いている等の制約から、こちらの方法も厳しそうに思えます。(頑張ればできるのかもしれませんが....)

以上から、あくまで私見になりますが、現時点ではExcel Application Scopeにはファイルパスが必要ということになるのではと思います。

本来C#などからは、少なくとも最近のPIA経由での呼び出しは、URLでの読み込みもできるのですが、UiPathの実装はそれに渡す手前でURL形式を弾いているように思えますので、将来的にこのあたりが改善(?)されればURLもハンドリングできるようになるのではと思います。

コメント有難う御座います。
教えて頂いた内容大変参考になりました。

頂いた内容を元にもう少し調べてみようと思いますが、基本的には難しそうですね。
(出来たとしてもかなり汎用的でないものになりそうですし)

基本は製品がURIの入力をサポートするのを期待しようと思います。

色々回答頂き有難う御座いました。