Excelに書き込む時に背景色を変更したい

お世話になっております。
Excelに書き込む時に、どこに書き込んだか分かるように背景色を変更したいのですが可能でしょうか?
過去のトピックを見る限り、そういったアクティビティはなさそうでしたが、何か方法があれば教えていただきたいです。

こんにちは

セルを書式設定アクティビティの塗りつぶしの項目で実現できると思います。

データテーブルが書き込まれたセルを指定するにはどのようにすればよいでしょうか?
データテーブルを書きこみアクティビティの次にセルを書式設定を入れていますが、ソースをどのように設定すればよいのかが分かりません。

あらかじめ書き込むDataTableのサイズを把握しておいて、書き込む始点と、サイズから、書式を変更する範囲を生成する必要があると思います。

サイズというのは範囲という認識で合っていますか?
例えばExcelのA1~A5のようなことでしょうか?

DataTableのサイズなので、行数と列数です。
これと始点のセルアドレスから例えばA1:C5のような範囲文字列を生成する必要があるかと思います。

教えていただいたのは添付画像のようなことで合っていますか?

この場合、この列に背景色がついてしまうんですが、1つ前の処理でデータテーブルを書き込んだセルだけ指定するのはどうすればよいでしょうか?

上記からだけですと実現したいことがわかりませんので、
ダミーデータでも良いので、どのようなデータテーブルがあり、それの書き込み先はどこで、書き込んだ結果どのように着色したいのかを具体的に図などを用いて共有いただくと良いかと思います。

こちらの添付画像のように、AExcelのL列とBExcelのJ列を紐づけて、AのF列(納品年月日)をBのExcelのS列(その他)に転記します。転記した際にその箇所が分かるように画像のように、転記した箇所だけを黄色で塗りつぶす処理をしたいです。
以前コミュニティで質問した時にいただいたサンプルをそのまま使わせていただきますが、今はセルに書き込みの次にセルを書式設定のアクティビティを入れて今回の質問の背景色の変更を実現しようとしています。

Sample20241226-2.zip (736.1 KB)

このケースは色を変更する行番号をあわせて保持して、それを元に書式設定をする必要があります
例えば以下になります

Sample20241226-2v2.zip (575.4 KB)

ありがとうございます。
こちらInvoke Codeですが、空白がある場合や色が付いている場合にエラーになるようなことはありますか?
Invoke Code: Exception has been thrown by the target of an invocation.
とエラーが出てしまいました。
Bのファイルは正常に動作しますが、Cのファイルはエラーになります。
最初はデータ量が多いのかなと思いましたが、色々試してみて235~240行の色がついている部分を消すと動くのかなと思いました。
6ce2fe1c9c143586efe2dd13a50de7a5b261cb38.zip (639.9 KB)

こんにちは

今プロジェクトの内容を確認できないので、以下確認いただきたいのですが、デバッグ実行でエラー発生時にワークフローが停止すると思いますが、その時にLocalsパネルにある$exceptionDetailsの内容を共有いただけないでしょうか?

ローカル値がこのようになっています。

RemoteException wrapping System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> RemoteException wrapping System.InvalidCastException: Conversion from type ‘DBNull’ to type ‘Integer’ is not valid.
at Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(Object Value)
at UiPathCodeRunner_398565d6f71246d39dba82a12447abca._Closure$__0-0._Lambda$__0(DataRow r)
at System.Collections.Generic.List1.ForEach(Action1 action)
at UiPathCodeRunner_398565d6f71246d39dba82a12447abca.Run(DataTable dt,
Dictionary2 dict, List1 listIndex)
at System.RuntimeMethodHandle.InvokeMethod(Object target,
Void** arguments,
Signature sig,
Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj,
Span1 copyOfArgs, BindingFlags invokeAttr) --- End of inner exception stack trace --- at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span1 copyOfArgs,
BindingFlags invokeAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj,
BindingFlags invokeAttr,
Binder binder,
Object parameters,
CultureInfo culture)
at System.RuntimeType.InvokeMember(String name,
BindingFlags bindingFlags,
Binder binder,
Object target,
Object providedArgs,
ParameterModifier modifiers,
CultureInfo culture,
String namedParams)
at System.Type.InvokeMember(String name,
BindingFlags invokeAttr,
Binder binder,
Object target,
Object args)
at UiPath.Activities.System.Utilities.InvokeCode.CompilerRunner.Run(Object args)
at UiPath.Activities.System.Utilities.InvokeCode.NetCodeInvoker.Run(String userCode,
List1 inArgs, IEnumerable1 imps,
Object args)
at UiPath.Core.Activities.InvokeCode.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance,
ActivityExecutor executor,
BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor,
BookmarkManager bookmarkManager,
Location resultLocation)

こちらですね。数値ではなくDBNull値(空欄?)があるのではないかと思います。
おそらく背景色変更の問題でなく、突合の処理でこのような値の除外ロジックが必要になると思います。

ありがとうございます。
それはどこにどのような処理を入れれば良いでしょうか?
エラー発生時に実行を継続を継続をtrueにするとかでしょうか?

実際のデータが無いので未テストですがInvokeCode内のIf の部分を、例えば以下の様にしてみてください。

    If  r("契約連番") isnot Nothing AndAlso Int32.TryParse(r("契約連番").ToString, Nothing) AndAlso  dict.ContainsKey(CInt(r("契約連番"))) Then

ありがとうございます。
エラーなく動きました。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.