Q&A

回答の並べ替え:
投稿新規に質問を投稿する

シート内の商品コードを参照して、合致するホルダー内のファイルを開くにはどうすれば出来るのでしょうか?

mini robot mini robot

2021-03-17 11:25

対象商品リスト
ホルダー内ファイルリスト

CELF初心者です。どうしても業務上プログラム作成が必要なのでお手数ですが教えて頂けませんか?
【業務】複数の商品のファイルにそれぞれ在庫データーと予約データーを貼付けて、在庫補充の元データーを作成する。
【質問】①シート上の商品コードを読み込んで、それに合致するファイルをホルダー内から開く方法? ②2行目の商品コードを読み込む方法? ③このループを終わらせる方法?

mini robot mini robot
ncs様
いつもご丁寧な回答ありがとうございます。
お蔭様でようやくアドバイス頂いている内容が理解出来ました。
また、順次実行で1行づつ確認し、ファイルもオープン出来ましたし、今、30行目まで来る事が出来ています。後は色々トライしながら完成までなんとか持って行きたいと考えます。
ご親切に何度もご説明頂きありがとうございました。また長期間にわたり本当にありがとうございました。
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
こんにちは。

①②は、workホルダーのファイルに対して書込みを行う前提になっていますので、workホルダー内のファイルのシート名とセルの座標を指定してください。
※workホルダー内のファイルの変更が必要無ければ、アクションを削除してください。

③指定するのは、workホルダーのファイル内のファイル名になる「=INDIRECT(ADDRESS(K8,10,4))」を指定してください。

④画像を見る限りでは、問題ないと思われますので、「順次実行」で1アクション毎に実行してまずは、一覧が取得できるか確認してください。

メールコンタクトをとる
mini robot mini robot
シート名の取得
Sheet1_セット先指定_指定したファイルを開く
ncs様
いつもご丁寧な解説ありがとうございます。
自分は基本がわかっておらず、本当に恐縮いたします。
また質問させて頂いても大丈夫でしょうか?
①教えて頂いた式をコピーしてA1に入れましたが”0”がかえって来ました。他のエクセルシートで試すと確かにシート名が表示されます。そもそもエクセルシートを作っておらず、今回のアクションを完成させるには”空のエクセル”を事前に作っておかなければいけないのでしょうか?、その場合、シート名はSheet1でブック名は何にして、どこに格納しておけば良いのでしょうか?②セット先指定の座標の決め方ですが、どんな法則で考えれば良いのでしょうか?③ファイルを開きたいのですが、添付のようにファイル指定でしか開き方を知りません。どのような関数(数式)を入れれば数種類のファイルを順番に開く事が出来るのでしょうか?④テスト実行しても相変わらず1秒で異常終了してしまいます。異常終了後J13にファイル名一覧が出力されていないので、10行目のアクションのホルダーの指定の仕方が間違っているような気がするのですが、どこが違うのかがわかりません。尚、workホルダーには今回開きたいファイルを数種類格納しています。大変お手数ですが、教えていただけませんでしょうか?、何卒よろしくお願いいたします。
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
こんにちは。

シートの対象商品リストとファイル一覧の場合下記の設定値等の変更が必要と思われます。
参考資料として、変数の修正が必要と思われる箇所を追記した画像も添付します。

1. 対象商品リストの商品コードの位置(列位置 G = 7 行開始位置 4 )
ADDRESS(K7,7,4)

2. ファイル一覧取得のファイル名の位置(列位置 J = 10 行開始位置 13 )
ADDRESS(K8,10,4)

3. 14行目の「カウンター2の初期化、最初のファイルセットする。」
ファイル一覧取得のバックカラーが黄色のセルはJ13ですので、下記の値に修正
14 ⇒ 13

4. 17行名のアクションの「Sheet1」,「=H3」は、書込み先のExcelファイルの内容で、公開されたいませんので、判断できないです。
シート名の取得は、下記のURLが参考になるかと思います。
https://www.tipsfound.com/excel/01306

