MACROMANで関東西濃のお届け状況を自動取得!物流効率化を劇的に向上させる方法

RPAで西濃運輸の配達状況を獲得 プロジェクトN
この記事は約17分で読めます。

作成工程

step.1

西濃運輸さんのフローとサンプル用の問い合わせ番号.csvを用意します。
また、問い合わせ番号.csvはA列に10桁の問い合わせ番号をセットしています。

scene_001

step.2

まず、MACROMANを起動して下さい。

scene_002

step.3

MACROMANが起動したら、画面上の新規作成を押下して下さい。

scene_003

step.4

左側の「アクション」の中から「Excel」をクリック。
展開された中から「インスタンス」をクリック。
インスタンスの中から「Excelの開始」をクリック。
「Excelの開始」画面が表示されますので、そのまま「OK」ボタンをクリック。

scene_004

step.5

一覧に「Excelの開始」が追加されます。

scene_005

step.6

次に「アクション」の中から「Excel」をクリック。
展開された中から「ファイル・ブック」をクリック。
ファイル・ブックの中から「ブックを開く」をクリック。

scene_006

step.7

「ブックを開く」画面が表示されます。

インスタンス名「RPAExcel」を選択。
ブックのファイルパス右側の「ファイルを選択」を押下して「問い合わせ番号.csv」のフルパスをセットして下さい。
パスワード今回はブランクのまま。

最後に「OK」ボタンをクリック。

scene_007

step.8

一覧に「ブックを開く」が追加されます。

scene_008

step.9

次に「アクション」の中から「Webブラウザ」をクリック。
展開された中から「インスタンス」をクリック。
インスタンスの中から「ブラウザを起動」をクリック。

scene_009

step.10

「ブラウザを起動」画面が表示されます。

インスタンス名「RPABrowser」を選択。
ウィンドウの状態「最大化」を選択。
ブラウザエンジンのタイプ「Chrome」を選択。

最後に「OK」ボタンをクリック。

scene_010

step.11

一覧に「ブラウザを起動[Chrome]」が追加されます。

scene_011

step.12

ここまでの動作を確認するために、スクリプトを保存します。

画面上の「保存」ボタンをクリック。
「名前を付けて保存」画面が表示されますので
ファイル名に任意の名前を付けて「保存」ボタンを押下して下さい。
今回は「関東西濃お届け状況確認」としました。

scene_012

step.13

画面上の「実行」ボタンをクリック。
スクリプトを順番に実行して行くのが分かると思います。

次に「アクション」の中から「ナビゲート」をクリック。
展開された中から「URLにアクセス」をクリック。

scene_013

step.14

「URLにアクセス」画面が表示されます。

インスタンス名「RPABrowser」を選択。
URL「https://track.seino.co.jp/cgi-bin/gnpquery.pgm」を入力。

最後に「OK」ボタンをクリック。

scene_014

step.15

一覧に「URLにアクセス」が追加されます。

次に「アクション」の中から「Webブラウザ」をクリック。
展開された中から「インスタンス」をクリック。
インスタンスの中から「ブラウザを閉じる」をクリック。

scene_015

step.16

「ブラウザを閉じる」画面が表示されます。

インスタンス名「RPABrowser」選択

最後に「OK」ボタンをクリック。

scene_016_1

step.17

一覧に「ブラウザを閉じる」が追加されます。

scene_017

step.18

次に「アクション」の中から「Excel」をクリック。
展開された中から「ファイル・ブック」をクリック。
ファイル・ブックの中から「名前を付けて保存」をクリック

scene_018

step.19

「名前を付けて保存」画面が表示されます。

インスタンス名「RPAExcel」を選択。

最後に「OK」ボタンをクリック。

scene_019

step.20

一覧に「Excelを閉じる」が追加されます。

scene_020

step.21

一覧の「ブラウザを閉じる」と「Excelを閉じる」の順番を入れ替えます。
画面上の「実行」ボタンをクリック。

scene_021

step.22

スクリプトを順番に実行して行くのが分かると思います。
まず、ブラウザが起動します。

scene_022

step.23

次にcsvファイルを開きます。
一連の動作を行って終了します。

scene_023

