UIPath初心者のボクが使っててハマった点をメモしておくよ😰😰😰
エクセル関係
同じようなアクティビティが2系統ある!
問題:
たとえば「セルを読み込み」を見てみると、2種類あるよ😱😱😱 どっちを使えばいいのー❗❓
対処方法:
「ワークブック」の下にある「セルを読み込み (ReadCell)」は、エクセルがインストールされていない環境でも使えるようだよ📗📊 一方、「Excel」の下にある「セルを読み込み (ExcelReadCell)」は、エクセルのインストールが必要だよ📇📝 通常の利用であれば、アクティビティの英語名の頭に「Excel」がついている方を使おう👌😘✨
開いたエクセルは必ず閉じてしまう!
問題:
「Excelアプリケーションスコープ (ExcelApplicationScope)」で開いたエクセルファイルは、スコープが終わると必ず閉じてしまい開いたままにできない😰😰💦💦
対処方法:
あらかじめ「プロセスを開始」で引数に同じエクセルファイルを指定して開いた状態で、さらに「Excelアプリケーションスコープ」を使ってエクセルファイルを開いておくと、「Excelアプリケーションスコープ」が終了してもファイルが閉じないよ👌😘✨
フツーにセルを読むとエラーが出る!
問題:
「セルを読み込み (ExcelReadCell)」でセルを読み込んで変数に出力しようとすると、以下のエラーが出てしばらくハマった😰
セルを読み込み: StringConverter を System.Double から変換できません。
原因は、出力結果を文字列変数に出力していて、読もうとしていたセルが表向きは整数だったけど中身の値に端数が含まれていたこと💦💦
対処方法:
「セルを読み込み (ExcelReadCell)」の「表示形式を保持」のオプションをONにしておくと、常にセルに表示される書式そのままで文字列として変数に出力されるので、エラーが出ない👌😘✨
もしくは格納する変数型をGenericValueにする🤔🤔
セルに小数を書き込んでもセル上では整数になってしまう
問題:
「セルに書き込み (ExcelWriteCell)」で小数「1.1」を書き込んでも、エクセルのセル上では
「1」と表示されてしまう🤔🤔💦
対処方法:
これはエクセルに書き込んだセルの表示形式に沿った見え方になってしまうせいだよ💦💦 エクセルの表示形式を操るUIPathのアクティビティはないので、必要であればあらかじめ手で設定しておくか、キーボードショートカット等で表示形式を設定してね👌😘✨
置換が意外とメンドウ!あいまい検索も!
Excelブック内での文字列検索は「範囲内で検索 (ExcelLookUpRange)」を使うんだけど、このアクティビティは指定した「範囲」 (省略可能)で指定した「値」を検索して、最初のセルのアドレスを「結果」に文字列として返すよ🤔🤔
ただ、そうすると指定した範囲内のすべての値を検索/置換するのに、このアクティビティだけでは対応できないんだ😰💦
そうすると、たとえば「A1:G10」の範囲で検索置換をしようとすると、行と列のループ (「繰り返し (While)」)を2重に回して、行数を1から10まで、列名をAからGまで、とかで繰り返し処理を作る必要があるネ🤔🤔 プログラミングができないと難しい...😰😰😰😰😰
あと、エクセル本体では「大文字と小文字を区別する」「セル内容が完全に同一であるものを検索する」「半角と全角を区別する」があるけど、これを「範囲内で検索 (ExcelLookUpRange)」で使いたい場合はメンドウ...😰😰😰😰😰「範囲内で検索 (ExcelLookUpRange)」は、表示形式で表示されている文字ではなく、エクセルのセル内の「真の値」(セルを選択したときに数式バーに表示される値)に部分一致する最初のセル(大文字小文字を区別しない、半角/全角は区別する)を返すのだけれど、それ以外の方法を試そうとするとプログラミングが必要だネ🤔🤔