セルにある文章を1行ずつ隣の列に横方向に出力するよ
この説明は、ChatGPTで作成しています。
このプロシージャは、Excelのセルに書かれた文章を、改行ごとに分けて、隣の列に横に1行ずつ並べてくれる仕組みです。
どういうときに使うの?
たとえば、A列のセルにこんな風に文章が入っていたとします。
こんにちは
はじめまして
よろしくお願いします
これをこのマクロで実行すると、B列・C列・D列にそれぞれ横並びでこう表示されます:
A列 B列 C列 D列
こんにちは こんにちは はじめまして よろしくお願いします
はじめまして
よろしくお願いします
かんたんな動きの流れ
選択されているセルの中の文章を1つずつ読み込みます。
改行ごとに文章をバラバラに分けて、1行ずつにします。
その分けた文章を、横に並べて隣の列に書き込んでいきます。
ポイント
改行の種類が色々あっても、ちゃんと対応して1行ずつにしてくれます。
処理中は画面の更新を止めているので、動作が軽くなっています。
選んだセルが複数あっても、1つずつ順番に処理してくれます。
注意点
文章に改行が入っていないと、横に出力される内容は1つだけになります。
隣の列にすでにデータがあると、上書きされてしまうので注意です。
まとめ
このマクロを使えば、「縦に並んだ文章(改行入り)」を、横に並べ直すことができるので、
データの並び方を変えたいときにとても便利です。
🔗 リンク:
Sub セルにある文章を1行ずつ隣の列に横方向に出力するよ()
Application.ScreenUpdating = False
Dim myRng As Range
Dim txt As String
Dim lines As Variant
Dim i As Long
For Each myRng In Selection
' セルのテキストを取得して改行を統一(CRLF/CR→LF)
txt = CStr(myRng.Value)
txt = Replace(txt, vbCrLf, vbLf)
txt = Replace(txt, vbCr, vbLf)
' 1行ずつに分割
lines = Split(txt, vbLf)
' 隣の列から右方向へ1つずつ出力
For i = LBound(lines) To UBound(lines)
myRng.Offset(0, 1 + i).Value = lines(i)
Next i
Next myRng
Application.ScreenUpdating = True
End Sub
🔖 ハッシュタグ(キーワード)
#excel #できること #vba #テキスト処理 #改行対応 #文字列分割 #セル操作 #横並び出力 #オフセット #ループ処理 #初心者向け #マクロ作成 #選択セル処理 #自動処理 #業務効率化 #データ整形 #行分割 #横展開 #エクセル活用術 #プログラミング初級
📘 English Translation
Output Each Line of Text in a Cell to the Right Column Horizontally
This explanation was created using ChatGPT.
This macro takes the text written in a selected Excel cell, splits it by line breaks, and then outputs each line to the right columns horizontally.
When is it useful?
For example, if cell A1 contains:
Hello
Nice to meet you
Thank you
After running this macro, the B1, C1, and D1 cells will look like:
A B C D HelloNice to meet youThank you Hello Nice to meet you Thank you
Simple Flow of What Happens
Reads the text in each selected cell.
Replaces various types of line breaks with a unified one.
Splits the text into individual lines.
Outputs each line horizontally to the right of the original cell.
Highlights
Handles different kinds of line breaks.
Speeds up performance by turning off screen updating.
Works for multiple selected cells.
Caution
If the text has no line breaks, only one value will be output.
Data in the right columns will be overwritten.
Summary
This macro is helpful when you want to convert vertically stacked text (with line breaks) into a horizontal layout in Excel.
🔗 Links:
🔖 Hashtags
#excel #できること #vba #textprocessing #linebreaks #splittext #cellhandling #horizontaloutput #offset #loop #beginnerfriendly #macros #selectedcells #automation #workflow #datacleaning #linesplitting #spreadhorizontally #exceltips #basicprogramming