step.24

次にcsvの最終行数を獲得したいので「アクション」の中から「Excel」をクリック。
展開された中から「行・列」をクリック。
行・列の中から「最終行のインデックス取得」をクリック。

scene_024

step.25

「最終行のインデックス取得」画面が表示されます。

インスタンス名「RPAExcel」を選択。
チェックする列の文字何を設定するのか分からないので下段の「?」ボタンをクリック。
scene_025

step.26

ヘルプ画面が表示されます。
「チェックする列の文字」の内容を確認にして意味を理解して下さい
右上の閉じるボタンをクリック。

scene_026

step.27

再度、「最終行のインデックス取得」画面が表示されます。

インスタンス名「RPAExcel」を選択。
チェックする列の文字「A」を入力。
行番号を受け取る変数右側の▽を押下して「お問い合わせ件数」を選択。

最後に「OK」ボタンをクリック。

scene_027

step.28

一覧に「最終行のインデックス取得」が追加されます。

次に最終行数を表示したいので「アクション」の中から「その他l」をクリック。
展開された中から「その他」をクリック。
その他の中から「メッセージの表示」をクリック。

scene_028

step.29

「メッセージの表示」画面が表示されます。

表示するメッセージ右側の▽を押下して「お問い合わせ件数」を選択。
X(秒)後に閉じる「1」を入力

最後に「OK」ボタンをクリック。

scene_029

step.30

一覧に「メッセージの表示」が追加されます。
「最終行のインデックス取得」の下に「メッセージの表示」が来るようにして下さい。

scene_030

step.31

今までの流れを確認するので画面上の「実行」ボタンをクリック。

scene_031

step.32

「問い合わせ件数.csv」が表示されます。

scene_032

step.33

最終行のインデックス取得で獲得した「22」が表示されます。
1秒後に勝手に閉じてくれるので、そのまま。

scene_033

step.34

次に「関東西濃 お届け状況確認」が表示されます。
そのままの状態で待っていれば、勝手に終了します。

scene_034

step.35

次に最終行数分、データを読み込みたいので
「フロー」の中から「繰り返し(Loop)」をクリック。
展開された中から「ループ開始(回数指定)」をクリック。

scene_035

step.36

「ループ開始(回数指定)」画面が表示されます。

ループを実行する回数右側の▽を押下して「お問い合わせ件数」を選択。

最後に「OK」ボタンをクリック。

scene_036

step.37

一覧に「Timeesの繰り返し」から「ループの終了」までの3行が追加されます。

scene_037

step.38

「Excelを閉じる」と「Timeesの繰り返し」から「ループの終了」までの順番が違うので「Excelを閉じる」が下に来るように順番を変更して下さい。

scene_038

step.39

次に変数「cnt1」をカウントアップしたいので「アクション」の中から「変数l」をクリック。
展開された中から「変数の設定」をクリック。

「変数の設定」画面が表示されるので

変更する変数右側の▽を押下して「cnt1」を選択。
上記の変数に設定する入力の定義右側の▽を押下して「cnt1」を選択後、「+1」を追記。

最後に「OK」ボタンをクリック。

scene_039

step.40

一覧に「変数の設定」が追加されます。

scene_040

step.41

一覧の中のコメント「このセクションのアイテムは、ループ内で動作します。」が要らないので削除。

scene_041

step.42

次にcsvから問い合わせ番号を獲得したので「アクション」の中から「Excel」をクリック。
展開された中から「セル」をクリック。
セルの中から「セルの値をゲット」をクリック。

scene_042

step.43

「セルの値をゲット」画面が表示されるので

インスタンス名「RPAExcel」を選択。
セルA{cnt1}を入力 ※Aの後ろにカント数がセットされるので、A1→A2→A3となっていきます。
結果を受け取る変数「お問い合わせ番号」にしたいけど作成されて無かったので下段の「変数」ボタンをクリック。
値の形式「値」を選択。
scene_043

step.44

「変数一覧」画面が表示されます。

「お問い合わせ件数の下にカーソルを合せると「+」が表示されるのでクリック。
空白行が追加されるので変数名に「お問い合わせ番号」を入力。

右上の「×」ボタンをクリック。