5.17行名のアクションでは、Excelをバックグラウンドでオープンから編集、保存、クローズまでが実行されますので、18行目の処理の前にExcelファイルをオープンするアクション「指定したURLまたはファイルを開く」等のアクションを追加する必要があります。
メールコンタクトをとる
mini robot mini robot
自分のシートと最初の方のアクション
1枚目の続きと商品コードを入力する部分のアクション
ncs様
いつも早々のご回答ありがとうございます。教えて頂いたアクションを未完成のアクションに組み込んで一応完成させました。そこで初めてのテスト実行に挑んだのですが、1秒で「処理件数無し」異常終了してしまいました。先生から頂いた資料を基に自分のシートにあわせて、セル位置(座標)をスライドさせたつもりですが、色々試しても全く動きません。
恐縮ですが、アドバイス頂けませんでしょうか?
①12行目のセルK7に4をセットする。ですが、シートの4行目なので行指定は出来ていると思いますが、列の指定が出来ていないのではと思います。
②17行目の書き込み対象Excelシート名Sheet1ですが、先生のそのままです。自分のシートも1枚なのですが、通常のExcelのように下にSheet1、Sheet2のようなタブが出ませんので、Sheet1かどうかの自信がありません。③同じく17行目のExcelファイルの=H3を起点にのところですが、これも先生のお手本を自分のシートにスライドさせた位置のつもりですが、このH3には「商品名」という文字が入っているので、この場所で良いのかわかりません。最後に④44行目ですが、1秒で異常終了したので、まだここまで行っていないのですが、ここは在庫画面を出してそこに商品コードを入力して検索するアクションです。この式でループした際、商品コードの上から順番に2番目3番目と違うコードが入る命令になっていますでしょうか?
何度もすみません。大変お手数の事とは思いますが、教えて頂けると非常に助かります。何卒よろしくお願いいたします。
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
フォルダ内のファイル一覧の取得
こんにちは。

>自分のアクションの10行目の代わりに先生の1-6行目を挿入し、その次に商品コード欄の一番上の商品コードと同一のファイルを開きたいのですが、
→サンプルの7行目のオブジェクトで使用されている「=INDIRECT(ADDRESS(F4,2,4))」が、商品コードに対応したファイル名になりますので、この式を作成されたオブジェクトに指定されているファイル名の代わりに指定することで、対応できると思われます。

別件になりますが、前提条件をオプション機能のロボットを使用しない条件かと勘違いしていました。
ロボットのアクションを使用するとWindowsのバッチファイルを使う必要は無いです。
※添付画像参照
メールコンタクトをとる
mini robot mini robot
アクションNO.1-23
アクションNO.24-44
ncs様
いつも早々のご回答ありがとうございます。
Q 画像が粗くて恐縮です。今、作成中のアクションを添付させていただきます。当初、21行目のシート開く際にシート指定しか知らなくて、これでは何品も処理したいのにループが出来ない事に気付き今回の質問をさせて頂きました。先生から教えて頂いた内容を組み込んで、自分のアクションの10行目の代わりに先生の1-6行目を挿入し、その次に商品コード欄の一番上の商品コードと同一のファイルを開きたいのですが、どのようなアクションを使えば実現可能でしょうか?
この最初のファイルさえ開けば、後はループの最後に先生の8-10行目のアクションを挿入すれば出来そうな気がします。何度も大変お手数ですが教えて頂けませんでしょうか?、何卒よろしくお願いいたします。
尚、添付のアクションの45行目以降は在庫画面を開いて、コピー、貼付けになっております。最初に予約データーを貼り付けていますので、1品としてはこの工程で終了し、2品目も同じ予約と在庫を貼付ける工程を商品数分繰り返すロボットを作りたいと考えております。

日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
こんにちは。

7行目のアクションの「セルのデータをExcelファイルにセットする」で、指定されたExcelファイルのオープン、値のセット、保存、クローズ処理が一括実行されます.

