
よろしくお願いします。
office365なのですが。
コピー元でフィルタをかけ、表示されたままでコピー先にコピーしたいのですが。。。
例えば(わかりづらかったらすいません)
No 名前
1 あ
2 い
3 う
4 え
5 お
というのがあって、フィルタを掛けてNo1、3,5(あ、う、お)
表示します。それをコピーして
コピー先でも同じ形となるようコピーしたいです。
行もコピー元でフィルタをかけ表示されていない、No2,4(い、え)はコピーされず、空白となるようにコピーしたいのですが。。。(行を詰めた形でのコピーとならないようにしたいです。)
方法がわからず、そもそもそのようなこぴーはできないのでしょうか
詳しい方教えて頂ければと思います。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
No1です。
マウロで対応する例を考えてみました。
方法はいろいろありますが、これまでとほぼ同様に使える感じにしてみました。
◇ 準備作業
下記のマクロを標準モジュールにコピペし、そのマクロにお好みのショートカットキーを登録しておきます。
(このショートカットキーを押すと、マクロが実行される)
◇ 使い方
1)フィルターをかけた(かけてなくてもかまいませんが)状態で、コピーしたい範囲を選択し、上記のショートカットキーを押します。
(これにより、ご希望の形式でクリップボードにコピーした状態になります)
2)ペーストしたいセルを選択し、Ctrl + V などでペースト。
これまでの、コピー、ペースト(Ctrl+C、Ctrl+V)の代わりに、登録したショートカットを使うだけの違いで、ご質問のような処理になります。
※ 処理の都合上「作業用のシート」(=copy_work)を利用しています。
非表示にしてありますので、気にはならないと思いますが、シートがあるのでブックの容量がわずかに増加します。
(シートは勝手に追加されますので、気にする必要はありません)
(作業シートなしでも可能ですが、使い勝手を優先しこの方法にしてあります)
※ 実際に行っている処理内容は「指定範囲を非表示の行は空白行としてコピーする」というものですので、フィルター操作には直接関係しません。
ですので、フィルター範囲に対して一部分だけのコピーも可能ですし、フィルター外の範囲を含めてのコピーも可能です。
※ 対象範囲に関数式等がある場合、ペースト時に値が変わってしまう可能性があるため、以下のマクロでは「値をコピー」の状態にしてあります。
もしも、「数式は数式のままコピーしたい」(=エクセルによって変換される可能性がありますが・・)のであれば、以下のコードの下から5行目の
dRange.Rows(i).Value = sRange.Rows(i).Value '***
の1行を削除すればそのようになります。
以下、マクロコードです。
Sub Q13786277()
Dim sh As Worksheet, cs As Worksheet
Dim dRange As Range, i As Long
Dim sRange, s, M
Const sn = "copy_work"
M = Split("セル範囲を選択してください,指定範囲が複雑すぎます", ",")
Set sRange = Selection
If TypeName(sRange) <> "Range" Then MsgBox M(0): Exit Sub
If sRange.Areas.Count > 1 Then MsgBox M(1): Exit Sub
Set sh = ActiveSheet
For Each s In Worksheets
If s.Name = sn Then Set cs = s: Exit For
Next s
If cs Is Nothing Then
Set cs = Worksheets.Add(before:=Worksheets(1))
sh.Activate
cs.Name = sn
End If
cs.Visible = False
cs.Cells.Clear
Set dRange = cs.Range(sRange.Address)
For i = 1 To sRange.Rows.Count
If sRange.Rows(i).EntireRow.Hidden = False Then
sRange.Rows(i).Copy dRange.Rows(i)
dRange.Rows(i).Value = sRange.Rows(i).Value '***
End If
Next i
dRange.Copy
End Sub
No.5
- 回答日時:
EXCELでフィルターを使う場合、全ての列を使用した表(A列からXFD列まで全て使った使った表)というケースは考えにくいので、どこかに未使用列(つまり空き列)があると思います。
この空き列を作業列として使用して、「可視セルのみコピー」を実施して空き列にコピーし、さらに、この空き列をもう一度コピーして、「空白セルを無視して貼付け」を行なえば、ご質問の主旨に沿った貼付けができると思います。
例えばご質問者が例示された「あ,い,う,え,お」にフィルターをかけて「あ,う,お」を抽出し、これを同シートの別表や別シートの「か,き,く,け,こ」に貼付けしたとき、「あ,き,う,け,お」となるようにするイメージです。
添付画像をご覧ください。
画像①のようにデータがあったとします。上の表の年齢40歳以下を抽出するためフィルターをかけて画像②のようになったとします。
コピーしたいのは「あ,う,お」であり、その方法は以下のとおりです。
(1)「あ,う,お」の範囲を選択
(2)メインメニューのホーム→検索と選択→条件選択してジャンプ→「可視セル」を選択としてOKを押す(左記一連の操作のショートカットとして「ALT+;」でもOK)
(3)すると、画像③のようになるので、CTRLキーを押した状態で、空き列(画像ではD列)の「コピーしたい範囲の先頭行と同じ行」をクリックしたまま、マウスをスライドして、「コピーしたい範囲の最終行と同じ行」まで進める
(4)すると、画像④のようになるので、CTRLキーを離さずに「R」キーを押すと画像⑤のようになる
(5)年齢40歳以下というフィルターを解除すると画像⑥のようになり、空き列(画像ではD列)に、ご質問者のいう「(い、え)はコピーされず、空白となるようにコピーしたい」が実現される
これを指定位置に貼り付けしたい場合、例えば画像①の「か,き,く,け,こ」に「あ,う,お」を「コピー先でも同じ形となる」ように貼り付けいるには、
(ア)画像⑦(a)の範囲、D列の「あ~お」の範囲を選択し、右クリックしてコンテキストメニューから「コピー」をクリック
(イ)画像⑦(b)の範囲、B列の「か~こ」を選択
(ウ)右クリックしてコンテキストメニューから「形式を選択して貼り付け」をクリック
(エ)画像⑧のダイアログが表示されるので「空白セルを無視する」にチェックして、OKを押す
これで画像⑦の下の表のように「あ,う,お」が同じ形で「か,き,く,け,こ」に貼り付けられ、結果として「あ,き,う,け,お」になります。

