Excelアドインについて

activities

#1

Excel Application Scope を使っていると、
アドインの有無によって度々エラーが出ます。

アドインが消せない状況下において、
とても不便なのでどうにかしたいと考えています。

UiPathのバージョンアップによって改善されるのか、
また別の方法で改善策があるのか、
アドインを消さずともExcel Application Scopeが使える解決策を、
ご教示お願い致します。


#2

アドインが必要であれば、実施環境の初期化として、アドイン設定処理を追加すれば解決できると考えます。
ちなみに、具体的にどういうエラーが出ますか?


#3

説明不足で申し訳ありません。
ご返信ありがとうございます。
アドインが消せないというのは、物理的にではなく、
会社の規則上入れなければならないという縛りがあるということです。

ちなみにエラーになるタイミングは、
「Excel Application Scope」内で「Get Workbook Sheet」を使った時です。
VB.netで"ExcelWorkbookScope.GetSheets.ToArray"でもダメでした。

エラー内容は以下です。

[エラー]
種類が一致しません。 (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
[詳細]
UiPath.Excel.ExcelException: 種類が一致しません。 (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH)) —> System.Runtime.InteropServices.COMException: 種類が一致しません。 (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
at UiPath.Excel.WorkbookApplication.InitializeCurrentWorkbook(WorkbookArguments workbookArguments, Workbooks workbooks)
at UiPath.Excel.WorkbookApplication.Initialize(WorkbookArguments args)
— End of inner exception stack trace —
at UiPath.Excel.WorkbookApplication.Initialize(WorkbookArguments args)
at UiPath.Excel.WorkbookApplication.Initialize(Application excelApp, WorkbookArguments args)
at UiPath.Excel.Activities.ExcelApplicationScope.Execute(NativeActivityContext context)
at System.Activities.NativeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

よろしくお願い致します。


#4

Excel Application Scope系のアクティビティを利用する際は、

  1. Excelのアドインを無効にしてからExcel Application Scope系アクティビティを利用する。
  2. アドインの機能を利用したり、もうExcel Application Scope系のアクティビティを使わないようになったら、Excelのアドインを有効に戻す。
    1,2の処理をUipathで行ってあげるくらいでしょうか。

アドインの有効/無効の方法

  1. ExcelをOpen Applicationで開く
  2. attach windowを利用してマウス操作を再現
    全てクリックで行ける。
    (ファイル->オプション->アドイン->管理(A);xxx アドイン)

有効/無効にする箇所はCheckアクティビティを利用してOptionsのActionでCheck/Uncheckで対応できます。


#5

ご返信ありがとうございます。
やはり手動でするときと同じように
アドインを無効にするしか方法はないのですね、、、

ちなみに入っているアドインはCOMアドインで
「Box for Office」というものですが、
不思議なもので、手動で無効にしても勝手に有効になります。

設定なのかも知れませんが、
UiPathアクティビティもBoxアドインも
近いうち改善されることを祈っています。


#6

@masse

こちらの環境【Version 2016.2】で問題なく、動きました。


#7

Dan_Shaoさん

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

実はこの現象100%起こるのではなく"たまに"発生します。
ちなみに私の環境は【2018.1.1】です。

前に2016バージョンを使用していた時期もありましたが、
その時はCOMアドインの有無が原因で明らかに
「Excel Application Scope」がエラーを起こしていました。(検証済)

COMアドインの種類にもよると思うのですが、
実装の仕方は間違っていないので、エラー回避方法がわからず悩んでいます。


#8

記憶が正しければ、このActivityはExcel2010・2013だと頻繁にエラーになっていた気がします。
アドインというよりはExcelのバージョン関連を疑ってみてください。


#9

Honokaさん

ご返答ありがとうございます。
Excelのバージョンによるものだったんですね。
対象のExcelはバージョン2010でした。

残念ながら別バージョンのExcelは入れられないとのことで
検証は出来ないのですが、
上記の理由でエラーが起こっている可能性が高いと
上には報告しようと思います。

情報提供ありがとうございました。