【コピペOK】セル結合を解除して値を入れ込む超簡単マクロ

なごむエイ

セル結合をたくさん使って見栄えのいいエクセル表が完成したよ!

えい

ちょっと待って!それはもらった人が困るタイプのエクセル表だよ

と、完成してからダメだしされても困りますよね。

せっかく完成したのにイチからやり直すのも大変です。

なぜNGなのか?

ざっくりいうと、データとして扱いづらいからです。

詳しくはこちらの記事を参考にしてください。

そこで今回は

セル結合を解除して、セルに値を入力していくマクロ

を紹介します。

※データ:https://corp.kinokuniya.co.jp/

こんな感じに一瞬で修正してくれます。

「マクロ」と聞くとなんかむずかしそうに感じますが、

コードはコピペ

手順だけマネすればOK

お助けえい

「もらったエクセル表がセル結合だらけで困った」
こんな時にも役立つよ

ぜひ参考にしてください。

マクロを使う前にはバックアップとして必ずファイルを複製すること

データの損失や破損などによる責任は負いかねます。

目次

セルの解除とセルに値を入れ込むマクロの手順

STEP
ファイルの複製

データを複製しておきましょう。データのバックアップは鉄則です。

STEP
編集したいエクセルファイルを開く

エクセルを開いてマクロを実行したい範囲を確認

※今回の例では範囲がA1~D19になります。

STEP
「コード」のコピー

下記のコードをコピーしてください。

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
STEP
「Alt」キーと「F11」キーを押してvisual basic for application(VBA)を開く

エクセルの画面で「Alt」と「F11」を押すと「visual basic for application」という別ウィンドウが開きます。

えい

ノートPCを使って開かないときは「Fn」キーを一回押してからやってみてね。

STEP
「挿入」→「標準モジュール」→貼り付け

「挿入」から「標準モジュール」を選んで開かれたシートに、先ほどコピーしたコードを貼付。

STEP
コードを一か所だけ変更する

ステップ5で貼り付けたコードの一部だけ変更します。

マーク部分(”A1:A32”)のところをステップ2で確認した範囲に変更してください。

今回はA1~D19だったので(”A1”:D19)になります。

えい

コードを変えるのはこれだけ!

STEP
「ツール」→「マクロ」→「実行」

「ツール」から「マクロ」を選び「セル結合の解除と値の埋め込み」を指定して

「実行」をクリックすればOKです。

こんな感じになります。

範囲選択(ドラッグ)して「セル結合を解除」ではだめなの?

ダメと言いませんが、マクロを使ったやり方も覚えておいたほうがいいでしょう。

理由は2つ

・値が1か所にしか入らない

・数が多い(範囲が広い)ときに手動は大変

値が1か所にしか入らない

ドラッグして「セル結合を解除」した場合、値は1か所にしか入りません。

なにか問題ある?

データベースではエクセルの1行は1レコードとしてカウントされるので、インポートしたときに空欄で入ります。

webにアップロードするときはエラーになる場合もあります。

あとから空欄を探したりエラー行を探すのはストレスのかかる作業です。

なのでエクセルのうちに整えておきましょう。

要するに

えい

必要なデータを空欄にするのはNGってこと

あとから入力やオートフィルする手間を考えたら、

今回のマクロを使った方が時短になってミスも減らせます。

数が多い(範囲が広い)ときに手動は大変

テンパるエイ

別に手入力とかでも大丈夫だよ
慣れないことする方がよっぽどストレスだ

と思った人もいるでしょう。

今回出した例だと、A1~D19

76データ程度ですが

これが仮に100行あって400データもあったらどうですか?

それでもミスなく手作業でできますか?

いじわるな言い方しましたが、やっぱり自力って労力も時間も限界があるんですよね。

知っておいて損はありません。

お助けえい

やり方を覚えなくても、
「こんな方法があるんだ!」
と知っておくだけでも有益だよ

まとめ~ミスを減らして効率を上げるために自動化を~

今回はセル結合を解除して、セルに値を入力していくマクロを紹介しました。

やり方は以下

①:エクセルを開く

②:VBAを開く(「Alt」+「F11」)

③:標準モジュールを挿入(挿入から選ぶ)

④:コードを貼り付ける

⑤:範囲を変更する

⑥:実行

※バックアップは忘れない

慣れれば1分程度で作業できるようになります。

どんなにデータの数が多くても漏れなくマクロさんが働きます。

特に

データベースやwebを扱っているひと

よくセル結合されたエクセル資料をもらうひと

は覚えておいて損はありません。

完璧に覚えなくても、

なごむエイ

こんな方法があるんだぁ

と知っておくだけでも十分。

ぜひ活用して時短させちゃってください。

よかったらシェアしてね!
目次