
セルの中身がで下の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
エクセルで一つのセル内で空白の行だけ削除したい
Excel(エクセル)
-
5
【VBA】エクセルで最後の不要な改行コードを削除するコードについて
Visual Basic(VBA)
-
6
エクセルでセル内改行の1行目だけ抜き出す関数は?
Excel(エクセル)
-
7
全セルの末尾に改行(Alt+Enter)を入れたい
その他(Microsoft Office)
-
8
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
9
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
10
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
11
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
12
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
13
VBAでFormat がうまく使えない
Excel(エクセル)
-
14
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
15
エクセルで1つのセルにスクロールバーをつけたい
Excel(エクセル)
-
16
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
17
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
18
EXCELで=より左の文字を一括で削除したい
Excel(エクセル)
-
19
エクセルで連続データから、数個飛ばしのデータを抜き取る方法
Excel(エクセル)
-
20
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル
-
wordで均等割り付けをするとき...
-
Word 途中で勝手に改行してしま...
-
Chr(13)とChr(10)の違いは?
-
VBA フォームのテキストボック...
-
Excel セル内の最初と最後の改...
-
棒グラフ 横軸の縦書き2列にし...
-
メールに添付する写真を並列さ...
-
エクセルでセル内改行の複数行...
-
excelで勝手に改行されます
-
WordにURLを載せると
-
パワーポイントのテキストボックス
-
PDFの改行URLを有効にす...
-
Excel VBAで改行を含めたセルの...
-
AutoCADのダイナミック文字記入...
-
エクセル文字入力でセル内での...
-
Tera Term のマクロでの改行コ...
-
【エクセル】セル最後にある無...
-
履歴書の志望動機の所で、「ま...
-
バッチで指定ファイルの文末に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Chr(13)とChr(10)の違いは?
-
wordで均等割り付けをするとき...
-
Word 途中で勝手に改行してしま...
-
【エクセル】セル最後にある無...
-
棒グラフ 横軸の縦書き2列にし...
-
VBA フォームのテキストボック...
-
パワーポイントのテキストボックス
-
PDFの改行URLを有効にす...
-
履歴書の志望動機の所で、「ま...
-
excelで勝手に改行されます
-
バッチで指定ファイルの文末に...
-
Tera Term のマクロでの改行コ...
-
エクセルでセル内改行の複数行...
-
Excel セル内の最初と最後の改...
-
Accessにインポートしようとす...
-
イミディエイトウインドウの最...
-
EXCEL(VBA) 末尾の改行のみ削...
-
短歌が1行で収まらない場合、...
-
Excel VBAで改行を含めたセルの...
-
PCに表示された内容(文字)をコ...
おすすめ情報
最初と最後の改行数は統一されておりません。
後出し補足ですみません。
正規表現置換アドインの導入は考えていません。
沢山の回答ありがとうございました。
アイデアや発見が得られました。