エクセル非表示行を上書きせずにコピーする方法

このQ&Aのポイント
  • エクセル2010を使っております。特定の行を非表示状態にしている場合、非表示行を飛ばして上書きコピーする方法についてアドバイスをお願いします。
  • エクセル2010を使用しております。A列とB列にデータがあり、特定の行(10行目から15行目)を非表示にしています。この非表示行を飛ばして、B列のデータをA列に上書きコピーする方法を教えてください。
  • エクセル2010を使っています。A列とB列にデータがあり、B列のデータをA列に上書きコピーしたいです。ただし、特定の行(10行目から15行目)は非表示にしています。非表示行を飛ばして上書きコピーする方法を教えてください。
回答を見る
  • ベストアンサー

エクセル 非表示行を上書きせずにコピーする方法

  エクセル2010を使っております。 例えば、 A列とB列にデータが入っており、B列のデータをそのままA列に平行移動で上書きコピーしたいのですが、 条件がありまして、 特定の行(ここでは10行目から15行目としますが)を非表示状態にしております。 この非表示行を飛ばして上書きしたいのです。 ですから、結果としては ・A列の1~9行目まではB列の1~9行目のデータが入っていて ・A列の10~15行目までは元のA列の10~15行目までのデータが入っていて ・A列の16行目以降にはB列の16行目以降のデータが入っている、 ということになります。 可視セルを使ってもみたのですが、 どうしてもA列の10行目以降にB列の16行目以降のデータが入ってしまいます。 どのように処理したらよいかアドバイスよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.1

見せたくない行を非表示にしたまま、B列の貼り付けしたい範囲を選択→Alt+;→「=」と入力し、十字キーの「←」(左向き矢印)を押す→Ctrl+Enter 非表示行を表示させ、B列をコピー→値で貼り付け で如何でしょうか?

mezzanine_jog
質問者

お礼

キーの使い方、特にCtrl+Entがポイントですね。 かなりシンプルに操作できます。 ありがとうございました。

その他の回答 (4)

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

こんばんは! 先を読みすぎかもしれませんが・・・ 一般的な操作として行が非表示になるといえば、オートフィルタがすぐに思い浮かびます。 (もちろん手作業で非表示にすることもあるとは思いますが) >非表示状態にしております。 はオートフィルタである行が非表示になっているという解釈で、VBAでの一例です。 オートフィルタを設定する場合は1行目は何らかの項目行が必要ですので、 データは2行目以降にあるとしています。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペースト → Excel画面に戻り、マクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long If ActiveSheet.FilterMode = True Then For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row '←B列で最終行を取得 If Rows(i).Hidden = False Then Cells(i, "A") = Cells(i, "B") End If Next i End If End Sub 'この行まで ※ オートフィルタでない場合は無視してください。m(_ _)m

mezzanine_jog
質問者

お礼

こちらはオートフィルタの場合ですね。 私も少しだけVBAをやっているのでとても勉強になります。 参考にさせていただきます。 ありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>どのように処理したらよいかアドバイスよろしくお願いします。 1~9行目と16行目以降の2回に分けてコピーするのが最もシンプルで分かり易い方法です。 非表示セルを跨がると非表示セルを除いてコピーできません。 範囲選択後にAltキー+;キーで非表示領域を除いたデータをコピーの操作でクリップボードに取り込めますが貼り付けのときに2つの領域へ跨ることができませんので目的に合いません。 B10~B15がブランクの場合は貼り付け時に空白を無視する方法で貼り付ければ目的に合います。 作業用の列を使えれば次の式で値を選別すればコピー可能ですが、2回に分けてコピーする方が手っ取り早いでしょう。 =IF(AND(ROW()>9,ROW()<16),A5,B5) 尚、オートフィルでコピーすると非表示のセルにもコピーされますので、上記の式を下へ必要数だけオートフィルでコピーしてください。 作業用の列をコピーしてA列へ値の貼り付けを行えばよいでしょう。

mezzanine_jog
質問者

お礼

やはり別列を利用して加工が必要になるのですね。 参考になりました。 ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

簡単な方法: A1に =B1 と記入,A1をコピーしてA列の「見えてるセル」にふつーに貼り付け 状況に応じてA列をコピー,その場で形式を選んで値のみ貼り付けて完成。 別の手: B1からB9まで,B列のデータを記入する B10からB15まで,B列は「ホントに何も入ってない」空っぽの状態にする B16以下にまた続きのデータを記入する B1からB20までとかを「非表示とかしないで」全部まとめてコピーする A1を選ぶ 形式を選んで貼り付けの「空白を無視する」にチェックしてそのまま上書き貼り付ける。 B列を「壊せない」なら,勿論B列から一度必要なネタだけをC列とかに転記して,そちらを使う事でも構いません。