No.4
- 回答日時:
[No.3]の続報ッ!
たった今、思い付きました。正に逆転の発想でしたッ!
添付図だけでお分かりかと。(^_^)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓

No.1
- 回答日時:
こんばんは
すでにお試しと思いますが、通常のコピペの操作では、表示されているセル(=行)のみがコピー、ペーストされます。
多少の手間はかかりますが、ご質問のような結果を得たければ、関数を用いて参照し、その結果をコピー「値をペースト」する(=固定値化する)ことで実現は可能です。
例えば、コピー元の範囲がA1セルから始まっているとして、コピー先のそれに対応するセルに
=IF(AGGREGATE(3,5,A1)>0,A1,"")
の式を入力し、右方、下方に必要な範囲にフィルコピーします。
(この状態で、ご希望のような表示になると思いますが、関数のままだとフィルターを解除した際に、全部が表示されてしまいます)
関数を外すために、範囲全体を選択してコピー、そのまま「値をペースト」で固定値化します。
(当然ですが、ペースト先のセル(=行)は全て表示状態とします)
別法として、ご質問のような機能のマクロを作成しておく方法も考えられます。
マクロであれば、「値をペースト」のような処理は不要にできますので、多少は操作が簡単になるかも知れません。
回答ありがとうございます。
教えて頂いた方法、試してみたいと思います。
表示されているところだけコピーされるというのは、
No1,3、5がコピーされますが、2,4はコピーされないので、
貼付け先では、1,3,5がそれぞれ、1行目、2行目、3行目にコピーされてしまうということですね。(実際そうなりました。)
マクロが作れない私は、一行ずつ、地道にコピーするしかないのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Excel(エクセル) エクセルでフィルタ後、考えている場所に値コピーができない。 1 2022/05/02 21:01
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Windows 10 エクセルの罫線がパワポに貼り付けると見えなくなる。 3 2022/12/27 15:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) 関数を用いて表示したセルの内容を、見えている形でコピーする方法 2 2022/09/14 16:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/04/02 16:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
塗りつぶしの色をコピーするには
-
WORDのグレー括弧って?
-
C+vのvは英語で何の頭文字...
-
大学生です。moodle上でのテス...
-
数式による空白を無視して最終...
-
【エクセル】表の中の文字だけ...
-
セルに値がある行のみを抽出す...
-
VBAのテキストボックスに文字列...
-
Excel 3列毎のセルを別の表に抽...
-
エクセルで値だけを移動するこ...
-
エクセルVBAでコピーすると行の...
-
Excel2010 図としてコピー ショ...
-
Wordの「背景色を消す方法」教...
-
エクセルでコピーしたものをコ...
-
エクセルでマクロにてセル色と...
-
オートフィルタ時に非表示にし...
-
マイナスの場合「xxxx-」...
-
PDFの一部を切り取って別のシー...
-
wordの40ページをコピーする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで行ごとコピー、同じ行を...
-
塗りつぶしの色をコピーするには
-
C+vのvは英語で何の頭文字...
-
エクセルでマクロにてセル色と...
-
WORDのグレー括弧って?
-
【エクセル】表の中の文字だけ...
-
セルに値がある行のみを抽出す...
-
VBAのテキストボックスに文字列...
-
コピーされたセルの文字が途中...
-
エクセルでコピーしたものをコ...
-
Excel 3列毎のセルを別の表に抽...
-
セルから一部だけを抜き出して...
-
マイナスの場合「xxxx-」...
-
Wordの「背景色を消す方法」教...
-
数式による空白を無視して最終...
-
Wiresharkのパケットの詳細のテ...
-
ExcelでA列をコピーしたいので...
-
大学生です。moodle上でのテス...
-
EXCEL 1つ飛ばしのセル参照
-
エクセルで値だけを移動するこ...
おすすめ情報