『非表示の列を含む表を、フィルターした状態でコピーしたい』(ロング)
A1〜D6までの表があり(1行目はタイトル行)、
B列を、列ごと非表示にした後で、
表全体に、絞り込みのフィルター機能を付けています
任意の条件で、フィルターを用いて絞り込みをし、
(2行目、4行目だけ表示されているとすれば、)
2行目、4行目を列ごとコピーして、
一旦フィルターをクリア後に、
A1〜D6の表の中に、先ほどコピーした列を、その塊のまま挿入したいのですが、
(A1〜D8までの表になる、&2行目4行目は、A1〜D8までの表の中に同じものは2行ある)
B列を非表示にしているせいで、うまく貼付できません。
要は、非表示列を含む表があり、
フィルターで絞った状態で、行をコピーしたい場合、
可視セルだけがコピーされてしまうので、
ペーストした際に、表に上手く貼り付けられない、
という相談になります。
何かお知恵がありましたら教えてください。
よろしくお願い致します。
< 使用 Excel:Excel2021、使用 OS:Windows11 >
▼間違い
2行目、4行目を【列ごとコピーして】
一旦フィルターをクリア後に〜
▼訂正
2行目、4行目を【行ごとコピーして】
一旦フィルターをクリア後に〜
です。
よろしくお願い致します。
(ロング) 2025/05/13(火) 13:35:51
手動による非表示列がコピーされない ⇒ いったん再表示するほかないです。
コピーして、 貼り付けは以下のように行う。 ・いったん最後の行より下に貼り付け ・フィルタを解除して(*) ・貼り付けた行全体を再度選択してCtrl+X ・挿入したい行のA列セル(単一セル)を選択して ・右クリックして、「切り取ったセルの挿入」を実行
(*)フィルタを掛けたまま貼り付けを行うと想定外のことが起きるから、 そうしたことは回避すべき。正面突破しようとするのは無駄なことです。 (そもそもフィルタは抽出すればそれで任務は果たしている。 フィルタを掛けたままあれこれ編集するのは筋悪です。) (xyz) 2025/05/13(火) 16:38:16
説明では簡単に記載してますが、
実際にはAT列10000万行まで使用したかなり大きい表で、
そのうち、半分が非表示列です。
それが100シートほどあり、
一つ一つ、上記の作業なので、
方法を探してました。
非表示を維持したまま行のコピーが出来ないことが確定したので、
それだけでも助かりました。
ありがとうございました。
(ロング) 2025/05/13(火) 17:32:07
(りー) 2025/05/13(火) 17:48:36
>任意の条件で、フィルターを用いて絞り込みをし、
>■A1〜D6の表のどの行に挿入するのか? >→では、1行目と2行目の間に、と仮定します。
>→「その塊のまま挿入したい」が最終目標です。
Excel2021とのことなのでFILTER関数は使えると思いますので、 それをVBAで利用して絞り込んだ配列を取得して、 ご希望の位置に挿入すればどうでしょう。
Public Sub test() Dim tbl As Range, i As Long, cri() As Boolean Set tbl = Range("A1").CurrentRegion
ReDim cri(1 To tbl.Rows.Count, 1 To 1) '抽出条件配列 For i = 2 To UBound(cri) cri(i, 1) = Not tbl.Rows(i).Hidden Next
Dim a a = WorksheetFunction.Filter(tbl, cri)
tbl.AutoFilter 'フィルター解除
'1行目と2行目の間に挿入 tbl.Rows(2).Resize(UBound(a)).Insert Shift:=xlDown tbl.Rows(2).Resize(UBound(a)).Value = a
End Sub
(hatena) 2025/05/14(水) 02:49:07
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.