
使いづらいエクセル資料の提案書が送られてきて困ってる…
今回の困った資料は「セルの結合が沢山あって面倒くさい!」レイアウトです。
データをインポートする際は、セルの結合はNGです。
同じデータだとして各セルにしっかりと入力しなければなりません。
・独自のレイアウト
・画像がペタペタ貼ってあってめちゃくちゃ重い
・セルの結合多い
・謎にスペースが多用してある
そこで、
セルの結合を解除して、結合前のデータを解除されたセルに埋め込んでいく
方法をお伝えします。
言葉にするとうまく伝わらないかもなので、実際のマクロ動作を流します。(約50秒)
これから紹介する手順を実践していただけば、先ほどの動画のようなマクロ使いになれますので是非試してください。
・セルの結合を解除して、結合前のデータを解除されたセルに埋め込んでいくマクロの使い方
マクロを使う前にはバックアップとして必ずファイルの複製を行ってください!
データの損失や破損などによる責任は負いかねます。
セルの解除とセルに値を入れ込むマクロの手順
データを複製しておきましょう。データのバックアップは鉄則です!
まずは、下記のコードをコピーしてください。
Sub セル結合の解除と値の埋め込み()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Activate
Dim A, B
'データのループ。次の行にある(":")で範囲をして下さい。今はA列の1~32行目までを指定しています。
For Each A In Range("A1:A32")
'セル結合されている場合
If A.MergeCells Then
'セル結合の範囲を1列分だけ保存
Set B = A.MergeArea.Resize(, 1)
'セル結合を解除
A.UnMerge
'セル結合されていた範囲の1列分に値を入力
B.Value = A.Value
End If
Next
Next
End Sub
この時にマクロを実行したい範囲の最大値を確認しておきます。※今回の例では3シートの最大範囲がA1~E31になります。




「Alt」と「F11」を押しても反応がない場合はWindowsマークの横にある「Fn」を一回押してからやってみてください。


「挿入」から「標準モジュール」を選んで開かれたシートに、先ほどコピーしたコードを貼り付けます。
この時、コード内にある(”A1:A32”)の位置に「ステップ3」で確認した範囲の値(”A1:E31”)に変更します。


「ツール」から「マクロ」を選び「セル結合の解除と値の埋め込み」を指定して「実行」を押す。
たったこれだけでマクロ発動!!
マクロを保存する方法
今後もマクロを使う機会があるのであればマクロの保存をお勧めします。
手順で紹介した「ステップ5」(挿入→標準モジュール→貼り付け)まで進んだ状態で
「ファイル」→「ファイルのエクスポート」を選びます。
「.bas」以前には「セル解除と値の入れ込み」など分かり易い名前を付けて保存してください。
再度使用する際には、
「ステップ3」(編集したいエクセルファイルを開く)と
「ステップ4」(「Alt」キーと「F11」キーを押してvisual basic for application(VBA)を開く)を実行したら
「ファイル」→「ファイルのインポート」を選んでください。
インポートするのは、先ほどエクスポートした「名前.bas」として保存したファイルです。
インポート後は「ステップ6」の「ツール」→「マクロ」まで選び「編集」を選んでください。
今回使用するファイルに適した範囲に再設定してから「実行」を行います。
まとめ
VBAを開いてコードを貼り付ける➡範囲を設定して実行を押す
バックアップは忘れない
ざっくり言うとこの4工程だけでセル結合を解除後に値を入力するところまで勝手にやってくれます。
初心者の僕でも使える簡単なマクロですので、誰でも出来ます!



時短にもなって便利!
今後も初心者でも使える簡単なマクロが見つかったら紹介していきますのでよろしくお願いいたします。
(僕はまだまだ勉強中の身です。コードに間違いがあれば教えていただけると助かります。)
ノシ