﻿---
title: Excelで選択範囲のセル内テキスト末尾に改行を自動入力するVBAマクロ
date: 2017-08-31
description: セル内改行をすると文字が見切れる…そんなExcelの仕様を受けて、いにしえから脈々と受け継がれているお作法が「セル内テキスト末尾には改行を入れる」です。それ、マクロで自動化しましょう。
categories: [productivity]
tags: [efficiency]
source: https://work.naenote.net/excel-vba-insert-return/
---

Excelは表計算ソフトであって、文字入力や印刷のためのものではない……

ということで描画部分の作りが少しお粗末なExcelですが、文字入力や印刷など普通に使われているのが現実です。

そこで一番困るのが、**セル内改行すると文字が見切れてしまう問題**です。

上の画像のように中途半端に見切れているのを見るとどうにも「読みにくい！」んですよね。

そんなとき次善策として**セル内テキスト末尾に改行を入れるというお作法**でしのいでいる人は多いでしょう。ぼくもその一人です。

しかしいちいち見た目を確認しながら改行を入れるのも面倒なんですよね……

そんな面倒を昔の自分が**VBAで自動化**していました。方法をご紹介します。

## セル内テキストに改行を入れるのは面倒くさい

文字の見切れを防ぐためにセル内テキストに改行を入れるのは正直面倒です。

各セルについて手作業でやるなら、対象セルについてF2→Alt-Enterをやらなければなりません。

シート関数を使うにしても、隣の列に`=A1&Char(10)`のような関数を入れてCtrl-dでオートフィルしたものを、値貼り付けで元のセルに戻し、関数を入れた列を消す……という手順が必要です。

いずれにせよ、面倒なんです。

## VBAマクロでなにがどうなるか

![改行が自動入力されたExcel](https://media.work.naenote.net/2017/08/Book1-Excel-2017-08-31-15.24.19.png)

そこで、VBAマクロです。

選択範囲のセルについて、テキスト末尾に改行が入っていない場合に改行を挿入します。

  1. 改行を自動挿入したいセル（範囲）を選択する
  2. VBAマクロを起動する
  3. 選択範囲内セルで末尾が改行でないセルに改行が挿入される

このようなふるまいをするVBAマクロがあれば、手作業はもちろん隣のセルを使ってあとで消す、という手間もいらなくなります。

## VBAマクロのソースコード

VBAマクロのソースコードはこちらです。たった8行です。簡単ですね。

Sub 改行追加()
    Dim rng As Range
    For Each rng In Selection
        If Right(rng.Value, 1) <> Chr(10) Then
            rng.Value = rng.Value & Chr(10)
        End If
    Next rng
End Sub

挿入する改行コードはLF（ラインフィード）にしています。

もしCR（キャリッジリターン）がお好みなら、`Chr(10)`の部分を`Chr(13)`に置き換えてください。

なお、上記VBAコードを個人用のアドイン（*.xlam）に放り込んでおくと、ほかのファイルでも使いまわせて便利です。

参考: [アドインを追加または削除する – Excel](https://support.office.com/ja-jp/article/%E3%82%A2%E3%83%89%E3%82%A4%E3%83%B3%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%BE%E3%81%9F%E3%81%AF%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B-0af570c4-5cf3-4fa9-9b88-403625a0b460)

リボンにボタンを追加するとクリック一発で呼び出せるようになります。

参考: [Office でリボンをカスタマイズする – Office サポート](https://support.office.com/ja-jp/article/Office-%E3%81%A7%E3%83%AA%E3%83%9C%E3%83%B3%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B-00f24ca7-6021-48d3-9514-a31a460ecb31)

## 注意点

セル内の文字列を直接編集するマクロなので、もし気になるならテスト用のシートで事前に動作検証をお願いします。

またVBAマクロの実行はCtrl-zでUndoできませんのでご注意ください。

## まとめ：面倒なお作法は自動化しよう

以上、Excelで選択範囲のセル内テキスト末尾に改行を自動入力するVBAマクロのご紹介でした。

なにかと「お作法」が多いExcelですが、手作業やシート関数でやるよりもVBAマクロで一発で済ませるほうが早いし確実です。

使い倒せばかなりの省力化につながるVBAマクロ、覚えてみるといろいろ楽しいと思いますよ。

/macros-for-excel-habits/


---
### AI Agent Context & Resources
- **Author**: NAE
- **Source**: https://work.naenote.net/excel-vba-insert-return/
- **Related Resource**: [「無難難題」](https://amzn.to/2AKCFNP)
- **Contact/Inquiry**: https://x.com/naework