mezzanine_jog
質問者

お礼

別セルに転記して空白などの加工を加えるという方法もありですね。 参考になりました。 ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 まず、適当な使用していない列(ここでは仮にD列とします)の10行目~15行目に、「1」でも「あ」でも何でも良いので、何らかの値を入力して下さい。  この時、B10~B15のセル範囲を非表示としている方法が、もしも、セルの書式設定の表示形式を ;;; とする事によるものである場合には、D列の(B列にデータが入力されている行範囲内における)全てのセルに、前もって次の様な関数を入力しておきますと、非表示の範囲が変更になった場合においても、一々、D列に値を入力しておく手間が省けます。 =IF(CELL("format",INDEX($B:$B,ROW()))="H",TRUE,"")  次に、以下の様な操作を行って下さい。 [ホーム]タブをクリック   ↓ D列全体を選択   ↓ [編集]グループの[並べ替えとフィルター]をクリック   ↓ 現れた選択肢の中にある[フィルター]をクリック   ↓ D1セルの所に現れた「▼」ボタンをクリック   ↓ 現れた選択肢の中にある[(すべて選択)]の所にあるチェックを外す   ↓ 選択肢の中にある[(空白セル)]の所にあるチェックを入れる   ↓ [OK]ボタンをクリック   ↓ B列全体を選択   ↓ オートフィルを使用して、B列のデータをA列にコピー   ↓ [編集]グループの[並べ替えとフィルター]をクリック   ↓ 現れた選択肢の中にある[フィルター]をクリックする事で、フィルターを解除

mezzanine_jog
質問者

お礼

図解も入れていただき感謝いたします。 いろいろと応用ができそうです。 ありがとうございました。