scene_044

step.45

再度「セルの値をゲット」画面が表示されるので

インスタンス名「RPAExcel」を選択。
セルA{cnt1}を入力 ※Aの後ろにカント数がセットされるので、A1→A2→A3となっていきます。
結果を受け取る変数「お問い合わせ番号」
値の形式「値」を選択。

最後に「OK」ボタンをクリック。

scene_045

step.46


一覧に「セルの値をゲット」が追加されます。

scene_046

step.47

スクリプトの右列のコメント欄に

変数の設定「CSVの値を獲得する行番号」と入力して下さい。
セルの値をゲット「A列の行番号」と入力して下さい。
scene_047

step.48


正しく「お問い合わせ番号」が獲得出来ているか確認したいので「メッセージの表示」を追加します。

「アクション」の中から「その他」をクリック。
展開された中から「その他」をクリック。
その他の中から「メッセージの表示」をクリック。

scene_048

step.49

「メッセージの表示」画面が表示されます。

表示するメッセージ右側の▽を押下して「お問い合わせ番号」を選択。
X(秒)後に閉じる「1」を入力。

最後に「OK」ボタンをクリック。

scene_049

step.50

一覧に「メッセージの表示」が追加されます。

今までの流れを確認するので画面上の「実行」ボタンをクリック。

scene_050

step.51

「お問い合わせ番号.csv」が表示されます。

scene_051

step.52

「お届け状況確認」画面が表示されます。

scene_052

step.53

「お問い合わせ番号」が表示されました。

scene_053

step.54

次に問い合わせ画面の入力欄が10件分なので、10件分セットされたか確認するためIF文を追加します。

「フロー」の中から「条件分岐(IF)」をクリック。
展開された中から「IFの開始」をクリック。

scene_054

step.55

「IFの開始」画面が表示されるので

IFコマンドのタイプ右側の▽を押下して「値」を選択
Value1{cnt1}-{cnt4} を入力。
Operand右側の▽を押下して「is equal to」を選択
Value210を入力

最後に「OK」ボタンをクリック。

scene_055

step.56

次に「検索」ボタンを押下するので「アクション」の中から「Webブラウザ」をクリック。

展開された中から「アクション」をクリック。

アクション中から「各種機能」をクリック。

scene_056

step.57


「各種機能」画面が表示されるので

インスタンス名「RPABrowser」を選択。
要素の検索方法右側の▽を押下して「XPathを検索」を選択。
要素の検索パラメータ//*[@id=”alpha-inner”]/form/p[2]/input[1]
要素アクション右側の▽を押下して「クリック操作」を選択。

最後に「OK」ボタンをクリック。

scene_057

step.58

一覧に「各種機能」が追加されます。
これで、問い合わせ番号欄に10件セットされた場合に「検索」ボタンをクリックする動作が完成しました。

scene_058

step.59

今度は、csvから獲得した「問い合わせ番号」を画面の入力欄にセットするので「アクション」の中から「Webブラウザ」をクリック。
展開された中から「アクション」をクリック。
アクション中から「各種機能」をクリック。

scene_059

step.60

「各種機能」画面が表示されるので

インスタンス名「RPABrowser」を選択。
要素の検索方法右側の▽を押下して「XPathを検索」を選択。
要素の検索パラメータ//*[@id=”alpha-inner”]/form/table/tbody/tr[2]/td[1]/input
scene_060

step.61

tr[2]をカウンターの値を使用した変数にしたいのでtr[{cnt2}+1] へ変更します。

Text To Set右側の▽を押下して{お問い合わせ番号}を選択。

最後に「OK」ボタンをクリック。

scene_061

step.62

一覧に「各種機能」が追加されます。

scene_062

step.63

変数のcnt1をカントアップした時と同じようにcnt2をカントアップします。

「アクション」の中から「変数」をクリック。
展開された中から「変数の設定」をクリック。

「変数の設定」画面が表示されるので

変更する変数右側の▽を押下して「cnt2」を選択。
上記の変数に設定する入力の定義右側の▽を押下して「cnt2」を選択後、「+1」を追記。

最後に「OK」ボタンをクリック。

scene_063

