大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、セル結合を解除して同じ値を入力するには、「IF関数」と「MergeCells、MergeArea、UnMerge」を使う方法があります。「IF関数」を使う方法の方がシンプルで使いやすいです。「IF関数」を使ってセル結合を解除して同じ値を入力しましょう。

はじめに

この記事では、セル結合を解除して同じ値を入力する方法について、2つご紹介します。

「IF関数」を使う方法と「MergeCells、MergeArea、UnMerge」を使う方法です。

IF関数を使えば簡単に、セル結合を解除して、同じ値を入力することができます。

手っ取り速く自動化したい場合は、「IF関数」を使ってみましょう。

では、セル結合を解除して同じ値を入力する方法について、解説していきます。

この記事で紹介すること

  • セル結合を解除して同じ値を入力する方法

目次から見たい項目へ移動すると便利ですよ。

目次

IF関数を使ってセル結合を解除して同じ値を入力

IF関数を使ってセル結合を解除して同じ値を入力

やりたいこと

やりたいことは、セル結合を解除して同じ値を入力したい、という内容です。

セル結合を解除して同じ値を入力したい

やりたいことは、セル結合を解除して同じ値を入力したい、という内容です

では、まずExcel関数を使って手動でやってみます。

Excel関数を使ってやってみる

Excel関数を使ってやってみます。

結合したセルを用意しておきます。

結合したセルを用意

結合したセルを用意しておきます

手動で実行する手順をみてみます。

手動で実行する手順

IF関数を入力して、結合セルに対して同じ値を入力します。

IF関数を入力して、結合セルに対して同じ値を入力します

値の貼付けで値に変換します。

値の貼付けで値に変換します

数式から値になります。

数式から値になりました

作成した値を結合セルに貼り付けます。

貼り付け後は、仮データはクリアします。

作成した値を結合セルに貼り付けます

これで、セル結合を解除して、値を入力できます。

セル結合を解除して同じ値を入力できた

セル結合を解除して、値を入力できました

セル結合を解除して、値を入力できました。

VBAで自動化する

先ほどの内容をVBAで自動化します。

手順は、

  • IF関数を入力
  • 数式を値に変換
  • 値を貼り付け
  • 仮データをクリア

という流れです。

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列にまたがっているセル

セル結合が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

2列の結合したセルを用意しておきます。

2列の結合したセル

2列の結合したセルを用意しておきます

では、実行する手順をみていきます。

実行する手順

ループして結合したセルを探していきます。

ループして結合したセルを探していきます

結合している範囲を保存します。

結合している範囲を保存します

セル結合を解除します。

セル結合を解除します

1列目だけに値を入力します。

1列目だけに値を入力します

複数行ある場合も同じで、1列目だけに値を入力します。

複数行ある場合も同じで、1列目だけに値を入力します

同じようにループしていきます。

同じようにループしていきます

これで、セル結合を解除して、1列目だけに同じ値を入力できます。

セル結合を解除して1列目だけに同じ値を入力

セル結合を解除して、1列目だけに同じ値を入力できました

セル結合を解除して、1列目だけに同じ値を入力できました。

おわりに

この記事では、セル結合を解除して同じ値を入力する方法について、2つご紹介しました。

「IF関数」を使う方法と「MergeCells、MergeArea、UnMerge」を使う方法です。

IF関数を使えば簡単に、セル結合を解除して、同じ値を入力することができます。

手っ取り速く自動化したい場合は、「IF関数」を使ってみましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す