他のアクション使用する場合は、7行目のアクションと入替ることで、対応可能と思われます。
メールコンタクトをとる
mini robot mini robot
ncs様
今回もご丁寧なご説明ありがとうございます。
応用は出来ませんが、セルの指定位置を間違えながら、なんとか再現出来そうな気がします。今月よりSELFを触り始め、1番目のファイルを開いて、データーを貼り付けるアクションを組みながら、2番目のファイルの開き方がわからず今回の質問をさせて頂きました。
Q1.ところでこの教えて頂いたアクションを実行すると、商品コードの1番目のファイルは開かれているのでしょうか?、開かれているなら、7行目と8行目の
間にファイルを最前面にする/最大化する/データーを貼り付ける等、今まで組んだアクションを挿入すれば良いのでしょうか?、
Q2.また8行目の前までにファイルを閉じるアクションを入れれば、自動的に2番目のファイルを開いて同じ作業をしてくれるのでしょうか?
Q3.もしファイルが開かれていないのならば、どのようなアクションを入れれば1行目の商品コードのファイルを開く事ができるのでしょうか?
まだアクションが完成しておらず、テスト実行も出来ませんが何としてでも最初のソフトを完成させ社内の業務効率化の始まりにしたいと考えております。
度々で恐縮ですが、何卒ご指導の程、よろしくお願いいたします。
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
Windowsコマンド(フルパスのファイルの一覧取得)
>コマンドプロンプトの命令式の書き方
掲示板に張り付けると半角の「¥」が無くなってしまうので、添付画像の様に半角の「¥」を追加してください。



>アクション内関数他、アレンジの仕方
Q1.
→ファイルパスや、ファイル名に空白が含まれる場合は、["]で囲む必要があります。

Q2.
→・商品コード一覧の商品コードの1個目のセル(B4)の行位置を指定しています。 添付画像の①
・添付画像の②の処理で、セル(B4)の値をカウントアップすることで、下の行のセル内容が参照されます。

Q3.
→1. 構文の意味は、「商品コード一覧の商品コードのセルの内容が空白以外」
2. ADDRESSは、FAQ「 https://cloud.celf.jp/celf-help/ja/texts/faq/technical/faq000070.html 」を参照してください。
3. F3は、セルの行の値を指定してます。
4. 2は、セルの列を指定しています。 2は、セルの列の「B」になります。
5. <>"" は、空白以外を表しています。
6. コマンドに関しては、「https://cloud.celf.jp/celf-help/ja/_downloads/CELFFunction.pdf」を参照してください。


Q4.
→CSVファイルから読み込んだファイル名(フルパス)の1個目のセル(B14)の行位置を指定しています。 添付画像の③
・添付画像の④の処理で、セル(B4)の値をカウントアップすることで、下の行のセル内容が参照されます。

Q5.
→下記の書式になります。
「=UTIL.REGEXP(INDIRECT(ADDRESS(F3,2,4)),INDIRECT(ADDRESS(F4,2,4)))」

Q6.
→内容としては、商品コードが含まれるファイル名かのチェックです。
FAQ「 https://cloud.celf.jp/celf-help/ja/texts/faq/technical/faq000179.html 」が参考になるかと思います。
メールコンタクトをとる
mini robot mini robot
コマンドプロンプトの命令式の書き方
アクション内関数他、アレンジの仕方
ncs様
早々にご回答下さりありがとうございます。
すみません。何せリテラシーが低いもので再度、詳細について教えて頂けないでしょうか?
ロボット制作は初めてで何としても教えて頂いた技を再現したいと思っております。
初歩的な質問で恐縮ですが、何卒よろしくお願いいたします。
・質問1 コマンドプロンプトの命令式の書き方
・質問2 アクション内関数他、アレンジの仕方
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
メダルベストアンサー
こんにちは。

複数ファイルに値をセットするサンプルです。
ファイルの一覧は、オプションの「ロボット」を使用せずに事前に下記のWindowsのコマンドでCSVファイルの一覧を準備する前提です。
「dir /s /b C:tmpsample > C:tmpsamplefilelist.csv」

ファイル名のチェックは、下記の記事が参考になります。
https://developer.celf.biz/questions/10983/
メールコンタクトをとる