Excel フィルタ後のセルに値を設定する方法 (解決済み)
しくじり例と解決策の報告です。
みなさん、ご存知だとは思いますが、わたしには目から鱗でしたので報告させていただきます。
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操作(値の設定) で フィルタ後の可視セルに対して一回で値設定できたのは、とても
楽になりました。数千数万でもこれだけで設定できます。