9

しくじり例と解決策の報告です。

みなさん、ご存知だとは思いますが、わたしには目から鱗でしたので報告させていただきます。

EXCELシートでフィルタ絞込みした行への値設定。これをずっと思案していました。

1.やりたいこと

前提条件

エクセルデータの処理です。(ファイル情報)

対象エクセルブック test.xlsx、ワークシート名 test

以下 EXCELデータイメージ

連番 氏名 値設定

1  染谷 太陽

2  菅谷 香奈子

3  杉本 栄子

4  岩城 常雄

5  戸田 信雄

6  井手 敬一

7  赤井 克子

8  江成 京子

9  大橋 心美

10  高坂 和弘

2.実施内容

(1)エクセルシートの「氏名」欄で「子」の付くデータに絞りこむ。

(2)抽出されたデータの「値設定」欄に「子あり」を設定する。

3.シナリオ作成

(1)ライブラリ Excel操作(フィルタ条件設定)

   ファイル名 test.xlsx

   シート名  test

   セル位置  A1:C1

   列番号   2

   絞込みキー *子*

ここからしくじりです。

しくじり例

(1)変数に更新用の値「子あり」をセットしておきます。

(2)クリップボードへ変数を設定します。

(3)ライブラリ Excel操作(範囲選択)

   ファイル名 test.xlsx

   シート名  test

   開始セル C2

   終了セル C10

   訂正 終了セル C11

(4)ライブラリ Excel操作(カーソル位置へペースト)

   クリップボードからペーストしますが、C2のみにペーストされます。

 結果的に範囲選択が可視セルに対しうまくできない感じ。

ということで次に考えたのが、先頭行にセルを置き、エミュレーションで「DOWN」させアクティブセルを取得し、そこへ値はりつける。これを最終行まで繰り返す・・・・・・

現実問題として、対象行が数千とか数万行あった場合、運用に耐えられない。

ここから解決策です。

ライブラリ Excel操作(値の設定)でできました。

(1)ライブラリ Excel操作(フィルタ条件設定) これは変えません。

(2)ライブラリ Excel操作(値の設定) 

   設定値 子あり

   ファイル名 test.xlsx

   シート名  test

   セル位置  A1:C1

        ご指摘ありがとうございます。 セル位置 C2:C11 です

       

自分の中で、Excel操作(値の設定) は、A1形式での「単一セル指定」だけと思っていました。

気付いたのは、「Excel操作(行コピー)は、絞られた可視セルだけを対象にて行の範囲も「:」で

指定できたことでした。それとスクリプトをみると範囲がRANGEだったのでこれは!思いました。

この Excel操作(値の設定) で フィルタ後の可視セルに対して一回で値設定できたのは、とても

楽になりました。数千数万でもこれだけで設定できます。

anothersolution 編集済みのコメント
回答とコメントは、会員登録(無料)で閲覧できるようになります。