vbaの配列って、横に入っている。縦にしたいとき。

 

Sub 配列テスト1()

    Dim aryY(4) As String
    Dim i As Integer
    Dim msr As VbMsgBoxResult
        
    i = 0
    Range("A1").Select

    Do While ActiveCell.Value <> ""

        aryY(i) = ActiveCell.Value
        msr = MsgBox(aryY(i) & "編集しますか?", vbYesNo)
            If msr = vbNo Then

                aryY(i) = "OK"

            End If

        ActiveCell.Offset(1, 0).Select
        i = i + 1

    Loop
   
    
    Range("B1:B5") = WorksheetFunction.Transpose(aryY)

    

    
End Sub

ここ参考にした。↓

zñðZÉêÅãü·éFExcel VBAb¦øeNjbNbExcel VBAðwÔÈçmoug

【RPA】UiPath EXCEL読み込みとWebアプリ自動処理の練習

※できるUiPathの練習

やりたいこと

 営業からExcelで経費を申請してもらったデータを読み込んで業務アプリに登録する。業務アプリが発行したコードを読み取ってExcel に追加して保存する。

手順

1. Excelのデータを読み込んで業務アプリを開く。

2.Excelから読み込んだデータを1行ずつ処理。

3.件名や金額などを自動的に入力する。

4.業務アプリが発行したコードを読み取ってExcel に追加する。

5.保存する。

手順詳細

1.Excelアプリケーションスコープ(ファイルパスをいれる)

 ①範囲を読み込むを実行の前に配置(出力の変数を設定する”transactions”)

 ②実行の中にブラウザーを開くを配置する("https://www.expense-demo.com/")

 ②-1 Doにクリックを配置する。

 ②-2webアプリのクリック先を指定する

2.  3.で行う、業務アプリが発行したコードを読み取ってExcel に追加するために、カウンターを設定する。

 ①クリックの下に続けて代入を配置("counter" = 2)

  ※1行目はヘッダーなので、2行目からカウントしてほしいため

 ②データテーブルの値を繰り返し処理でWeb に登録していく

 ②-1繰り返し(各行)を代入の下に配置する。(データテーブル各行)

  繰り返し(row)次のコレクションの各要素(transactions)

 ②-2本体にクリックを配置

 ②-3クリックの次に文字を入力を配置

 ②-4文字を入力の中のブラウザ内の要素を指定をクリックして、入力先を指定する。

  (種別を選択)

 ②-5入力したい文字を指定する。(row( 0).ToString)

  4-5を金額、備考と入力していく。ro(0~3)と変える。

 ※rowは配列だから、カッコの中は列を指定してあげる。 

 ③クリックを配置する。(登録をクリック設定)

4.業務アプリが発行したコードを読み取ってExcel に追加するために、

 「アンカーベース」を配置する。

①アンカーベースのアンカーに「要素を探す」を配置する。

②要素を探すの中でブラウザに要素を指定する。(コードラベル)

③アンカーベースの中のここにアクションアクティビティをドロップに、「テキストを取得」を配置する。

⓸取得したい文字列を指定する。(コード)

⓸-1取得したテキストの値を変数に格納。出力:transactionID

⓹アンカーベースの下に「1行を書き込み」配置する。

⓹-1Text:”code:”+transactionID

⑥「セルに書き込む」を配置する。

⑥-1("sheet1") (”E”+counter.ToStiring)  式(transavtionID.ToString)

⑦代入を配置する。(counterに1ふやす)

⑧クリックを配置する。(ブラウザ内の戻るをクリックする)

これを繰り返す。

5.ブラウザを閉じる

参考引用先    

www.uipath.com

【RPA】UiPath データテーブルを使って置換する

やりたいこと

csvファイルの項目(所属)の中から営業所と〇〇支店を全て「支店」に置き換える。

100件ごとにファイルを分ける。

手順

1.csvをデータテーブルに保存

2.条件は、保存したデータテーブルの項目(所属)の列から営業所と、支店を検索する。

3.Trueなら所属の列のセルに”支店”と置き換える。

4.100件以上データがあるなら、ファイルを分ける。

5.2ファイル目のデータテーブルを作成する。

6.100件目まで消して、保存する。

7.1ファイル目の101件目から以降を消す。

8.保存する。

 

 

手順詳細

1.csvを読み込みを配置 

エンコード【shift-jis UTF-8】なり設定する。

ファイルパス

出力 データテーブル 【dtb住所録】変数を登録 型はDataTable型

項目があるなら、先頭行をヘッダーにする。

2.繰り返し(データテーブルの各行)を配置

繰り返し【Row】次のコレクション内の各要素【dtb住所録】

3.条件分岐を配置

