Sub TEST1()
With Range("D2:D10")
.Value = "=IF(A2<>"""",A2,D1)" 'IF関数を入力
.Value = .Value '値に変換
.Copy Range("A2") '値を貼り付け
.Clear '仮データをクリア
End With
End Sub
結合したセルを用意します。
結合したセルを用意
セル結合を解除して、値を入力できます。
セル結合を解除して同じ値を入力できた
セル結合を解除して、値を入力できました。
セル結合が2列の場合
セル結合が2列の場合で、やってみます。
考え方は、先ほどと同じです。
貼り付ける際に、貼り付け元の範囲を2列にします。
Sub TEST2()
With Range("D2:D10")
.Value = "=IF($A2<>"""",$A2,D1)" 'IF関数を入力
.Value = .Value '値に変換
.Resize(, 2).Copy Range("A2") '値を貼り付け
.Clear '仮データをクリア
End With
End Sub
セル結合が2列にまたがっているセルを用意します。
結合が2列にまたがっているセル
セル結合を解除して、値を入力できます。
セル結合を解除して1列目に値を入力できた
セル結合を解除して、値を入力できました。
MergeCells、MergeArea、UnMergeを使う場合
次は、「MergeCells、MergeArea、UnMerge」を使う場合でやってみます。
やりたいこと
やりたいことは、先ほどと同じで、セル結合を解除して同じ値を入力する、という内容です。
セル結合を解除して同じ値を入力したい
では、やってみます。
VBAコード
手順は、
セルをループして結合セルを探す
セル結合の範囲を保存
セル結合を解除
元の結合の範囲に値を入力
という流れです。
Sub TEST3()
Dim A, B
'データをループ
For Each A In Range("A2:A10")
'セル結合されている場合
If A.MergeCells Then
'セル結合の範囲を保存
Set B = A.MergeArea
'セル結合を解除
A.UnMerge
'セル結合されていた範囲に値を入力
B.Value = A.Value
End If
Next
End Sub
結合したセルを用意しておきます。
結合したセルを用意
では、実行する手順をみていきます。
実行する手順
ループして結合セルを探します。
結合セルがあったら結合している範囲を保存します。
セル結合を解除します。
元の結合範囲に、値を入力します。
同じようにループしていきます。
これで、セル結合を解除して、同じ値を入力できます。
セル結合を解除して同じ値を入力できた
セル結合を解除して、同じ値を入力できました。
セル結合が2列の場合
セル結合が2列の場合で、やってみます。
値を入力する際に、1列分だけに入力します。
Sub TEST4()
Dim A, B
'データをループ
For Each A In Range("A2:A10")
'セル結合されている場合
If A.MergeCells Then
'セル結合の範囲を1列分だけ保存
Set B = A.MergeArea.Resize(, 1)
'セル結合を解除
A.UnMerge
'セル結合されていた範囲の1列分に値を入力
B.Value = A.Value
End If
Next
End Sub