a.kmni
(komei)
1
いつもお世話になっております。
今回、Excelに入力されている会社宛にメールを作成したいと考えています。
他で調べてみたところ、宛先リストを作成する必要があるようだったので念のため下記のように作成しました。
・既存Excelは管理上、株式会社の表記がありません
・メールテキストには株式会社の表記をしたい
既存Excel(またはcsv)
日付,会社,金額
1/4,A社,1500
1/4,B社,1500
→A社とB社にメールを送信したい
宛先リスト(Excel)
会社名,担当者,アドレス
A社,AAaa,aaa@aaa
B社,BBbb,bbb@bbb
C社,CCcc,ccc@ccc
D社,DDdd,ddd@ddd
紐づけの仕方がいまいちよくわからず。。
ご教示いただけますと幸いです。
Yoichi
(Yoichi)
2
「株式会社」あるいはそれに類する情報はどこにありますでしょうか?(前株、後株等含め)
a.kmni
(komei)
3
Yoichiさん
ありがとうございます。
株式会社の情報については、宛先リストに保存しております。
Yoichi
(Yoichi)
4
会社名,担当者,アドレス
株式会社A社,AAaa,aaa@aaa
B社株式会社,BBbb,bbb@bbb
株式会社C社,CCcc,ccc@ccc
株式会社D社,DDdd,ddd@ddd
ということでしょうか?あるいは別で正式名称がある列がありますか?
なお屋号は重複する可能性があるので、可能であれば自社で管理している企業コード等があれば
紐づけはそちらの方がベターかと思います。
a.kmni
(komei)
5
こちらご認識の通りでございます。
こちらのリストですが、現リスト6件ですので重複することはないかと思っています。
(今後増えたとしても数件かと想定しています)
ですのでもし可能であればこのまま処理できたら、と考えておりますがいかがでしょうか?
Yoichi
(Yoichi)
6
こんにちは
例えば以下になります。データテーブルをフィルタアクティビティで必要な行を抽出しています。

上記は例外処理含んでいませんのでご注意ください。
Sample20230116-4L.zip (15.9 KB)
a.kmni
(komei)
7
Yoichiさん
いつもご丁寧にご教示いただきありがとうございます。
いただきましたワークフローの流れですと、下記の流れと理解したのですが認識はあってますでしょうか?
・基本のデータテーブル、宛先リストを呼び出し
・宛先リストを基本データフローをもとにフィルター(会社で)
・フィルター後の宛先リストの内容を読み込み
質問させていただいた後に条件が相違していることに気が付きましたので、
※基本となるファイルがcsvだったので「データテーブルを出力」でcsvを指定しております
※また、メッセージボックス処理の代わりに代入処理にしております
代入処理の箇所で下記エラーになってしましました。
(念のためメッセージボックス処理も行いましたがエラーになってしまいました)
There is no row at position 0.
何が原因なのか全くわからず。。
Yoichi
(Yoichi)
8
こんにちは
結果として、フィルターした結果に行が無い状態になっているかと思います。
調査方法としては例えば以下になります。
データテーブルをフィルターアクティビティでブレイクポイントを設定してデバッグ実行
→このアクティビティで停止しますので、ローカルパネルで入力のデータテーブルが確かにデータがあるかの確認
→F11を一回押して、このアクティビティを実行、停止後再度ローカルパネルで出力結果を確認
→もし空ならフィルターの条件に問題があるので、データテーブル内の内容と、フィルターで指定している内容の精査を行います。
a.kmni
(komei)
9
ありがとうございます。
データテーブルをフィルターアクティビティでブレイクポイントを設定してデバック実行
→赤い●がつきました
このアクティビティで停止しますので、ローカルパネルで入力のデータテーブルが確かにデータがあるかの確認
※宛先リスト(会社、担当者、アドレス・・・)は確認できているようです
※csvlistはこの上にありますが(このワークフローの初めのほうで使用しています、スコープは全体にしています)、値もでております
a.kmni
(komei)
10
追加で認識の確認をさせていただきたいです。
フィルターの設定についてですが、下記認識であってますでしょうか??
【列】宛先リストのヘッダー名
【値】csvリストのヘッダー名

Yoichi
(Yoichi)
11
このスクリーンショットで使われている変数の内容がわかるように
Localsパネル共有可能でしょうか?
Yoichi
(Yoichi)
13
CurrentRow(“会社”) あるいは、ForEachRowでイテレートしているデータテーブルの会社列の内容を確認する必要があるのですが、確認可能でしょうか?(上記では消されてわかりませんので)
なお全角半角の違い等もあるかもしれませんので、その点も含めて確認ください。
a.kmni
(komei)
14
Yoichiさん
ありがとうございます。
初歩的なミス(勘違い)を連発しておりまして
エラーの理由がわかりました。。。
(csvの会社名は実在、宛先リストの会社名は適当にA社と・・・べつにしておりました・・・同一にしましたら無事出力することができました!!)
また実際やってみて気が付いたのですが、
例えばcsv内に会社が重複する場合、一件ずつメールを作成してしまうことになりますね。。
それがこちらのことだったのでしょうか・・
なお屋号は重複する可能性があるので、可能であれば自社で管理している企業コード等があれば
紐づけはそちらの方がベターかと思います。
Yoichi
(Yoichi)
15
いいえ、それとは無関係です。
上記の場合、以前の下記のように、重複のない会社名一覧を抽出して、それをイテレートして
処理することになると思います。
a.kmni
(komei)
16
ありがとうございます!
今回のワークフロー全体像なのですが、
①当日のフォルダを作成
②①のフォルダ内に会社毎のExcelを作成
(csvにある会社毎にExcelひな形を複製)
③会社毎に複製したExcel内にフィルターをかけたcsv内容を②のExcelに転記
④会社毎にメールを作成+③のExcel添付
(メールの内容は会社毎に抽出した内容をテンプレを使用して作成)
ざっくりこんな流れなのですが
例えば、Excelを作成した会社だけに絞って宛先リストから読み込みをして
メールを作成することは可能でしょうか?
それとも以前のフローでの作成がわかりやすく仕上がりそうでしょうか?
Yoichi
(Yoichi)
17
こんにちは
3で会社名は特定されていますので、その流れでメールアドレスなどを抽出して、メール作成・送信すれば良いかと思います。
a.kmni
(komei)
18
Yoichiさん
いつもありがとうございます。
現在メールの作成はできるのですが、内容が会社ごとに一致しません。。
・メールテキスト内容
・添付ファイル
またcsvの全行が11行あるのですが、1件ずつのメール作成になってしまいます。
メールひな形に代入する値取得のための繰り返し処理の外に
宛先リストを取得するための繰り返し処理を設置しています。
(そのなかにメール送信のアクティビティもいれています)
system
(system)
Closed
19
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.