コレクションデータをドロップダウンリストとしてExcelに貼り付ける

  Excel VBO

Blue Prism側のコレクションデータをExcelにドロップダウンリストとして貼り付ける方法を解説します。ポイントはRun Macroへ引数を渡す方法とExcel側のマクロです。

今回は、Yahoo!路線情報にて、検索結果の「出発地/到着地候補」のリストをExcelに貼り付けることにします。

image.png

方法

「出発地/到着地候補」のリストを取得する

「読み取り」ステージを使って、「出発地/到着地候補」のリストを取得します。
リストはコレクション変数に格納されます。

image.png

コレクションをカンマ区切りの文字列に変換する

コレクションをループで回し、テキスト型の変数にカンマ区切りで連結していきます。
例えば、「赤坂(東京都)駅,赤坂(福岡県)駅,赤坂(山梨県)駅,…」といった具合です。

image.png
image.png

末尾のカンマは除外しておきます。

image.png

MS Excel VBOを拡張する

既存のオブジェクトである「MS Excel VBO」の「Run Macro」では、先ほどのプロシージャに引数を渡せないので、「Run Macro」を拡張することにします。
拡張する際は、ベースの「MS Excel VBO」をコピーして別オブジェクト「MS Excel VBO – extend」を用意します。
その後、「Run Macro」をコピーし、「マクロ実行(引数あり)」ページを作成します。
ページ名を日本語にしているのは、拡張したページであることを分かりやすくするためです。

image.png

ブサイクなコードですが、今回はこれで良しとします(笑)
プロシージャに引数を最大3つまで渡せるようにします。

If arg1.Length <> 0 Then
  If arg2.Length <> 0 Then
    If arg3.Length <> 0 Then
      GetInstance(Handle).Run(Macro_Name, arg1, arg2, arg3)
    Else
      GetInstance(Handle).Run(Macro_Name, arg1, arg2)
    End If
  Else
    GetInstance(Handle).Run(Macro_Name, arg1)
  End If
Else
  GetInstance(Handle).Run(Macro_Name)
End If

入力パラメータを追加することを忘れずに。

Excelマクロを作る

ドロップダウンを作る&消すモジュールを作っておきます。

image.png
Option Explicit

Sub CreateDropDown(ByVal rng, ByVal list)
  Dim sheet As Worksheet
  Set sheet = Worksheets(1)

  With sheet.Range(rng).Validation
    .Delete
    .Add _
        Type:=xlValidateList, _
        Formula1:=list
  End With
End Sub

Sub DeleteDropDown(ByVal rng)
  Dim sheet As Worksheet
  Set sheet = Worksheets(1)

  With sheet.Range(rng).Validation
    .Delete
  End With
End Sub

マクロをキックするステージを用意する

アクションステージにて、「MS Excel VBO – extend」オブジェクトから「マクロ実行(引数あり)」を呼び出します。
入力パラメータは図のように設定します。

Macro Name:”CreateDropDown”
引数1:ドロップダウンを作るセル位置
引数2:経路候補リスト

image.png

実行結果

指定したセル位置に、出発地/到着地候補リストのドロップボックスができます。

image.png

LEAVE A COMMENT

CAPTCHA