step.64

{cnt1}-{cnt4}の差が10のIF文の中にあるコメントを行を削除して下さい。
また、コメント欄に「検索ボタン」と入力して下さい。

scene_064

step.65

今度は、10件分の「お届け状況」を獲得したいので「フロー」の中から「繰り返し(Loop)」をクリック。
展開された中から「ループ開始(回数指定)」をクリック。

scene_065

step.66

「ループ開始(回数指定)」画面が表示されるので

ループを実行する回数 {cnt1}-{cnt4}を入力

最後に「OK」ボタンをクリック。

scene_066

step.67

「Timesの繰り返し」のコメント欄に「10件分ループ」と入力して下さい。
次に「Timesの繰り返し」の中のコメント行を削除して下さい。

scene_067

step.68

次に画面の値を獲得する時に使用するカウンターをカウントアップしたいので「アクション」の中から「変数l」をクリック。
展開された中から「変数の設定」をクリック。

「変数の設定」画面が表示されるので

コメント画面から値を獲得するカウンター
変更する変数右側の▽を押下して「cnt3」を選択。
上記の変数に設定する入力の定義右側の▽を押下して「cnt3」を選択後、「+1」を追記。

最後に「OK」ボタンをクリック。

scene_068

step.69

次に画面の値をcsvへセットするカウンターをカントアップしたいので同じように作成します。


「アクション」の中から「変数l」をクリック。
展開された中から「変数の設定」をクリック。

「変数の設定」画面が表示されるので

コメント画面から値を獲得するカウンター
変更する変数右側の▽を押下して「cnt4」を選択。
上記の変数に設定する入力の定義右側の▽を押下して「cnt4」を選択後、「+1」を追記。

最後に「OK」ボタンをクリック。

scene_069

step.70

一覧が下記のようになっていれば大丈夫です。

scene_070

step.71

次に「お問い合わせ番号」欄からお問い合わせ番号を獲得するので「アクション」の中から「Webブラウザ」をクリック。
展開された中から「アクション」をクリック。
アクション中から「各種機能」をクリック。

「各種機能」画面が表示されるので

インスタンス名「RPABrowser」を選択。
要素の検索方法右側の▽を押下して「XPathを検索」を選択。
要素の検索パラメータ//*[@id=”alpha-inner”]/form/table/tbody/tr[2]/td[3]
要素アクション右側の▽を押下して「テキストをゲット」を選択
scene_071

step.72

tr[2]をカウンターの値を使用した変数にしたいのでtr[{cnt3}+1] へ変更します。

Variable Name右側の▽を押下して{お問い合わせ番号}を選択。

最後に「OK」ボタンをクリック。

scene_072

step.73

一覧画面に戻って来ますので、コメントを「問い合わせ番号の獲得」を入力します。

scene_073

step.74

同じように「お届け状況」も獲得したいので右クリックして「選択したコマンドをコピー」を選択します。
貼り付けをした後にコピーしたコマンドをダブルクリック。

scene_074

step.75

「お届け状況」ように変更します。

コメントお届け状況の獲得
インスタンス名「RPABrowser」
要素の検索方法「XPathを検索」
要素の検索パラメータ//*[@id=”alpha-inner”]/form/table/tbody/tr[{cnt3}+1]/td[4]
要素アクション「テキストをゲット」
Variable Name{お届け状況}

最後に「OK」ボタンをクリック。

scene_075

step.76

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。

scene_076

step.77

お届け状況が正しく獲得出来ているか「メッセージの表示」を追加します。

「アクション」の中から「その他l」をクリック。
展開された中から「その他」をクリック。
その他の中から「メッセージの表示」をクリック。

「メッセージの表示」画面が表示されます。

表示するメッセージ右側の▽を押下して「お届け状況」を選択。
X(秒)後に閉じる「1」を入力

最後に「OK」ボタンをクリック。

scene_077

step.78

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。

scene_078

step.79

次に「お問い合わせ番号」を正しく獲得出来ているか「メッセージの表示」を追加したいので「お届け状況」を右クリックして、貼付けをします。

scene_079

step.80

先程追加した「メッセージの表示」をダブルクリックして下記の通りに変更します。

