[[20200303163804]] 『フィルタをかけた状態で不可視セルもコピーする方』(マンモス狐太郎) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フィルタをかけた状態で不可視セルもコピーする方法』(マンモス狐太郎)

一覧表は、下の表みたいな感じです。(説明が下手ですいません。)
D列を非表示にし、フィルターで内容を絞っている状態です。
            

   A     B    C    E
1 No.  詳細  担当1 担当3
2 1-XXX りんご 鈴木  高橋
5 2-XXX ばなな 鈴木  高橋
6 3-XXX みかん 鈴木  高橋
9 4-XXX もも  鈴木  高橋

行をコピーして10行目以降に貼り付けをしていきたいと思うのですが、コピーをすると可視セルのみが選択されてしまいます。
原因は調べた結果、フィルターを設定していることにあるようで、実際フィルターを外してコピーを行うと可視セル以外もちゃんとコピーの対象になりました。

なので、フィルターを外せばいいだけの話なのですが、実際の表はこれよりも大きくて、フィルターの設定解除 or 非表示セルの表示も毎回となると大変です。
出来れば、このままの状態で可視セル以外も一緒にコピーがしたいです。

よろしくお願いします。

< 使用 Excel:Office365、使用 OS:Windows10 >


>実際の表はこれよりも大きくて、
表の大きさは関係ないです。
>フィルターの設定解除 or 非表示セルの表示も毎回となると大変です。
理解できません。マクロで実行するのだから、手間は同じです。

どうしても強行突破したいなら、一行ずつコピーを繰り返しください。

(γ) 2020/03/03(火) 20:24


これマクロの質問なんでしょうか?

とりあえず、
>フィルターの設定解除 or 非表示セルの表示も毎回となると大変です。
とのことですから、そのシートごとコピー(作業用のシートを作成)してしまい、作業用シートのフィルターの設定解除 or 非表示セルの表示をして、そこからコピペしたらいいんじゃないですか?
(終わったら作業用シートは削除する)

そうすれば、元のシートは無傷ですよ。

(もこな2) 2020/03/04(水) 08:28


γさん
コメントありがとうございます。
説明が悪く申し訳ありません。
マクロではなく、手作業で作っている表です。
今回は、もこな2さんの案を参考にします。

もこな2さん
コメントありがとうございます。
そうなんです。マクロは使用しておりません。
個人で持っている表なのである程度自由にできるので、作業用シートを作成して、そこに元となる行を作成することにしました。

解決しました。ありがとうございます。
(マンモス狐太郎) 2020/03/04(水) 09:18


>作業用シートを作成して、そこに元となる行を作成することにしました。
解決したならいいんですけど、一旦解除したあと設定しなおすのがめんどくさいという話ではなかったんですかね・・・

一応、私が言ってたことをマクロ化するとこんな感じです。

    Sub 作業シート生成()
        ActiveSheet.Copy after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)

        With ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
            .Columns.Hidden = False
            .AutoFilterMode = False
        End With
    End Sub

試すなら、個人用マクロブックの標準モジュールに入れて試してみてください。
(目的のブックのほうに記述しちゃうと、マクロ付きブックにせざるをえなくなるので)

(もこな2) 2020/03/04(水) 09:46


 フィルタの条件が決まっているなら、それをユーザー設定のビューに登録しておけば
 フィルタリングの手間が少し省けるかも知れません。

 そうか…列の非表示は手動でもフィルタを設定するとそこも含めて
 可視セルのみの選択になるんですね。
(コナミ) 2020/03/04(水) 09:56

Excel2010までは、非表示の行もコピー対象になっていて、非表示を除外したい場合は選択状態から ALT+; を押す、という方法だったのですが(非表示行を選択から外すには?、なんて質問があったくらい)、2013でインターフェースが大きく変わってしまい、元から非表示行が選択されなくなってしまったのです。 おかげで、選択状態から ALT+; としても、見た目は変わりますが、コピー結果は変わらないという、無意味な操作になってしまいました。

他にも、表示更新を抑止しても表示更新したり、ウィンドウを最小化するとオブジェクトが参照できなくなったり、いろいろ過去マクロの実行に支障がでてたりします。 WPF(DirectXが使われるので描画が高速になる)を利用してソースコードを一新したため思われますが、いろいろ機能ダウンしているのは、MSのバカヤロー!、としか言えませんね。
(???) 2020/03/04(水) 10:10


もこな2さん
コメントありがとうございます。
よくよく考えたら馬鹿な話なのですが、欲しいのは表の様式だけだったので、サンプルを別のシートに作成しておけばいいだけの話でした。
すいません。(-_-;)

コナミさん
コメントありがとうございます。
ユーザー設定のビュー…今まで使ったことがなかったです。
参考にさせていただきます。

そうなんです。可視セルに勝手になって、今回調べて分かりました。

???さん
コメントありがとうございます。
たまに気の使い方が有難迷惑になって、ぐぬぬとなります。

(マンモス狐太郎) 2020/03/04(水) 10:28


 2010、2016どちらもオートフィルターで選択していない状態だと手作業で非表示にした行や列もコピーの対象になり
 オートフィルターで行の選択を行っていると手作業で非表示にした行や列がコピー対象外になっているようだが。
(ねむねむ) 2020/03/04(水) 10:39

ねむねむさん
コメントありがとうございます。
では、以前のバージョンからそういう仕様なんですね。
勉強になりました。
(マンモス狐太郎) 2020/03/04(水) 13:30

おや、2010も同じでしたか。今は2010を消してしまっていて、再確認できないので、誤情報を書いたかもです。 ありがとうございます。(2010でいつもオートフィルタしてから別シートにコピペしていたものが、2013に変えてから非表示部分が詰まって張り付けられるように変わって困った覚えがあるのですが、列非表示とオートフィルタの組み合わせだったせい?)

今も昔も、確実なのは、非表示を無くしてからコピー、という事ですかね。
(???) 2020/03/04(水) 14:09


おや、勘違いしていたようで、どうも失礼しました。ペコリ。

オートフィルタを掛ける前にコピーすれば良い、作業の順序だけの問題とは思っていましたが。

くだんの仕様の件は、
記憶がある限りではExcelVer5の頃から変わっていない仕様だと思います。
フィルタを掛けた時は、特に可視セルに限定しなくても、可視セルだけがコピーされますよ、
などと、Excel2003の頃特に、得意顔で?何度も回答していたものです。

(γ) 2020/03/04(水) 15:43


 >欲しいのは表の様式だけだったので

テーブル機能を使えば、表の領域が順次自動で増えますよ。

見た目は最初抵抗がありますが、
後で好きなように変えればいいので、
とりあえず範囲をテーブルに設定してみてはいかがでしょうか?
(まっつわん) 2020/03/04(水) 17:33


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.