
セルの中身がで下の4行のような状態のとき、
最初と最後の改行を削除したいです。
――――――――――――
↓
あいうえお↓
かきくけこ↓
↓
――――――――――――
(改行は「↓」で表しています)
Trim関数では消せないし、
Clean関数では全ての改行を消してしまいます。
こちらの記事では、ユーザー定義関数が紹介されていますが・・・・
↓
文字列の前後・セルの先頭と末尾の改行を削除する:エクセルマクロ・Excel VBAの使い方/ユーザー定義関数
https://www.relief.jp/docs/013815.html
これを参考にすると、
複数のセル範囲に適用したい場合は、
繰り返し処理で、1セル単位で適用することになると思いますが・・・
一括でサクッと処理する方法ってありませんよね?
※テキスト形式で出力して処理する以外で。
No.9ベストアンサー
- 回答日時:
No.5の回答者です。
勘違いしていました。
こちら↓のようなことを、選択範囲で処理したいのですね。
https://www.relief.jp/docs/013815.html
一部修正版
Sub DeleteStartEndLetter()
Dim r As Range
For Each r In Application.Selection
If Len(r.Value) > 0 Then
r = TrimLF(r)
End If
Next
End Sub
Function TrimLF(r As Range) As String
Dim strTmp As String
strTmp = r
Do Until Left(strTmp, 1) <> vbLf
strTmp = Mid(strTmp, 2)
Loop
Do Until Right(strTmp, 1) <> vbLf
strTmp = Left(strTmp, Len(strTmp) - 1)
Loop
TrimLF = strTmp
End Function
これなら、TrimLFの戻り値で処理できると思う。
No.12
- 回答日時:
>セル内容で使用されていない連続スペースを置換キーにすれば…
情報としてお出しではなかったですが、セルの内容にスペースが含まれる場合があるということでしょうか?
TRIMを使えばスペースは1つ分になっちゃうので改行を置換したスペースなのか元からあるスペースなのか分からなくなりそうですね。
マクロで処理できそうですので、そちらにお任せします。
ありがとうございます。
試してみました。
Worksheet関数のTRIMだと先頭と末尾のスペース削除に加えて連続スペースが1個になるけど、
VBA関数だと先頭と末尾のスペース削除のみ、
のようです。
驚きの発見でした!
No.7
- 回答日時:
No.5の回答者です。
改行があることを前提にしているMID関数での処理なので、最初と
最後に改行がない場合は、1字目と最後の文字が削除されます。
IFを使って、改行なのかどうかの判定をすることで、最初と最後の
改行以外を残すことは可能だと思います。
http://officetanaka.net/excel/vba/function/InStr …
例えば、LEFT関数やRIGHT関数を使って調べるとか。
ありがとうございます。
結局のところ、セルの内容に対して、
・1文字目が改行じゃなくなるまで、1文字ずつ判定して削除し…
・最後の文字が改行じゃなくなるまで、1文字ずつ判定して削除し…
という処理をして、
複数セル範囲については、
その処理を1セルごとに当てて行くという流れにするしかない、
ということになるでしょうか。
正規表現での置換ができれば、セル範囲に対して
先頭の改行削除5回、末尾の改行削除5回とか、
ざっくりした処理で済むんだけど…。
No.5
- 回答日時:
別セルだと、こちら↓。
=MID(A1,2,LEN(A1)-2)
マクロだと、こちら↓の応用で。
https://oshiete.goo.ne.jp/qa/2557495.html
Sub DeleteStartEndLetter()
Dim r As Range
For Each r In Application.Selection
If Len(r.Value) > 0 Then
r.Value = Mid(r.Value, 2, Len(r.Value) - 2)
End If
Next
End Sub
No.4
- 回答日時:
改行を★などに置換したら、最初と最後以外を抜き出すことはできるのでは?
それからまた、改行に置換しては?
後は、別セルに改行がいくつあるか出しておいて、SUBSTITUTEの第4引数で数を指定して(最初のは1つ目なので無条件で指定できるし)置換するとか。
ありがとうございます。
改行を★に置換したとして、セルがこんな感じになって…
「★あいうえお★かきくけこ★★」 改行数4
「★★さしすせそ★たちつ★てと★」 改行数5
として・・・
SUBSTITUTEで前後の★を取る?
すみません、思いつかないので
具体的に教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
このQ&Aを見た人はこんなQ&Aも見ています
-
【エクセル】セル最後にある無駄改行を検索・削除したい
Excel(エクセル)
-
EXCEL(VBA) 末尾の改行のみ削除したい
Excel(エクセル)
-
エクセルデータの末尾の改行を削除したい
Excel(エクセル)
-
-
4
エクセルでセル内改行の1行目だけ抜き出す関数は?
Excel(エクセル)
-
5
エクセルで一つのセル内で空白の行だけ削除したい
Excel(エクセル)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
全セルの末尾に改行(Alt+Enter)を入れたい
その他(Microsoft Office)
-
8
【VBA】エクセルで最後の不要な改行コードを削除するコードについて
Visual Basic(VBA)
-
9
エクセルでセル内改行の複数行目だけ抜き出す関数は?
Excel(エクセル)
-
10
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
11
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
12
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
13
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
-
14
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
15
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
16
ExcelVBAでスペースキー操作したい
Excel(エクセル)
-
17
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
18
エクセルで1つのセルにスクロールバーをつけたい
Excel(エクセル)
-
19
VBAでFormat がうまく使えない
Excel(エクセル)
-
20
エクセルVBAにおけるON TIMEメソッドの解除方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordで均等割り付けをするとき...
-
Chr(13)とChr(10)の違いは?
-
VBA フォームのテキストボック...
-
エクセルでセル内改行の複数行...
-
【エクセル】セル最後にある無...
-
エクセル
-
バッチで指定ファイルの文末に...
-
SJISで、全角文字Aの文字コード...
-
棒グラフ 横軸の縦書き2列にし...
-
EXCELで"-"で勝手に自動改行し...
-
PDFの改行URLを有効にす...
-
パワーポイントのテキストボックス
-
excelで勝手に改行されます
-
短歌が1行で収まらない場合、...
-
Excel セル内の最初と最後の改...
-
英語圏の人々は英文に改行のス...
-
TeraPadで改行が
-
テキストエディタで「改行削除...
-
Word 途中で勝手に改行してしま...
-
メールに添付する写真を並列さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル
-
Word 途中で勝手に改行してしま...
-
Chr(13)とChr(10)の違いは?
-
wordで均等割り付けをするとき...
-
VBA フォームのテキストボック...
-
エクセルでセル内改行の複数行...
-
PDFの改行URLを有効にす...
-
履歴書の志望動機の所で、「ま...
-
Tera Term のマクロでの改行コ...
-
棒グラフ 横軸の縦書き2列にし...
-
【エクセル】セル最後にある無...
-
英語圏の人々は英文に改行のス...
-
パワーポイントのテキストボックス
-
バッチで指定ファイルの文末に...
-
Accessにインポートしようとす...
-
Excel セル内の最初と最後の改...
-
excelで勝手に改行されます
-
メールに添付する写真を並列さ...
-
WordにURLを載せると
-
イミディエイトウインドウの最...
おすすめ情報
最初と最後の改行数は統一されておりません。
後出し補足ですみません。
正規表現置換アドインの導入は考えていません。
沢山の回答ありがとうございました。
アイデアや発見が得られました。