UiPathの開発初心者の方が、よく悩まれるケースとして実行したい動作を式として書き表せない、という悩みがあります。
例えば下記の処理を行う場合、構文をどのように表記したらいいかがわからない、ということがあるではないでしょうか?
- フォルダ内のファイルを一括処理したい
- 取得した文字から一定の文字列のみ抽出したい
- 特定の文字列を含むファイル名のファイルだけ取得したい
インターネット上で調べてみると、どの記事にもプログラム言語が記載されており取り組むことに躊躇してしまう、応用の仕方がわからないといったことでお困りのこともあるかと思います。
そこで、本コンテンツではUiPathでよく使用するVB.NETの式や、応用方法、式がわからないときの調べ方をご紹介いたします。
目次
UiPathとVB.NET
VB.NETはプログラミング言語でありUiPathでもよく使用する
VBとは「Visual Basic(ビジュアルベーシック)」の略称で、マイクロソフト社によって開発・提供されたプログラミング言語です。
VBにオブジェクト指向の要素を加えつつ、「.NET Framework」に対応しているものが「VB.NET」と言われています。
VBとVB.NET はバージョンで区別されていて、Visual Basic 6.0まではVB、それ以降はVB.NETと呼ばれることが一般的になっています。
UiPathでは条件分岐の設定や、アクティビティに対しての設定をする際にVB.NETを使用します。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image.png)
よく使うVB.NETの式を紹介
実際にロボットを開発していく際に、使用するVB.NETの式を紹介します。
文字列に変換する
使用する式:.ToString
使用例:Excelのセルの値を読み込み、変数に格納する
構文:Excel.Sheet(“シート名”).Cell(“B”+iRow.ToString)
Excelに値を書き込む際によく使用します。
下記のような処理をする際は数字型で数を取得し、計算して処理します。
- セルの行数を取得し、インクリメントして行ごとに処理する
- 行の総数を取得し、総数分ループで処理する
数字型で行番号を取得している場合だと、そのままExcelへの書き込みができません。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-1.png)
Excelへ書き込みをしたい場合は数字型のiRowのみを文字列に変換することで、書き込むことができるようになります。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-2.png)
フォルダ内の各ファイルを処理する
使用する式:Directory.GetFiles()
使用例:該当のフォルダ内の各ファイルをループし、ファイルの値を取得する
構文:Directory.GetFiles(”ファイルパス”)
以下の画像だと、繰り返し処理の対象として「C:\演習8フォルダ」内の各ファイルを処理することができるようになります。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-3.png)
文字列に指定した値が含まれているか確認する
使用する式:.Contains()
使用例:If分岐で、文字列に対象の値が含まれる場合は変数をインクリメントする
構文:対象の文字列.Contains(”文字列”)
以下の画像だとsNameの中に「東証STD」という文字列が含まれているかを確認することができます。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-4.png)
上記でご紹介した式を組み合わせてフォルダ内で特定の文字列を含むファイルのみを処理する応用をご紹介します。
下記のファイルを順番に処理し、ファイル名に「不採用」を含む場合に条件分岐させます。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-5.png)
使用するアクション
- 繰り返し(コレクションの各要素)
項目のリストには処理したいフォルダを記載します。
今回ご紹介した「Directory.GetFiles()」を使用します。 - 条件分岐(if)
条件に、処理の条件を記載します。
「. Contains()」を使用してファイル名に指定の文字列を含むかどうかで条件分岐させます。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-6.png)
文字列から文字列を抽出する
使用する式:.Substring(,)
使用例:取得した文字列から一定数の文字列を抽出する
構文:Recruitment.Substring(抽出したい文字の直前までの文字数,取得したい長さ)
「社員番号_社員名.xlsx」ファイルから社員番号のみを取得したい場合などにはこの方法を利用することができます。
下記のファイルを順番に処理し、ファイル名から従業員番号のみ取得する方法をご紹介します。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-7.png)
使用するアクション
- 繰り返し(コレクションの各要素)
項目のリストには処理したいフォルダを記載します。
今回ご紹介した「Directory.GetFiles()」を使用します。 - ファイル情報を取得
ファイルパスに処理対象のファイルを記載します。
「.Substring(,)」を使用してファイル名から従業員番号のみ取得します。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-8.png)
わからないときの調べ方
UiPath公式の学習教材を見てみよう!
「UiPath VB.NET」と調べても、一覧のようなものはなかなか出てこないかと思います。
そのようなときに利用できる参考サイトと、調べ方をご紹介します。
UiPath Academy
UiPathが公式で提供している学習教材である、「UiPath Academy」を活用することで確実に正しく情報を獲得することができます。
以下のURLからUiPath Academyにアクセスすることができます。
特に学習プランの「RPA デベロッパー 基礎」は、RPA 開発能力をゼロから築きたい方向けのカリキュラムになっているので、学習プランの中で実際の使い方を基にVB.NETの式を学ぶことができます。
Qiitaで調べてみる
Qiitaとはエンジニアに関する知識を記録・共有するためのサービスで、多くのエンジニア達のナレッジが集まっています。
初心者向けに記載されている記事もありますので、「UiPath “困っていること”」で検索してみるのもおすすめの方法です。
また、わからないことがあった場合には質問をすることもできますので、自己学習におすすめです。
以下がQiitaのリンクです。良ければ活用してみてください。
式エディター
式エディターを活用することで、わからなくても式を書くことができます。
式エディターは対象アクティビティの「」アイコンから開けます
式エディター下部の「自然言語で式を記述します…」という欄に、条件を入力し右下の矢印を押下するとVB.NETの式に変換され、上部に変換されたVB.NETが表示されます。
例えば、「対象の変数(variabl1)に指定する文字(当選)が含まれているか」といった条件分岐の式を作成します。
「variabl1に”当選”が含まれる」と入力し、変換すると「variabl1.Contains(”当選”)」という式を自動で出力してくれます。
![](https://rpa.confidence-media.jp/wp-content/uploads/2024/06/image-9-447x1024.png)
式エディターで生成した式でうまくいかない場合は、生成した式を検索し、近しいものを実際に入力し動かして動作検証することも一つの方法です。
VB.NETは今回紹介した式以外にもたくさんの式があります。紹介したものはあくまで一部であり、使用できる式や使用方法は様々です。日々使った式を蓄えていき、その時に最適なものを選ぶことができる状態になればUiPathの開発が快適になります。
ただ学習するにはある程度の時間がかかることも確かなので、学習の時間をとるのが難しいとお考えの場合、弊社ではUiPathを使用した開発や研修のお手伝いも行っております。
この記事をご覧になられている方が抱えている課題や問題解決の一助になれるかもしれません。RPA自動化でなにかお困りのことがありましたら、是非お気軽に弊社までご相談ください。
ペネトレイター株式会社 小竹