表示するメッセージ右側の▽を押下して「お問い合わせ番号」を選択。
X(秒)後に閉じる「1」を入力。

最後に「OK」ボタンをクリック。
一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。

scene_080

step.81

次にExcel(csv)のセルに値をセットしたいので「アクション」の中から「Excel」をクリック。
展開された中から「セル」をクリック。
セル中から「セルに値をセット」をクリック。

「セルに値をセット」画面が表示されるので

インスタンス名「RPAExcel」
設定するテキスト右側の▽を押下して「お問い合わせ番号」を選択。
セル B{cnt4}
値の形式「値」を選択。

最後に「OK」ボタンをクリック。

scene_081

step.82

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。
続いて「お届け状況」もセルに値をセットしたいので「アクション」の中から「Excel」をクリック。
展開された中から「セル」をクリック。
セル中から「セルに値をセット」をクリック。

scene_082

step.83

「セルに値をセット」画面が表示されるので

インスタンス名「RPAExcel」
設定するテキスト右側の▽を押下して「お届け状況」を選択。
セルC{cnt4}
値の形式「値」を選択。

最後に「OK」ボタンをクリック。

scene_083

step.84

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。
続いて「問い合わせ画面用のカウンター」をリセットしたいので「アクション」の中から「変数」をクリック。
展開された中から「変数の設定」をクリック。

scene_084

step.85

「変数の設定」画面が表示されるので

変更する変数右側の▽を押下して「cnt2」を選択
上記の変数に設定する入力の定義0

最後に「OK」ボタンをクリック。

scene_085

step.86

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。
※「ループの終了」と「IFの終了」の間

続いてもう1つをリセットしたいので「アクション」の中から「変数」をクリック。
展開された中から「変数の設定」をクリック。

scene_086

step.87

「変数の設定」画面が表示されるので

変更する変数右側の▽を押下して「cnt3」を選択。
上記の変数に設定する入力の定義0

最後に「OK」ボタンをクリック。

scene_087

step.88

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。

scene_088

step.89

次に10件分の問い合わせ番号が無かった時の対応をとりたいので「IF文の始まりからIF文の終わりまでを」コピーします。

「IF文の始まりからIF文の終わりまでを」選択して右クリック「選択したコマンドをコピー」を選択して

scene_089

step.90

「ループの終了」の下に来るように「貼付け」をします。

scene_090

step.91

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。
「IF文の開始」の内容を変更したいので、「IF文の開始」をクリック。

scene_091

step.92

「IF文の開始」画面が表示されるので

IFコマンドのタイプ右側の▽を押下して「値」を選択。
Value1{cnt1}-{cnt4} を入力
Operand右側の▽を押下して「is not equal to」を選択。
Value210を入力

最後に「OK」ボタンをクリック。

scene_092

step.93

「cnt2」「cnt3」の変数の設定は必要ばないので削除します。
「変数の設定(cnt2)から変数の設定(cnt3)までを」選択して右クリック「削除」を選択してクリック。

scene_093

step.94

一覧画面に戻って来ますので、画面の通りになっていれば大丈夫です。

scene_094

step.95

それでは、実際に上手く稼動するか確認していきましょう。

そのまえにメニューの「保存」ボタンを押下。
さっ メニューの「実行」ボタンを押下して下さい。

マクロマンが動き始めました。

scene_095

step.96

シナリオ通り、chromeを起動させ、Excevを起動。
対象のcsvを開いて。

scene_096

step.97

お問い合わせする件数を獲得し表示。

scene_097

step.98

1件目のお問い合わせ番号を獲得、表示。
ここまで問題なく成功!

scene_098

step.99

獲得したお問い合わせ番号を「お届け状況確認」画面の入力欄にセット。
10件分セット終了後に問題なく「検索」ボタンを押下。

scene_099

step.100

画面に「お問い合わせ番号」と「お届け状況」が表示されたので、この値をExcelのB列とC列に順番にセットしています。

scene_100

step.101

問題なくマクロマンが終了!

scene_101

step.102

csvファイルを確認するとシナリオ通りに値を獲得して保存されていました。

scene_102

コメント

タイトルとURLをコピーしました