当サイトの別ページに掲載している「ExcelからExcelブックにループ転記」にループ条件とIFを追加して、特定の条件を指定して、Excelブックに転記する方法をご紹介します。
前回はExcelブックの昇給表から、Excelブックの昇給通知書に、すべての部署を転記しましたが、今回は昇給表の部署から転記したい部署名を「入力ダイアログを表示」で入力し、特定の部署だけ昇給通知書に転記します。
今回追加するアクションは3つです。
・入力ダイアログを表示
・IF
・ループ条件
「ExcelからExcelブックにループ転記」で使用したフローに「ループ条件」と「入力ダイアログを表示」、「IFを2回」使用します。
手順を説明します。
1.アクションの「現在の日時を取得します」から「Excelの起動」でExcelブックの昇給表を読み込んで、Excelブック昇給通知書を開きます。
2.入力ダイアログを表示して、部署名を入力します。
3.対象の部署を昇給通知書に転記します。
4.転記が終わったら、ループ条件から入力ダイアログを表示に戻ります。
5.違う部署を転記したい場合は入力ダイアログに部署名を入力します。
転記を終了したい場合は入力ダイアログのキャンセルを押します。
フローの完成形
フローの実行動画
1.前回と同じアクション
前回説明した「ExcelからExcelブックにループ転記」の「現在の日時を取得します」から「Excelの起動」までと「ループのアクション」を、そのまま使用します。
2.入力ダイアログを表示
入力ダイアログを表示して、部署名を入力するアクションを設置します。
1.Excelの起動の下に「メッセージボックス」から「入力ダイアログを表示」をワークスペースに追加します。
2.入力ダイアログを表示のパラメータを選択します。
・入力ダイアログのタイトル:任意のタイトルを入力します。
ユーザーにどのような行動を促したいか、タイトルでお知らせします。
・入力ダイアログのメッセージ:任意のメッセージを入力します。
ユーザーに伝えたいメッセージをお知らせします。
・既定値:ユーザーに入力してもらいたいので、空白にします。
・入力の種類:今回は文字数が少ないので、1行にします。
・入力ダイアログを常に手前に表示する:手前に表示したいので、チェックを入れます。
生成された変数:
Userlnput 入力ダイアログで入力された部署名を、IFで判定するために使用します。
ButtonPressed ループ条件やIFの最初のオペランドで使用します。
※自分で変数を変更することもできます。
今回は説明のため、変数をそのまま使用します。
3.IF 条件分岐でキャンセル
次に、上記の「入力ダイアログを表示」でキャンセルした場合に、それ以降の処理を行わないようにIFで処理します。
1.アクションにある「条件」から「IF」を「入力ダイアログを表示」の下に追加します。
2.IFのパラメータを選択します。
・最初のオペランド:入力ダイアログを表示で生成された変数 %ButtonPressed% を入力します。
{☓}から選択することが出来ます。
・演算子:と等しくない(<>) を選択します。
・2番目のオペランド:Cancel と入力します。
IFの条件分岐で、キャンセルではない(等しくない)場合に処理が実行されます。
キャンセルした場合は、処理が中断されます。
3.IFのEndを下まで移動させLoopをIFの中に入れます。
4.IF 条件分岐で部署名を設定
次に、上記の「入力ダイアログを表示」で入力した部署名だけを、昇給通知表に転記する処理を行います。
1.アクションにある「条件」から「IF」を「Loop」の下に追加します。
2.IFのパラメータを選択します。
・最初のオペランド:%ExcelData[LoopIndex][‘部署名’]% を入力します
・演算子:次を含む を選択します。
・2番目のオペランド:%UserInput% と入力します。
IFで「最初のオペランド」の部署名と「入力ダイアログを表示」で入力された部署名(2番目のオペランド)を演算子の「次を含む」で判定します。
同じ部署名が入力されたら、昇給通知書に転記する処理が実行されます。
3.IFのEndを下まで移動させます。
5.ループ条件
転記が終わったら、ループ条件から入力ダイアログを表示に戻る処理を行います。
違う部署を転記したい場合は入力ダイアログに部署名を入力します。
転記を終了したい場合は入力ダイアログのキャンセルを押します。
1.アクションにある「ループ」から「ループ条件」を「入力ダイアログを表示」の上に追加します。
2.ループ条件のパラメータを選択します。
・最初のオペランド:入力ダイアログを表示で生成された変数 %ButtonPressed% を入力します。
{☓}から選択することが出来ます。
・演算子:と等しくない(<>) を選択します。
・2番目のオペランド:Cancel と入力します。
3.ループ条件のEndを下に移動させ、Excelの保存の上まで移動させます。
6.フローの実行
1.フローが完成したら、「実行」をクリックします。
今回は入力ダイアログに総務と経理を入力しました。
昇給通知書に総務部と経理部の昇給表が転記されました。
今回は特定の条件に当てはまる部署だけを、Excelブックに転記する方法をご紹介しました。
次回はPADに数値を設定して、Excelブックの数値と比較し、該当した場合は別のExcelブックに転記するフローをご紹介します。
例として、従業員名簿から年齢を確認し、40歳なら「介護保険料控除開始のお知らせ」を、65歳なら「介護保険料控除終了のお知らせ」のExcelブックに自動で氏名を転記して保存する処理を行います。