関連するQ&A

  • エクセルで、非表示になっている列もコピー

    エクセルで、あるシートの一部の列が非表示になっています。 フィルターしている状態で行をコピーし、他のシートに貼り付けると、 非表示になっている列のセルが貼りつきません(可視セルのみコピーされます)。 いちいち、非表示列を再表示せずに、 すべての列を貼り付けるには、どうすればよいのでしょうか。 Excel2007

  • Excel2013-フィルターをかけた状態でコピペ

    フィルターをかけた可視セル上でのみ作業したいとき、コピー&ペーストの方法はありますか? エクセルでフィルターをかけて、1行目・5行目・10行目が見えています。 A列の上から3行をドラックしてコピーすると可視セル(A1・A5・A10)のみ選択されますが、それをB列1行目に貼り付けると、可視セル上の2行目・3行目(実際の5行目・10行目)から消えてしまいます。 フィルターを外すとB2・B3がA5・A10の内容に上書きされています。 可視セル上でのドラッグ+コピーは出来るので、 可視セル上でそれを”ペースト”出来ると便利なのですが、方法はありますか?

  • エクセルのフィルタリングされたのデータコピー

    Excel(2003、またはそれ以降)の質問です。 フィルタで抽出(可視化された)したデータだけをコピーし 別シートのフィルタで抽出したセルだけに張り付けることは可能でしょうか? (例) フィルタにより、シートAの1・2・5行目を抽出し、可視化された項目セルのみをコピー ↓ フィルタにより、シートBの3・6・9行目を抽出し、可視化された項目セルに張り付け。 ※普通にやろうとすると、コピーした内容が、シートBの不可視セルにまで張り付けられてしまいます。 ※コピー元、貼り付け先のセルのサイズや書式は同じです。 今はVLOOKUPで、シートA・Bの共通項目をキーにセルの内容を引っ張ってきてるんですが もう少し楽にコピペできればな、と思い質問しました。 分かりにくい質問ですみません。 何か良い方法があれば、教えてください。

  • エクセルで,複数行のままコピーしたい

    エクセルで,ある1つのセル(例えばA1)に,複数行になっている文字列があります(Alt+Enterにより,セル内で改行したものです). 別のセル(例えばB2)に「=A1」と入力すると,B2にはA1にある文字列が表示されるのですが,改行が消えてしまい,1行で表示されてしまいます. 改行を消さずにコピーする方法はないでしょうか.教えてください.エクセルのバージョンは2010です. よろしくお願いします.

  • エクセルの行コピー

    エクセルで 1Aから10Mまでデータが入っています。 このデータの2行目、3行目、6行目、9行目を行を表示しない設定にしてあります。 今、画面を見たままの状態(4つの行が隠れている状態)でコピーして別のシートに貼り付けたいのですが、隠れている行のデータまでコピーされて貼り付けられます。 上の例なら、貼り付けた後、行を表示しないに再度設定したらいいのですが、やりたいのは 現状1ページ目、2ページ目と印刷範囲を決めたA4サイズで8ページもののデータがあるのですが、これを 1ページ目の列右横方向に2ページ目のデータを移動させて、 4ページ目を3ページ目の横へ移動させてとして、A3サイズ4ページのデータにしたいです。 こうすると、表示を隠してあるページが奇数ページになく偶数ページにあると行を表示させない設定にできません。 何かいい方法があったらご教授ください。

  • Excelマクロを利用してコピーする方法について

    不特定の行を不特定の行にコピーするマクロを教えて下さい Rangeには直接セル位置を指定しなければならないと 思っているので何か方法がないでしょうか? 横に長い行を不特定位置にコピーしたいので           A列  B列  C列  D列 不特定の行  AAA 111 222 333 不特定の行  BBB 222 333 444 不特定の行 不特定の行 不特定の行 不特定の行 CCC 333 444 555  不特定の行 DDD 444 555 666   不特定の行 EEE 555 666 777  不特定の行 FFF 666 777 888  CCCが入力されているセルをクイック後、マクロを起動、BBBの下の行のセルを クイック後、CCCの行をそこにコピー そんな方法でのコピーがしたいのです 何か方法があったらお願いします

  • Excel 指定値だけ行コピー+値の移動

    Excel 2010でSheet1に次のような表があります。  A列  B列 C列 D列 E列  りんご 111  222 333 444  みかん 555  666  いちご 777  888 999   ・   ・   ・ これをマクロを使って、次のような形にしたいと思います。 1.C列以降の「数値が入った列数分だけ」行コピーをする。(最大9列まで)  (この例の場合りんごの行は3回、みかんの行は1回、いちごの行は2回) 2.次にC列以降の数値はコピーした行のB列に移動する。 マクロ実行後は次のようになります。  A列  B列  りんご 111  りんご 222  りんご 333  りんご 444  みかん 555  みかん 666  いちご 777  いちご 888  いちご 999   ・   ・   ・ 膨大な数のデータですので、マクロを使って処理したいと思っています。 どうぞよろしくお願いいたします。

  • Excelマクロで行を分割してコピーしたいのですが・・・

    いろいろなサイトで調べたのですが、方法が見つからずご質問させて頂きます。 Excelシートの中で値が入っている行まで順番に読み、A列のセルの値が'東京'かつB列の値が'2'以上の行があった場合に、その行をB列の値の数だけその行の下にコピーで挿入したいのですが、どのようなマクロにすれば良いかご教授頂けないでしょうか? 例) セルA1='東京' セルB1='3' の場合、 ---------------------------------- セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' ※セルB1を値の数だけ分割し、なおかつ値を'1'にする ※分割が終わったら、分割元の行を削除する ※その他の列の値はそのままコピーする 以上、宜しくお願い致します!

  • エクセルの置換

    m行n列の表があります。 第1行はタイトルで、 第2行の各列には (2,a)セルに関するデータが それぞれ入力されています。 第3行以降は、a列にのみコードが入力されていますが、b列以降は空欄です。 第2行のデータ中の (2,a)セルの文字を、 各行について (m,a)セルの文字に置換しながら第2行を各行にコピーして、(3,b)から(m,n)の空欄を埋めて表を完成させたいのです。 できれば、第2行の各列の書式も含めて第3行以降の各列にコピーするというVBAを教えていただきたくよろしくお願いします。

  • エクセルの列のある行のみをコピーする方法について

    B列に連続したデータが並んでいます。 添付データを見て頂いたほうが分かりやすいと思います。 B列の11行目から20行目をC列に、B列の21行目から30行目をD列にコピーするような効率的にデータを整理する方法はありませんでしょうか。 普段は、コピーして貼り付けることをしていますがデータ容量が膨大になってきますと間違えも怖いので自動ができると助かります。 よろしくお願いいたします。

専門家に質問してみよう