• 締切済み

抽出した状態でのコピー

お世話になります。 Excel2010 あ い う あ あ え お というデータがあり「あ」で抽出すると、 あ あ あ となります。これらの「あ」を「A」にしたいので、一番上の「あ」を「A」と入力しなおし、オートフィルでコピーしたり、他の方法でコピーしても A い う A A え お となりますが、なぜか A A A A A え お となる事象がありました。要するに抽出して隠れているセルにもコピーされました。 どのようにすると、このような事象になるのでしょうか。 コピーのやり方なのか、Excelの設定なのか分からないでいます。 ご教授の程、宜しくお願い致します。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

>#1様のお礼の内容に例を記載しておりますので、お試しいただけると幸いです。 大変失礼しました、早合点して質問を勘違いしていたようです。 そもそもフィルタモードは、オートフィルでもコピーのみ可能というようにシートが特殊な状態なのですが(フィルタしたデータの上にコピーすることを想定していない)、一般に、形式を選択して貼り付けでの挙動が通常の貼り付けと違うのはエクセルの仕様範囲のことかもしれません。 例えば、形式を選択して貼り付けで「数式」で貼り付けると、エラーメッセージも出ることなく、数式や値が結合セルの隠れているセル(空白セル)にも値を入れることができます。 そのような観点からは、今回の現象も、そもそもExcelの仕様の想定外の操作ということではないでしょうか。

naoto0216
質問者

お礼

度々のご回答ありがとうございます。 また、事象をうまく説明できておらず申し訳ありません。 確かに、今回の例だと単純に列を指定して「あ」を「A」に置き換えれば済むことなので、抽出されている状態でコピペすること自体想定外の操作なんでしょうね。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です。 >そもそも値の貼り付けした場合は抽出して隠れているセルまで貼り付けされてしまう仕様ということなのでしょうか? の件について・・・ 前回のコードは貼り付け等は考えていません。 質問にある >これらの「あ」を「A」にしたいので の部分重視ですので、 単にオートフィルタで表示されているデータのみのデータ変更のコードです。 (実際はオートフィルタは関係なく、単に置換だけで済む操作だとは思いますが・・・) すなわち質問の後半にある コピーなど一切考えていませんので 質問の意図とは違っていたら無視してください。m(_ _)m

naoto0216
質問者

お礼

度々のご回答ありがとうございます。 あえてVBAで書かれていたので、tom04様は普通の貼り付けだとOKで値の貼り付けだとNGということをご存じかと思った次第です。失礼しました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

自己解決されたということですが、基本的にフィルタモードでの挙動を勘違いされているようです。 >結果的に、普通に貼り付けるケースと「値」を貼り付けるケースでは、貼り付けられる範囲が異なるようです。 通常の貼り付けと値貼り付けで結果が異なることはありませんので、もう一度落ち着いて挙動を確認してみてください。 一般にフィルタモードのセルをコピーすると、表示されているセルだけ(飛び飛びのセル)がコピー対象になります。すなわち可視セルだけがコピーされるわけです。 このようにとびとびのセルをコピーしてもクリップボードには連続したセルのデータと認識されますので、可視セルが連続したデータのように貼り付けられます。 一方、フィルタモードにしたセル上にコピーしたものを貼り付ければ、可視セル以外のセルにも貼り付けられますので(これがExcelの仕様です)、ご質問のような状況が発生します。 ちなみに、フィルタモードでオートフィルドラッグした場合は、表示されているセルだけが「コピー」対象になり、表示セルだけのデータを変更することができます。 このケースでは通常のオートフィル操作とは異なり、「コピー」以外の連続データなどの入力はできません(オートフィルのオプションがありません)。

naoto0216
質問者

お礼

ご回答ありがとうございます。 私の記載した例を一度お試し頂けたらと思います。

naoto0216
質問者

補足

MackyNo1様は質問を勘違いされているかと思います。 抽出した状態で連続したセルをコピーして別の箇所に貼り付けるのではなく、例に記載した内容となります。#1様のお礼の内容に例を記載しておりますので、お試しいただけると幸いです。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! すでに解決済みのようで余計なお世話かもしれませんが・・・ VBAになってしまいますが、 オートフィルタで表示されているデータのみ変更可能です。 データはA列にあり、1行目は項目行で2行目以降にデータがあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim str As String, endRow As Long endRow = Cells(Rows.Count, "A").End(xlUp).Row If ActiveSheet.AutoFilter.FilterMode Then str = InputBox("置き換え文字を入力") Range("A2:A" & endRow).SpecialCells(xlCellTypeVisible) = str End If End Sub 'この行まで ※ オートフィルタが設定してあっても フィルタがかかってない場合は何も変化ありません。m(_ _)m

naoto0216
質問者

お礼

ご回答ありがとうございます。 tom04様がVBAを作ってくれたということは、そもそも値の貼り付けした場合は抽出して隠れているセルまで貼り付けされてしまう仕様ということなのでしょうか? 普通に貼り付けた場合と値で貼り付けた場合で、貼り付け範囲が違うのは納得いかないところです。。

回答No.2

興味深く質問を拝見させて頂きました。 Excel2007ではありますがマイクロソフトのサポートページに似たような事象紹介がありましたが・・。 例えば添付画像の様なデータの場合、 (1)C2~C6をコピーする (2)A列を「あ」のみ抽出 (3)A2を選択して貼り付け 確かにこの手順でコピペをすると「AAAAえお」となっています。 ちょっとこじつけっぽいですかね^_^;

参考URL:
http://support.microsoft.com/kb/928974/ja
naoto0216
質問者

お礼

ご回答ありがとうございます。 #1さんのお礼に書かせて頂いた通り、自己解決いたしました。 セルに罫線が引かれていたり、塗りつぶしされている場合は「値」で貼り付けることがよくあるかとおもいますが、抽出された状態で値を貼り付ける場合は注意が必要のようです。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

フィルターを使うと見た目はそのようになるのではないでしょうか。

naoto0216
質問者

お礼

ご回答ありがとうございます。 自己解決致しました。 また、ちょっと例がマズかったです。こちらが正解の例です。 あ あ う あ あ え お 抽出した状態でセルをコピーし、貼り付けるセルを選択した状態でCtrl+Vや右クリック⇒貼り付けとやれば、隠れているセルに貼り付けられることはありませんでしたが、同様に右クリック⇒形式を選択して貼り付けで「値」を貼り付けると、隠れているセルまで貼り付けられることが判明しました。 結果的に、普通に貼り付けるケースと「値」を貼り付けるケースでは、貼り付けられる範囲が異なるようです。 例だと、抽出した状態で あ あ あ あ となり、一番上の「あ」を「A」と入力しなおし、下3つの「あ」を選択した状態でCtrl+Vとし、抽出を解除すると A A う A A え お となりますが、「値」で貼り付けてしまうと A A A A A え お となり、抽出して隠れていた「う」までもコピーした値が貼り付けられてしまいます。 調べてもこのような情報は見当たらなかったのでExcelのバグ?かもしれません。

関連するQ&A