
No.10ベストアンサー
- 回答日時:
下記で合っているでしょうか?
違っていたらその旨教えてください。
「コピー元左上セル」と「貼付け開始左上セル」のシート名、セル番地は実際に合わせてください。
Sub test横横複数行()
Dim acell As Range
Dim bcell As Range
Dim i As Long
Dim cn As Long
Set acell = Sheets("Sheet1").Range("A1") 'コピー元左上セル
Set bcell = Sheets("Sheet1").Range("A5") '貼付け開始左上セル
Do While acell.Offset(0, i).MergeCells
cn = cn + acell.Offset(0, i).Columns.Count
i = i + 1
Loop
Do While bcell.MergeCells
bcell.Resize(1, cn + 1).Value = acell.Resize(1, cn + 1).Value
Set bcell = bcell.Offset(1, 0)
Loop
Set acell = Nothing
Set bcell = Nothing
End Sub
朝早くにご回答ありがとうございます。
試させていただきました。
結果、うまく実行できることを確認しました。
(途中に結合されていないセルがあるとその手前で止まる仕様なのですね。)
非常に助かりました。
ありがとうございます。
No.9
- 回答日時:
>コピー元 A B C D
>コピー先 A B C D
>コピー先 A B C D
>コピー先 A B C D
>コピー先 A B C D
上記のようになって欲しいのですか?
コピー元は1行
コピー先では、
同じ方向で
4行貼りつける
コピー先の行数は、コピー元のデータ数と同じ
ということですか?
今一度、コピー元とコピー先のレイアウト、結合セルサイズを説明していただけないでしょうか。
やりたいことをうまく説明できておらず、申し訳ありません。
>上記のようになって欲しいのですか?
はい。
>コピー先では、
>同じ方向で
>4行貼りつける
例では4行としていますが、100行以上あります。
>コピー先の行数は、コピー元のデータ数と同じ
>ということですか?
すみません。
こちらの意味はわかりませんでした。
次のようにしたいのです。
0 コピー元の値: A B C D
1 コピー先の値: A B C D
2 コピー先の値: A B C D
3 コピー先の値: A B C D
・ ・
・ ・
・ ・
・ ・
・ ・
100 コピー先の値: A B C D
※A、B、C、Dが格納されているコピー元のセルは、
A=3行2列、B=3行3列、C=3行3列、D=3行3列の結合セル。
※A、B、C、Dが格納されるコピー先のセルは、
いろいろなパターンの結合セルです。
(項番0、1、2、3それぞれで異なる行数の結合セルという意味)
No.8
- 回答日時:
ANo.4の返事
>結合セルが横に複数ある場合、それを縦方向にコピーするには
ANo.7の返事
>コピー元 A B C D
>コピー先 A B C D
内容が異なっているのですが、新しい返事の方が正解なら余り考えなくても良くなります。
下記の部分で縦か横かを制御しています。
直し方は、ヘルプでOffsetプロパティを調べれば直ぐに分かると思います。
Set acell = acell.Offset(1, 0)
Set bcell = bcell.Offset(1, 0)
アドバイスありがとうございます。
内容が異なっている認識はないのですが・・・
もし表現(Excelの言葉の定義を誤っている?)が異なっているので
したらすみません。
>新しい返事の方が正解なら
なおりました。
ただ、次のようにしかコピーできないようです。
コピー元 A B C D
コピー先 A
コピー先 A
コピー先 A
コピー先 A
教えてくださったコードを元に、
コピー元 A B C D
コピー先 A B
コピー先 A B
コピー先 A B
コピー先 A B
コピー元 A B C D
コピー先 A B C
コピー先 A B C
コピー先 A B C
コピー先 A B C
コピー元 A B C D
コピー先 A B C D
コピー先 A B C D
コピー先 A B C D
コピー先 A B C D
となるようにコードを検討すれば良いのかな?と
思って試行錯誤していますが、うまくいかないようです。
No.7
- 回答日時:
取りあえずANo.5のコードを誤魔化してみました。
完璧とは言えません。
更に考えてみます。
Sub test縦横()
Dim acell As Range
Dim bcell As Range
Set acell = Sheets("Sheet1").Range("D1")
Set bcell = Sheets("Sheet2").Range("B1")
Do While acell.Value <> "" Or bcell.Value <> ""
If acell.Value <> "" And bcell.Value = "" Then
bcell.Value = acell.Value
ElseIf acell.Value = "" And bcell.Value <> "" Then
acell.Value = bcell.Value
Else
Exit Sub
End If
If acell.Offset(1, 0).MergeCells Then
Set acell = acell.Offset(1, 0)
Set bcell = bcell.Offset(0, 1)
Else
Set acell = acell.Offset(0, 1)
Set bcell = bcell.Offset(1, 0)
End If
Loop
Set acell = Nothing
Set bcell = Nothing
End Sub
# 余談を聞き入れていただきありがとうございました。
# 気分を害していることはありませんので気にしないでください。
# よろしくお願いいたします。
引き続きのご対応ありがとうございます。
ご親切にありがとうございます。
試させていただきました。
下記のように4つの結合セルが並んでいるのですが、
教えてくださったマクロを実行したところ、
次のようになりました。
コピー元 A B C D
コピー先 A A
実現したいのは、次のような動きなのですが、
使い方が悪いのでしょうか?
コピー元 A B C D
コピー先 A B C D
No.6
- 回答日時:
>結合セルが横に複数ある場合、それを縦方向にコピーするには
ハードルが上げられましたね。
考えてみます。
この回答への補足
ご指摘ありがとうございます。
>何らかの返事を差し上げるべきではないでしょうか
実施することが不明瞭なため、試せずにおり、返答に困っていました。
もし気分を害したのであれば申し訳ありません。
No.5
- 回答日時:
ANo.4のコードを見直してみました。
Sub test2()
Dim acell As Range
Dim bcell As Range
Set acell = Sheets("Sheet1").Range("A1")
Set bcell = Sheets("Sheet2").Range("B1")
Do While acell.Value <> "" Or bcell.Value <> ""
If acell.Value <> "" And bcell.Value = "" Then
bcell.Value = acell.Value
ElseIf acell.Value = "" And bcell.Value <> "" Then
acell.Value = bcell.Value
Else
Exit Sub
End If
Set acell = acell.Offset(1, 0)
Set bcell = bcell.Offset(1, 0)
Loop
Set acell = Nothing
Set bcell = Nothing
End Sub
No.4
- 回答日時:
試しにマクロを組んでみました。
結合セル・非結合セルを問いません。
Sub test()
Dim acell As Range
Dim bcell As Range
Dim myccell As Range
Dim mypcell As Range
Set acell = Sheets("Sheet1").Range("A1")
Set bcell = Sheets("Sheet2").Range("B1")
If acell.Value <> "" And bcell.Value = "" Then
Set myccell = acell
Set mypcell = bcell
ElseIf acell.Value = "" And bcell.Value <> "" Then
Set myccell = bcell
Set mypcell = acell
Else
Exit Sub
End If
Do While myccell.Value <> ""
mypcell.Value = myccell.Value
Set mypcell = mypcell.Offset(1, 0)
Set myccell = myccell.Offset(1, 0)
Loop
Set acell = Nothing
Set bcell = Nothing
Set mypcell = Nothing
Set myccell = Nothing
End Sub
アドバイス、コードのご教示ありがとうございます。
試してみました。
1つの結合セルをみごとに縦方向にコピーできました。
ありがとうございます。
結合セルが横に複数ある場合、それを縦方向にコピーするには
どのようにすればよろしいでしょうか?
No.3
- 回答日時:
結合セルが連続している
コピー元、コピー先の結合セルサイズは異なる
コピー元の結合セルサイズは一定で同じ(例:2行1列)
コピー先の結合セルサイズも一定で同じ(例:3行2列)
といった前提条件が許される場合
仮に
コピー元:Sheet1のA列、結合サイズは2行1列
コピー先:Sheet2のA列、結合サイズは3行2列
とします。
コピー先結合セルの先頭に、#Sheet1!A1
コピー先結合セルの2番目に、#Sheet1!A2
と入力
入力した 2個の結合セルを選択
選択枠の右下角の■(フィルハンドル)を下方にドラッグ&ドロップ
そのまま範囲選択状態で
「置換」で
検索する文字列を、#
置換後の文字列を、=
として「すべて置換」
続けて、そのままの範囲選択状態で
Ctrl+Cで、コピー
「形式を選択して貼り付け」の「値」で貼り付け
といった操作を試してください。
No.2
- 回答日時:
サイズや結合を変えられないということは、値だけをコピーするという意味だと解釈できますが、個別セルの値を転記する形のループにすれば、エラーにはならず、コピーすることが可能です。
(コードは1行では済みませんが・・・)ただし、セルの結合の形が違うので、どの値が生きてどの値が無視されてしまうかは、それぞれの結合の対応関係によります。
(結合セルの値は左上のセルが代表となっているため)
サンプルを示すまでもないでしょうが、一応・・・
For col = 1 To 10
For rw = 1 To 5
Cells(rw + 5, col + 10).Value = Cells(rw, col).Value
Next rw
Next col
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 毎日手作業で時間がかかって、泣きたいです、、、VBAのプロの方、助けてください。。。 3 2022/10/25 04:26
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- その他(Microsoft Office) EXCEL VLOOKUPに関する質問 5 2023/02/08 11:38
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) Excelで、結合したセルへのコピー 6 2022/09/12 09:56
このQ&Aを見た人はこんなQ&Aも見ています
-
行数の違う表に複数行をコピーする
Excel(エクセル)
-
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
エクセルマクロで結合されたセルをコピー
Excel(エクセル)
-
-
4
エクセルにて結合サイズが異なるセルに計算式を
その他(OS)
-
5
EXCELで、結合されたセルに連続して他のシートからセルの引用をしたい
その他(Microsoft Office)
-
6
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
7
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
8
【マクロ】1つのセルから結合されているセルへのコピー貼り付けについて
Excel(エクセル)
-
9
エクセルの質問です。条件によってセルに斜線を引きたいのですが。
その他(OS)
-
10
エクセルVBA 別シートの複数のセルの値をコピーする方法
Excel(エクセル)
-
11
結合していないセルから結合したセルへのコピーの方法
Excel(エクセル)
-
12
結合セルに結合していないセルの値を貼り付けたいです。
Windows Vista・XP
-
13
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
14
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
15
ワード文書の右側にあるグレーゾーンを消す方法
Word(ワード)
-
16
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
17
エクセルで隣接していない複数のセルをコピーして、その状態(隣接していない)で張り付ける方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】オートフィルターの...
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで勝手に「折り返して...
-
エクセルで隣接していない複数...
-
エクセルの2ページ目の作り方
-
メールソフト「サンダーバード...
-
エクセルで値だけコピーして背...
-
Excelに、ダブルクォーテーショ...
-
エクセルで、選択範囲の数値全...
-
Excel 行の連続データを列に参...
-
「選択範囲を解除してアクティ...
-
エクセルオートフィルで書式を...
-
エクセル 別シートへのコピー...
-
エクセル コピーしたデータを1...
-
エクセル・数値が変化したらカ...
-
可視セル設定をデフォルトにしたい
-
可視セルから可視セルへのコピー
-
エクセルのコピペでクリップボ...
-
Excel 他のファイルからシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで勝手に「折り返して...
-
エクセルで隣接していない複数...
-
メールソフト「サンダーバード...
-
【マクロ】オートフィルターの...
-
エクセルの2ページ目の作り方
-
Excel 行の連続データを列に参...
-
エクセルで、選択範囲の数値全...
-
エクセル 別シートへのコピー...
-
「選択範囲を解除してアクティ...
-
Excelに、ダブルクォーテーショ...
-
エクセルで値だけコピーして背...
-
エクセルで「コピーしたセルの...
-
EXCEL数値が存在する列の項目名...
-
エクセル コピーしたデータを1...
-
行数の違う表に複数行をコピーする
-
EXCELで「行と列を入れ替える」...
-
エクセルでの行数・列数を指定...
-
エクセル・数値が変化したらカ...
おすすめ情報