Excelセル値のnullの確認

excelシートにnullがある場合を確認するために
cellの値をread cellで読み、outputに変数を設定しました。
その変数がnullか確認するためにif文を用いて、
String.IsNullOrEmpty(A1)
A1 変数名=cell値としました。
変数のタイプですが、genericvalueでないと値の確認ができませんでした。
excelでは数値ですが、uipathからみると1つのobjectと聞いたことがあります。

excelセル値のnull確認の方法はこれでよろしいでしょうか。
ご教示いただければと思います。

試しましたか

String.IsNullOrEmpty(CellValue) or String.IsNullOrWhiteSpace(CellValue)

Thanks,
Prankur

1 Like

Thank you.
I verified what I created by myself.
String.IsNullOrEmpty (variable)
The variable is read cell output
Values could not be checked unless the variable’s type was not genericvalue.

Taught me
String.IsNullOrEmpty (CellValue) or String.IsNullOrWhiteSpace (CellValue)
Even the type of variable was genericvalue.

String.IsNullOrWhiteSpace (CellValue)
It was helpful.

I thought that it is not necessary to stick to the type of variable when checking.

null2.xaml (9.0 KB)

GenericValueだと少し悩ましいのですが、

Object.Equals(Nothing, GenericValue型変数)

で、Nullかどうかの確実な判定ができます。
(Object.Equalsを使った方法は、GenericValueでなくても大凡の変数でチェックに使えます)

Object.Equals(Nothing, GenericValue型変数) Or GenericValue型変数.ToString().Equals(String.Empty)

みたいな形でやると判定が確実かもしれません。

1 Like

ありがとうございます。
1点確認したいことがございます。
excelでは、nullと""は同一と考えてよいでしょうか。
過去にデータベースで、nullと””を一緒にチェックしたことがあります。
””がemptyと同一でしょうか。
ご教示いただければと思います。

実はこれは凄く難しい、というかUiPathの仕様として公表されてない部分なんですよね。
Read RangeにせよRead Cellにせよ、「当該セルに値が設定されていなかったときに、""になるのかnullになるのか」は明記されてません。あるいは細かい点として、たとえばそのセルのExcel側の書式設定がどうなっているかでも変わる可能性があります。

なので、とりあえず将来的にUiPathの動作が変わる可能性も想定して、「Nullか、そうでなければ文字列で""か」みたいなチェックにしておくと安心じゃないかな、と思います。

1 Like