エクセルの操作

excel

#1

お忙しいところ失礼いたします。

UiPathでのエクセルの操作についてご教授ください。

例えば、Aというファイルのエクセルから特定のデータを取得。
read cell
次に、取得したcellを、BというファイルのC列の空欄の行という指定はできますでしょうか?
※ファイルBは、表形式となっています。

毎回、空欄の場所が変わるので、そのたびにUiPathを修正する必要はないと思います。
何か方法はございますでしょうか?


#2

361oosugi さん

こんにちは。

ファイルBのC列を対象に、「空欄を探す」という処理をループで回して
発見した空欄のセルに read cell した値を設定すれば良いと思います。
ご検討下さい。


#3

別解として。

ExcelだからといってExcel操作の機能しか使っていけないわけではないので、このようなケースであれば、

Excel%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A31

ここをSelectorで引いて"C1"を入力し、その後、ショートカットキーで「Ctrl + ↓」→「↓」を送信します。

その上で、

Excel%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A32

ここに値をType Intoすることで値を更新する、という、人間の操作と同じ方法を使う手もあります。


#4

@Honoka
@nk_tecroom

ちなみに、エクセルマクロで空欄として使用する以下のプログラムは使用できないでしょうか?
A列の最終行の次のセルに挿入する。
n = Cells(Rows.Count,“A”).End(xlUp).Row + 1とAssignで代入し、
Write cell で、“A” & nとセルを指定する。

また、もし可能であれば、空欄を探す作業を繰り返すというループ作業の事例をxaml形式で頂くことは可能でしょうか?
単純にエクセルマクロであれば、マクロの記録を押せば、解決するとは思いますが。


#5

Excelマクロを実行する [Invoke VBA]というアクティビティがあるので、
これを使ってご記載のVBAコードを呼び出すという手はあります。

少し前に似たトピックがあるのでご参考になれば幸いです。

それから、
[ Cells(Rows.Count,“A”).End(xlUp).Row + 1 ] の部分を Assignアクティビティの右辺に直接入れる、というのはできないと思います。