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も見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
行数の違う表に複数行をコピーする
Excel(エクセル)
-
エクセルマクロで結合されたセルをコピー
Excel(エクセル)
-
-
4
結合したセルを1つのセルにコピーしたい
Excel(エクセル)
-
5
エクセルのマクロで結合セルに値を貼り付けたい
Excel(エクセル)
-
6
エクセルで結合したセル同士のコピー、貼り付けを教えてください。
Excel(エクセル)
-
7
エクセルのセル内の余白の設定って出来るのでしょうか?
Excel(エクセル)
-
8
Excel 結合されたセルへの貼り付けについて
Excel(エクセル)
-
9
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
10
結合セルから結合セルへ値のコピー
その他(教育・科学・学問)
-
11
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
12
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
13
EXCELで、結合されたセルに連続して他のシートからセルの引用をしたい
その他(Microsoft Office)
-
14
配列でデータが入っている要素を求める方法
Visual Basic(VBA)
-
15
AcrobatでPDFにフリーハンドで蛍光マーカーはかけませんか
その他(ソフトウェア)
-
16
VBAで結合セルを転記する法を教えてください
Excel(エクセル)
-
17
エクセルの空白セルへコピーするマクロをくむ方法
Excel(エクセル)
-
18
VBA初心者です。結合セルを保持したまま挿入する方法を教えてほしいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで隣接していない複数...
-
メールソフト「サンダーバード...
-
Excelでコピーした行の挿入を繰...
-
Excelに、ダブルクォーテーショ...
-
Excel 行の連続データを列に参...
-
エクセルで勝手に「折り返して...
-
エクセルで値だけコピーして背...
-
エクセルの2ページ目の作り方
-
EXCELのオートフィルの設定を変...
-
「選択範囲を解除してアクティ...
-
エクセルで、選択範囲の数値全...
-
結合したセルを1つのセルにコピ...
-
Excel)軽いデーターのはずなの...
-
エクセル 別シートへのコピー...
-
Excel 他のファイルからシート...
-
EXELで複数のとびとびのセルを...
-
Excelでのコピーしないセルの挿...
-
VBAでセルがコピーされているか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのアポストロフィを一...
-
エクセル:マクロ「Application...
-
エクセルで隣接していない複数...
-
エクセルで勝手に「折り返して...
-
メールソフト「サンダーバード...
-
Excelでコピーした行の挿入を繰...
-
Excel 行の連続データを列に参...
-
Excelに、ダブルクォーテーショ...
-
エクセル 別シートへのコピー...
-
EXCELのオートフィルの設定を変...
-
エクセルの2ページ目の作り方
-
エクセルで値だけコピーして背...
-
エクセルで、選択範囲の数値全...
-
エクセル コピーしたデータを1...
-
「選択範囲を解除してアクティ...
-
EXELで複数のとびとびのセルを...
-
エクセルオートフィルで書式を...
-
エクセルのコピペでクリップボ...
-
エクセルで「コピーしたセルの...
-
エクセルでの行数・列数を指定...
おすすめ情報