[[20250513131439]] 『非表示の列を含む表を、フィルターした状態でコピ』(ロング) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『非表示の列を含む表を、フィルターした状態でコピーしたい』(ロング)

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


>A1〜D6の表の中に、先ほどコピーした列を、その塊のまま挿入したいのですが、
A1〜D6の表の中のどの行に挿入するんですか。
行を挿入するとその分、行は増えます。
「その塊のまま挿入したい」と「ペーストした際に」はどちらが正しいのですか。
やろうとしていることが中途半端に見えます。
(?) 2025/05/13(火) 14:10:03

ご回答有難うございます。
分かりにくくて申し訳ありません。
 
■A1〜D6の表のどの行に挿入するのか?
→では、1行目と2行目の間に、と仮定します。
(表の外ではなく、表の中にコピーした行を挿入したい、という意味になります)
 
■行を挿入するとその分、行は増える
→その通りです。
質問文に記載の通り、
(A1〜D8までの表になる。2行目4行目は、A1〜D8までの表の中に同じものが2行ある)
という状態になるかと思います。
 
■「その塊のまま挿入したい」と「ペーストした際に」はどちらが正しいか?
→「その塊のまま挿入したい」が最終目標です。
 でも、表の外に一旦ペーストして、それを行ごとコピーして、挿入でも可です。
 
質問が良くなくて申し訳ありません。
(ロング) 2025/05/13(火) 14:58:31

 手動による非表示列がコピーされない 
 ⇒ いったん再表示するほかないです。

 コピーして、
 貼り付けは以下のように行う。
 ・いったん最後の行より下に貼り付け
 ・フィルタを解除して(*)
 ・貼り付けた行全体を再度選択して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


「10000万行」これ本当ですか。
(?) 2025/05/13(火) 19:38:27

 >任意の条件で、フィルターを用いて絞り込みをし、

 >■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.