過去の個人的備忘録は↓コチラに。(※見なくても特に支障はないです。)
https://qiita.com/narinari75/items/3a8c9861c5d02cb01b8a
#1.Messageboxを吹き出し形にする
「Callout」という、任意の場所に吹き出し型のMessageBoxを出現させるアクティビティがある。
さらにタイマー機能も搭載されており、「○秒後に自動で閉じる」という設定も可能。
#2.OpenApplicationで一気飛び
例えばエクスプローラーを起動させる時、「OpenApplication」のプロパティ内の「Arguments」に、フォルダパスを入力して実行すると、最初からそのパスに居る状態でエクスプローラーが開く。
また、Argumentsにファイルパスを入力すれば実行時に開くため、ワードやパワポ等を開きたい時にも使える。
#3.StrConv構文による文字の変換
StrConv構文は、文字をひらがな・カタカナ・半角・全角などに変換する事ができる。
●全角文字→半角文字
【StrConv(全角文字, Microsoft.VisualBasic.VbStrConv.Narrow,&H411)】
●半角文字→全角文字
【StrConv(半角文字, Microsoft.VisualBasic.VbStrConv.Wide,&H411)】
●カタカナ→ひらがな
【StrConv(全角カナ, Microsoft.VisualBasic.VbStrConv.Hiragana,&H411)】
●各単語の先頭文字を大文字に変換
【StrConv(英文字, Microsoft.VisualBasic.VbStrConv.ProperCase,&H411)】
●小文字→大文字
【StrConv(小文字, Microsoft.VisualBasic.VbStrConv.Uppercase,&H411)】
#4.任意の桁数に変換
桁数変換の構文は、
【文字型.PadLeft(設定する文字数,"左詰めで書きたい一文字"c)】
例えば「1→0001」に変換させたい場合は
【"1".PadLeft(4,"0"c)】(※「c」は決まり文句のようなもので、これを記載しないとエラーになる)
また、桁区切りのカンマを含めた文字列にする場合は
【数値型.ToString("#,###”)】
例:1234567.ToString(“#,###”) → 1,234,567
#5.Split構文で文字を配列にする
Split構文を使うと、1つの文字列型を配列型に変換することができる。
例えば「千葉・滋賀・佐賀」という文字を「・」で区切りたい場合は
【”千葉・滋賀・佐賀”.Split(“・”c)】 → {“千葉”,”滋賀”,”佐賀”}
index指定による要素取得も可能。
【”千葉・滋賀・佐賀”.Split(“・”c)(0)】 → “千葉”
また、メモ帳を読み込んだ後等で、改行ごとに文字を分けたい場合は
【変数.Split({vbcrlf,environment.NewLine},StringSplitOptions.none)】
さらに、区切り文字を複数指定する事も可能。
例えば「①A②B③C」という文字を、「②」と「③」で区切りたい場合は
【”①A②B③C”.Split({“②”,“③"},StringSplitOptions.none)】 → {"①A ", “B", “C”}
#6.日付と関連する構文
・Datetime.Parse(“文字列”)
→文字列をDatetime型に変換することができる。
・IsDate(“文字列”)
→True(=その文字は日付型に変換可能)
→False(=その文字は日付型に変換不可)
・Date.Parse(和暦, New System.Globalization.CultureInfo("ja-JP"))
→和暦を西暦に変換することができる。
・Math.Abs(CType(DateDiff("d",日付①,日付②),Integer))
→日付①と日付②の差分日付を算出する。
・Assignアクティビティにて
左辺:System.Threading.Thread.CurrentThread.CurrentCulture
右辺:New System.Globalization.CultureInfo("ja-JP")
→曜日を英語表記から日本語表記に変換する。
#7.データテーブル内の特定行を削除する
例えば、下図のデータテーブルから「名前:★」の行を削除してからoutputしたい場合…
ForEachRowで削除しようとすると、エラーが発生します。
そこで、ForEachを使って下記のように設定すれば、行の削除が出来ます。
#8.104万行以上のデータを…
エクセルの最大行数は1048575行となっており、仮にそれ以上のデータが含まれていたとしても、画面上には表示されません。
では、そんな大容量なデータをUiPathは読み込めるのか?
答えは「ReadCSVならOK、ReadRangeならNG」です。
例えば120万行のデータがあるCSVファイルを読み込み、それをRows.Countすると
ReadCSV→1200000
ReadRange→1048575
という結果になります。
#9.TooLargeエラー
「よし、ワークフロー完成したぞ!それじゃあパブリッシュ~」と思い、パブリッシュボタンを押すと…
「Too Large」エラーが発生!
え、でもMain.xamlはたったの126KBだよ?
…はい、実は
「パブリッシュファイルのサイズ=Main.xamlを含めた、対象ワークフローで使用する全ファイルの容量」
となっています。
したがって、上記のTooLargeは「Main.xamlに対して」ではなく、
「Main.xamlを含むフォルダに対して」のエラーとなっています。
というわけで、画像内にある120071KBのデカいデータをフォルダ内から削除してあげれば解決します!
#10.フィルタ後のデータが…
DataTableに対して、FilterDataTableを使ってフィルタリングする時、「フィルタリングをした後にデータがあるか?」と確認するかと思います。
では、「フィルタリングをする前にデータがあるか?」の確認をしたい時…
「.AsEnumerable.Any」という構文が使えます。