UiPath Excelのシートの最終行を取得する方法
この記事ではUiPathでExcelシートの
最後の行数を取得する方法を紹介します。
手順
繰り返しで判定する手もありますが、
手間が大きいので今回はマクロを併用します。
(マクロは作成済みで掲載しています)
まずExcel アプリケーションスコープを設置し、
最終行を取得したいブックをパスに指定します。
このブックはマクロ有効ブック(xlsm)でなくて構いません。
そしてVBA の呼び出しを中に設置します。
![Excel アプリケーションスコープを設置し、その中にVBAの呼び出しを設置](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-27.png)
そして変数を用意します。
VBA の呼び出しから結果を受け取るには
Object型である必要があります。
よってObject型の変数とInt32型の変数を用意します。
![変数設定](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-29.png)
VBA の呼び出しはこのようにプロパティ設定をします。
マクロは下記ファイルを利用します。
中身はこのようになっています。
Function LastRow(sheetName as string) as Integer
LastRow= Worksheets(sheetName).UsedRange.Rows.Count
End Function
プロパティ | 設定値 |
---|---|
エントリメソッドのパラメーター | 最終行を取得するシート名を指定します。 コレクション(IEnumerable)で指定する必要があるため 変数を用意するか、 {"シート名"}のような形になります。 |
エントリメソッド名 | "LastRow"を指定します。 |
コードファイルのパス | ダウンロードして解凍した LastRow.basを指定します。 |
出力値 | Object型変数を指定します。 (今回の例では「結果受取」) ここに最終行が格納されます。 |
![VBAの呼び出しプロパティの設定例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-81.png)
最後にObject型の「結果受取」変数を
Int32型に変換(キャスト)し
「最終行」変数に格納します。
それには代入を使用し、下のように設定します。
左辺値(To)にはInt32型の変数を指定します。
右辺値(Value)にはこのように指定します。
CType(結果受取,Integer)
![Int32型に変換するシーケンスと代入のプロパティ](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-30.png)
今回の下のシートに対して使用します。
![サンプルのシート](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-26.png)
B列の11行目が最終行のため
11が結果として取得されます。
(何もない9行目で止まることはありません)
![最終行の表示結果](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/02/image-25.png)