- ベストアンサー
エクセル非表示行を上書きせずにコピーする方法
- エクセル2010を使っております。特定の行を非表示状態にしている場合、非表示行を飛ばして上書きコピーする方法についてアドバイスをお願いします。
- エクセル2010を使用しております。A列とB列にデータがあり、特定の行(10行目から15行目)を非表示にしています。この非表示行を飛ばして、B列のデータをA列に上書きコピーする方法を教えてください。
- エクセル2010を使っています。A列とB列にデータがあり、B列のデータをA列に上書きコピーしたいです。ただし、特定の行(10行目から15行目)は非表示にしています。非表示行を飛ばして上書きコピーする方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
見せたくない行を非表示にしたまま、B列の貼り付けしたい範囲を選択→Alt+;→「=」と入力し、十字キーの「←」(左向き矢印)を押す→Ctrl+Enter 非表示行を表示させ、B列をコピー→値で貼り付け で如何でしょうか?
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 先を読みすぎかもしれませんが・・・ 一般的な操作として行が非表示になるといえば、オートフィルタがすぐに思い浮かびます。 (もちろん手作業で非表示にすることもあるとは思いますが) >非表示状態にしております。 はオートフィルタである行が非表示になっているという解釈で、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
お礼
こちらはオートフィルタの場合ですね。 私も少しだけVBAをやっているのでとても勉強になります。 参考にさせていただきます。 ありがとうございました。
- bunjii
- ベストアンサー率43% (3589/8249)
>どのように処理したらよいかアドバイスよろしくお願いします。 1~9行目と16行目以降の2回に分けてコピーするのが最もシンプルで分かり易い方法です。 非表示セルを跨がると非表示セルを除いてコピーできません。 範囲選択後にAltキー+;キーで非表示領域を除いたデータをコピーの操作でクリップボードに取り込めますが貼り付けのときに2つの領域へ跨ることができませんので目的に合いません。 B10~B15がブランクの場合は貼り付け時に空白を無視する方法で貼り付ければ目的に合います。 作業用の列を使えれば次の式で値を選別すればコピー可能ですが、2回に分けてコピーする方が手っ取り早いでしょう。 =IF(AND(ROW()>9,ROW()<16),A5,B5) 尚、オートフィルでコピーすると非表示のセルにもコピーされますので、上記の式を下へ必要数だけオートフィルでコピーしてください。 作業用の列をコピーしてA列へ値の貼り付けを行えばよいでしょう。
お礼
やはり別列を利用して加工が必要になるのですね。 参考になりました。 ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
簡単な方法: A1に =B1 と記入,A1をコピーしてA列の「見えてるセル」にふつーに貼り付け 状況に応じてA列をコピー,その場で形式を選んで値のみ貼り付けて完成。 別の手: B1からB9まで,B列のデータを記入する B10からB15まで,B列は「ホントに何も入ってない」空っぽの状態にする B16以下にまた続きのデータを記入する B1からB20までとかを「非表示とかしないで」全部まとめてコピーする A1を選ぶ 形式を選んで貼り付けの「空白を無視する」にチェックしてそのまま上書き貼り付ける。 B列を「壊せない」なら,勿論B列から一度必要なネタだけをC列とかに転記して,そちらを使う事でも構いません。
お礼
別セルに転記して空白などの加工を加えるという方法もありですね。 参考になりました。 ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
まず、適当な使用していない列(ここでは仮にD列とします)の10行目~15行目に、「1」でも「あ」でも何でも良いので、何らかの値を入力して下さい。 この時、B10~B15のセル範囲を非表示としている方法が、もしも、セルの書式設定の表示形式を ;;; とする事によるものである場合には、D列の(B列にデータが入力されている行範囲内における)全てのセルに、前もって次の様な関数を入力しておきますと、非表示の範囲が変更になった場合においても、一々、D列に値を入力しておく手間が省けます。 =IF(CELL("format",INDEX($B:$B,ROW()))="H",TRUE,"") 次に、以下の様な操作を行って下さい。 [ホーム]タブをクリック ↓ D列全体を選択 ↓ [編集]グループの[並べ替えとフィルター]をクリック ↓ 現れた選択肢の中にある[フィルター]をクリック ↓ D1セルの所に現れた「▼」ボタンをクリック ↓ 現れた選択肢の中にある[(すべて選択)]の所にあるチェックを外す ↓ 選択肢の中にある[(空白セル)]の所にあるチェックを入れる ↓ [OK]ボタンをクリック ↓ B列全体を選択 ↓ オートフィルを使用して、B列のデータをA列にコピー ↓ [編集]グループの[並べ替えとフィルター]をクリック ↓ 現れた選択肢の中にある[フィルター]をクリックする事で、フィルターを解除
お礼
図解も入れていただき感謝いたします。 いろいろと応用ができそうです。 ありがとうございました。
お礼
キーの使い方、特にCtrl+Entがポイントですね。 かなりシンプルに操作できます。 ありがとうございました。