63916


①結合セル内の第2,3...列目は、空文字のままにしたいです。  
コピーしすぎない。行の増える方向だけへコピーする方法です。  
②別法として、解除直後に第2,3...列目をクリアする。  
③別法として、別マクロで、左隣のセルの値と同じなら、空文字にするでもいいと思います。  
探し方が悪いのか、見つかりませんでした。  
よろしくお願いします。

(参考)結合セル内の値を、結合解除後に結合されていた全てのセルへコピーする方法  
<https://oshiete.goo.ne.jp/qa/5944767.html>  
(参考)【エクセルVBA】一瞬で結合セルを解除して値を埋めるマクロ  
<https://www.excelspeedup.com/ketsugoukaijyoshiteumeru/>  
(参考)セル結合を解除して同じ値を入力するマクロ  
<https://www.relief.jp/docs/excel-vba-unmerge-and-fill.html>  
(参考)セルの結合を解除して同じ値を入力  
<https://integer.exblog.jp/1726818/>


CC BY-SA 4.0
2020-03-16T13:57:08.963
63903
2020-03-20T09:08:07.427
2020-03-16T22:37:32.720
17199
17199
question
vba
「結合セル内の値を、結合解除後に結合されていた全てのセルへコピーする方法」でなく、結合セルの最初の列へだけ、コピーする方法を教えて下さい。


結合解除後の領域は [Range](https://docs.microsoft.com/ja-
jp/office/vba/api/excel.range%28object%29) オブジェクトなので  
左上の セルに 値を設定するのは

[code]

    結合範囲 as Range
    結合範囲.Items(1) = '値'
    
[/code]

[code]

    結合範囲 as Range
    結合範囲.Cells(1,1) = '値'
    
[/code]

とかすればいいと思います。  
（まだ 試してないので間違ってたらごめんなさい）


CC BY-SA 4.0
2020-03-16T23:20:04.703
63916
2020-03-16T23:20:04.703
18851
63903
answer


できました。ありがとうございました。

[code]

    Sub a結合解除_1列目代入()
      Dim 範囲 As Range
      Dim 結合範囲 As Range
      Dim 結合範囲1 As Range
      Dim 値 As Variant
      For Each 範囲 In ActiveSheet.UsedRange
          If 範囲.MergeCells Then
             値 = 範囲
             Set 結合範囲 = 範囲.MergeArea
             Set 結合範囲1 = 範囲.MergeArea.Columns(1)
             範囲.UnMerge
             結合範囲1 = 値
             '結合範囲を塗りつぶし
             結合範囲.Interior.Color = rgbWhiteSmoke
          End If
      Next
    End Sub
    
[/code]


CC BY-SA 4.0
2020-03-20T09:08:07.427
63997
2020-03-20T09:08:07.427
17199
63903
answer