スプレッドシートのセル内改行を一括挿入!GASを使った自動処理

Googleスプレッドシートでは、セル内の改行は「Ctrl
+ Enter
」や「Alt
+ Enter
」で手動で行うことが可能 です。
ですが、多くのセルに改行を入れる必要がある場合、手作業では時間がかかり大変 です。
また、検索と置換の機能では、新しく改行を挿入することができません。
そのため、改行をまとめて挿入するにはGoogle Apps Script (GAS) を活用するのが便利 です。
GASを使えば、複数のセルや範囲に対して一括でセル内に改行を挿入することが可能 です。
今回は、GASを使って句点(。)の後に改行を自動で挿入する方法をご紹介します。
例えば、商品レビューや説明文のような長文のデータを見やすくしたい時に便利です。

完成イメージ


- 複数のセルもまとめてセル内改行が可能
- 選択した範囲のセルのみ処理
GASの実行手順

セル内の改行挿入したい範囲を選択します。
(B列のみ、B2:B10、シート全体など)

Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。

function myFunction(){
}
が最初から入っているため、消去して以下のスクリプトを貼り付けます。
スクリプトが2つあるため、2つの.gsファイルに分けて作成します。
スクリプト:セル内の句点(。)の後に改行を挿入
function insertLineBreakAfterPeriod() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getActiveRange(); // 選択範囲のみ取得
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (typeof values[i][j] === "string") {
// 句点「。」の後に改行を入れ、文末の改行は不要
values[i][j] = values[i][j].replace(/。(?!$)/g, "。\n").trim();
}
}
}
range.setValues(values);
}
スクリプトの説明
- 現在開いているシートを取得
-
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
SpreadsheetApp.getActiveSpreadsheet()
:現在開いているスプレッドシートを取得します。.getActiveSheet()
:アクティブなシートを取得(ユーザーが現在開いているシート)
- 選択範囲を取得
-
var range = sheet.getActiveRange();
.getActiveRange()
:現在ユーザーが選択しているセルの範囲を取得- 例
- B列のみを選択 → B列のデータが処理対象
- B2:B10 を選択 → B2:B10 のデータが処理対象
- シート全体を選択 → シート全体が処理対象
- 選択範囲のデータを取得
-
var values = range.getValues();
.getValues()
:選択した範囲のセルのデータを 2次元配列(values[][]
) として取得します。
例:
[
["このノートPCは軽くて持ち運びやすい。バッテリーが長持ちするので外出先でも安心。デザインも洗練されていておしゃれ。"]
] - セルごとに処理(句点 。の後にのみ改行を挿入)
-
for (var i = 0; i < values.length; i++) { for (var j = 0; j < values[i].length; j++) { if (typeof values[i][j] === "string") { // 句点「。」の後に改行を入れ、文末の改行は不要 values[i][j] = values[i][j].replace(/。(?!$)/g, "。\n").trim(); } } }
for
ループでセルを1つずつ処理values[i][j]
で各セルの値にアクセスします。typeof values[i][j] === "string"
で文字列かどうかをチェックします。
(数値などのデータを誤って変更しないように).replace(/。(?!$)/g, "。\n")
を使用します。- 「。」の後にのみ改行を挿入
(?!$)
→ 文末の「。」には改行を入れない
例:
["このノートPCは軽くて持ち運びやすい。バッテリーが長持ちするので外出先でも安心。デザインも洗練されていておしゃれ。"]
]↓
このノートPCは軽くて持ち運びやすい。
バッテリーが長持ちするので外出先でも安心。
デザインも洗練されていておしゃれ。.trim()
を適用して、文章の先頭や末尾に不要な改行が残るのを防ぎます。
- 変更後のデータをスプレッドシートに反映
-
range.setValues(values);
.setValues(values)
:処理後のデータを選択範囲に上書き保存- これで、セル内の句点の後に自動で改行が挿入されます。
空白行を追加するには?

改行を2回(\n\n
)挿入することで、句点の後に1行空ける ことができます。
(スクリプト10行目)
values[i][j] = values[i][j].replace(/。(?!$)/g, "。\n\n");
- 「。」の後に2つの改行(
\n\n
)を挿入します。

スクリプトを書いたら、好きな名前を付けて保存します。
(例:「セル内_改行挿入」)

スクリプトを実行すると、選択したセルの句点(。)の後に改行を挿入します。

選択した範囲のセル内で、改行挿入されたことを確認します。
「マクロインポート」で繰り返しの実行がカンタン

マクロインポートをすることで、メニューの「マクロ」からGASを実行できるようになります。

メニューから「拡張機能」>「マクロ」>「マクロをインポート」を選択します。

リストから先ほど作成したGASを、「関数を追加」してインポートします。
- セル内_改行挿入:
insertLineBreakAfterPeriod

インポートするとマクロが追加されますが、関数名のままでは分かりづらい状態です。
そのため、「拡張機能」>「マクロ」>「マクロを管理」から追加されたマクロの名前を選択します。

追加したマクロの名前をクリックして、わかりやすい名前に変更します。
removeBlankLinesInSelection
→ セル内_改行挿入
(追加したマクロをショートカットキーとして割り当ても可)

マクロの名前が変更されたことを確認します。
これで「拡張機能」ー「マクロ」から簡単にGASを実行できるようになります。
複数のシートでGASを実行するなど、繰り返し改行挿入を行う時に便利です。
まとめ
Google Apps Script (GAS) を活用することで、セル内の「。」の後に改行を自動挿入することができます。
今回のスクリプトは選択した範囲のみを処理するため、他のデータには影響しないようになっています。
また、マクロに登録すれば「拡張機能」→「マクロ」から簡単に実行できます。
手作業での改行挿入が大変な時にこのGASをご活用ください。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント