saltyayumu
(saltyayumu)
September 20, 2018, 7:46am
1
あるエクセルの更新作業を自動化したいのですが、
シートの中にいくつかデータがあり、大きく4つのテーブルのようなものに分かれています。
例えば3つ目のテーブルのデータの最後行を特定することは可能なのでしょうか。
また、その特定した行の一つ下に行追加して値を入力することは可能でしょうか。
情報が不足していて且つ初歩的な質問かもしれませんが、
何かヒントなどございましたらお教えいただけますと幸いです。
処理したい内容の詳細は添付資料をご確認ください。処理したい内容の詳細.xlsx (15.5 KB)
以上、何卒宜しくお願い申し上げます。
qbrandon
(Quentin Brandon)
September 21, 2018, 3:59am
2
ReadRangeでテーブルのサイズを取得して、WriteRangeで下の行を指定することは可能かと思います。
saltyayumu様
添付したエクセルを確認いたしました。
[データ間に空欄があったり、各行によって形が異なっている]
とのことですが、こちらA列の氏名部分など入力が必須の項目はあるでしょうか。
どれか一列でも、空欄ではないことが保障されるのであれば、以下のような実装が可能であると考えます。
氏名の部分は必須入力項目であると仮定すると、
①、内部変数"counter"を設定して、初期値を20とする。
②、read cellアクティビティを用いて、"A+counter.ToString"セルの読み取りを行う。
③、counterに1加算する。
④、②で読み込んだ値が空欄であるかを、IFアクティビティなどを用いてチェックする。
⑤、④の結果が正になるまで②~④の操作を繰り返す。
以上の方法で、新たに欄を追加したい行番号がcounter変数で取得できます。
この"counter"変数を用いて、新たに行入力を行うという方法はいかがでしょうか。
saltyayumu
(saltyayumu)
September 28, 2018, 9:49am
4
screendhoter様
ご回答ありがとうございます!
あれから別のフォーラム質問やチャレンジの中で、
ご提案頂いたようなやり方にもたどり着きましたが、
環境と対象ファイルの影響なのか、繰り返しセルを読み取るようなFor each や Do while、
Datatable型にしてLookupTableData等の作業にかなりの時間がかかってしまう状況にあります。
screendhoter様のご意見も加えてもう少し検討してみます。
一先ず、回答のお礼とさせてください。
今後とも、どうぞ宜しくお願い申し上げます。
saltyayumu
(saltyayumu)
September 28, 2018, 9:50am
5
qbrandon様
ご連絡が遅くなり申し訳ございません。
ご回答ありがとうございます。
qbrandon様に可能であるということを頂き、
独自に調べていたところ答えにありつけそうですので、
このまま引き続きチャレンジしていきます。
ヒントをくださいましてありがとうございました!
1 Like