条件【Row.Item(”店名”).Tostring.contains("営業所") or  Row.Item("店名").Tostring.contains("支店")】

※containsは、含まれるっていう意味

Trueなら”支店”に置き換える。

代入を配置 左辺 【RowI.tem("店名")】     右辺【”支店”】

4.条件分岐を配置

条件 【dtb住所録.Rows.count > = 101】

trueなら2ファイル目から作成

5.データテーブルを構築を配置する

出力【dtb住所録2】変数

・代入を配置

左辺 dtb住所録2 右辺 dtb住所録.Copy

6.繰り返しコレクション要素を配置

繰り返し【item】次のコレクション内の各要素【Enuerable.Range(0,100)】

※Enuerable.Range(Int32,Int32)は、0行目から、100行目までを示す。

TypeArgument 【Int32】

7.本文にデータ削除を配置

8.csvを保存を配置

書き込み先ファイルにファイルパス

書き込み元に 【dtb住所録】ヘッダー含める。

 

9.1ファイル目を作る。

繰り返しの次のコレクション内の各要素は

【Enumerable.Range(101,dtb住所録.Rows.Count-102)】

5.6.7と同じようにする。

参考引用先    

【RPA】UiPath ファイルの存在を確認する

やりたいこと

ファイルが存在したら、指定のファイルをcopyして保存する。

手順

1.ファイルパスを変数に代入

2.ファイル名を変数に代入

3.パスの存在を確認

4.条件分岐

5.ファイルがあったなら、リネームしてcopy

6.ないなら、スロー

手順詳細

1.変数はstring

2.変数はstring

3.パスの種類をFileにする。1.2をくっ付ける。 

プロパティ

入力【変数名 + ”¥” + 変数名】

出力【boolPathExists】

4.分岐条件 boolPathExists = true (trueの時は、true省略できる)

5.trueならファイルをコピー

コピー元 【フォルダパスの変数名 + ”¥” + ファイルの変数名】

コピー先 【フォルダパスの変数名 + ”¥” + リネームしたファイル名】

6.Elseならスロー

プロパティ

条件【new Exception("ファイルがありません")】

参考引用先    

【UiPath】ファイル・フォルダの存在を確認する方法 - Economics Of TEC

トライ キャッチ (Try Catch)

パスの有無を確認において、アスタリスクを利用したファイル指定 - #9 by nguyendinhduc269 - フォーラム - UiPath Community Forum

ファイルが存在するか確認する | Uipath道場

 

【RPA】UiPath ワークフローファイルを呼び出して使う

やりたいこと

Mainから他のワークフローを呼び出した際、他のワークフロー(メッセージボックスを表示)にメッセージを

送る。他のワークフロー(メッセージボックスを表示)から、返事を返す。

Mainは、それを受け取り表示する。

※メッセージボックスを表示は、ワークフロー名

手順

1.Main側にワークフローの呼び出しを配置し、メッセージボックスを表示のフローへ出力する値を設定する。

2.呼び出し先フローを追加する。メッセージボックスを表示のワークフローを作る。

3.メッセージボックスを表示にMainから受け取った値を表示。

4.その返事をMainに返す。

5.メッセージボックスを表示から返ってきた値をメッセージボックスで表示。

 

手順詳細

1.シーケンスの中に「ワークフローからファイルを呼び出し」を追加する。

 

2.デザインタブのリボンの「新規」ボタンから「シーケンス」を選択する。

ワークフロー名を「メッセージボックスを表示」にする。(なんでもいいけど)

 

・メッセージボックスを追加する。(今は追加するだけ)

 

・手順1に戻って、ワークフローの呼び出しの中のワークフローファイルを、

「メッセージボックスを表示.xaml」を選択する。(1回上書き保存して、

 エラーなるから)引数をインポートをクリック。青で2が出ればOK。

 オレンジならエラー。

・プロパティの引数:(コレクション)の「・・・」をクリックして、

 入力引数:入力 String ”いい加減な仕事しないでください!”

 出力引数:出力 String Henji ←メッセージボックスを表示から返ってきた返事を

 入れる変数名

 変数を設定 Henji  String  シーケンス

 

3.メッセージボックスを表示のワークフローを選択しメッセージボックスを追加していたところに、Mainから渡されるメッセージを表示するために次を設定する。

 

・”『”+入力引数+”』を渡された”

・引数を設定する。入力引数:入力 string

                               出力引数:出力 string

 

4.Mainに返事を返すために、アクティビティから「代入」を追加する。

・左辺に出力引数 

・右辺に”承知しました”

 

5.メッセージボックスを表示のワークフローから返ってきた返事を表示するために

メッセージボックスを追加する。

・”『”+Henji+”』と返事がきました”

 

参考引用先    

ワークフロー開発実践入門 公式ガイドブック