
エクセル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行目以降のデータが入ってしまいます。
どのように処理したらよいかアドバイスよろしくお願いします。
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
こちらはオートフィルタの場合ですね。
私も少しだけVBAをやっているのでとても勉強になります。
参考にさせていただきます。
ありがとうございました。
No.4
- 回答日時:
>どのように処理したらよいかアドバイスよろしくお願いします。
1~9行目と16行目以降の2回に分けてコピーするのが最もシンプルで分かり易い方法です。
非表示セルを跨がると非表示セルを除いてコピーできません。
範囲選択後にAltキー+;キーで非表示領域を除いたデータをコピーの操作でクリップボードに取り込めますが貼り付けのときに2つの領域へ跨ることができませんので目的に合いません。
B10~B15がブランクの場合は貼り付け時に空白を無視する方法で貼り付ければ目的に合います。
作業用の列を使えれば次の式で値を選別すればコピー可能ですが、2回に分けてコピーする方が手っ取り早いでしょう。
=IF(AND(ROW()>9,ROW()<16),A5,B5)
尚、オートフィルでコピーすると非表示のセルにもコピーされますので、上記の式を下へ必要数だけオートフィルでコピーしてください。
作業用の列をコピーしてA列へ値の貼り付けを行えばよいでしょう。
No.3
- 回答日時:
簡単な方法:
A1に
=B1
と記入,A1をコピーしてA列の「見えてるセル」にふつーに貼り付け
状況に応じてA列をコピー,その場で形式を選んで値のみ貼り付けて完成。
別の手:
B1からB9まで,B列のデータを記入する
B10からB15まで,B列は「ホントに何も入ってない」空っぽの状態にする
B16以下にまた続きのデータを記入する
B1からB20までとかを「非表示とかしないで」全部まとめてコピーする
A1を選ぶ
形式を選んで貼り付けの「空白を無視する」にチェックしてそのまま上書き貼り付ける。
B列を「壊せない」なら,勿論B列から一度必要なネタだけをC列とかに転記して,そちらを使う事でも構いません。
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列にコピー
↓
[編集]グループの[並べ替えとフィルター]をクリック
↓
現れた選択肢の中にある[フィルター]をクリックする事で、フィルターを解除

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelにおける転記マクロの書き方 2 2023/05/12 03:16
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Excel(エクセル) 特定文字(数字)で行挿入、挿入された行で合計したい 2 2023/03/13 14:30
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
「B列が日曜の場合」C列に/...
-
エクセルの並び変えで、空白セ...
-
EXCELで 一桁の数値を二桁に
-
Excel 文字列を結合するときに...
-
Excelで半角の文字を含むセルを...
-
エクセルで、列の空欄に隣の列...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ値を探して隣の...
-
Excel、市から登録している住所...
-
エクセルの表示画面(シート)...
-
エクセルの表から正の数、負の...
-
VBA 連続行データを5行ずつ隣の...
-
VBAでセル入力の数式に変数を用...
-
エクセルで一行毎、一枚づつ自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルで文字が混じった数字...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
Excel 文字列を結合するときに...
-
エクセルのセル内の文字の一部...
-
【VBA】特定列に文字が入ってい...
-
Excel、市から登録している住所...
-
文字列に数字を含むセルを調べたい
-
エクセルの表から正の数、負の...
-
VBAで文字列を数値に変換したい
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
おすすめ情報