セルの中身がで下の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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
【エクセル】セル最後にある無駄改行を検索・削除したい
Excel(エクセル)
-
EXCEL(VBA) 末尾の改行のみ削除したい
Excel(エクセル)
-
【VBA】エクセルで最後の不要な改行コードを削除するコードについて
Visual Basic(VBA)
-
-
4
エクセルデータの末尾の改行を削除したい
Excel(エクセル)
-
5
エクセルで一つのセル内で空白の行だけ削除したい
Excel(エクセル)
-
6
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
7
セル内で改行(Alt+Enter)以降の文字列を削除(Excel VBA)
Excel(エクセル)
-
8
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
9
【VBA】特定の文字で改行(次の行)に行きたい。
Visual Basic(VBA)
-
10
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
11
ワードからエクセルへ貼り付けるマクロ
Excel(エクセル)
-
12
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
13
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
14
全セルの末尾に改行(Alt+Enter)を入れたい
その他(Microsoft Office)
-
15
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
16
[VBA]改行入りのセルの値を配列に格納したい
Visual Basic(VBA)
-
17
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
18
エクセルVBAのエディターが上書きモード?に・・・・。
Excel(エクセル)
-
19
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
20
エクセル関数で日付かどうかの確認?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
wordの何も書かれていない2ペー...
-
Chr(13)とChr(10)の違いは?
-
teratermのコマンド入力文字数...
-
履歴書の志望動機の所で、「ま...
-
パワーポイントのリンク管理に...
-
イミディエイトウインドウの最...
-
せりふが長いときのかぎかっこ...
-
Tera Term のマクロでの改行コ...
-
Accessにインポートしようとす...
-
【エクセル】セル最後にある無...
-
短歌が1行で収まらない場合、...
-
400~800字程度といわれれば?
-
パワーポイントのテキストボックス
-
Excelセル内の改行を含む文字列...
-
テキストエディタで「改行削除...
-
「elseに対応するifがありませ...
-
excelで勝手に改行されます
-
iPadのスマートキーボードをス...
-
エクセル文字入力でセル内での...
-
AutoCADのダイナミック文字記入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの何も書かれていない2ペー...
-
Chr(13)とChr(10)の違いは?
-
【エクセル】セル最後にある無...
-
PDFの改行URLを有効にす...
-
excelで勝手に改行されます
-
wordで均等割り付けをするとき...
-
棒グラフ 横軸の縦書き2列にし...
-
履歴書の志望動機の所で、「ま...
-
EXCELで"-"で勝手に自動改行し...
-
EXCEL(VBA) 末尾の改行のみ削...
-
Tera Term のマクロでの改行コ...
-
イミディエイトウインドウの最...
-
Excel セル内の最初と最後の改...
-
Accessにインポートしようとす...
-
パワーポイントのテキストボックス
-
エクセルでセル内改行の複数行...
-
Word 途中で勝手に改行してしま...
-
エクセル文字入力でセル内での...
-
Access2003で特定列の改行コー...
-
パワーポイントのリンク管理に...
おすすめ情報
最初と最後の改行数は統一されておりません。
後出し補足ですみません。
正規表現置換アドインの導入は考えていません。
沢山の回答ありがとうございました。
アイデアや発見が得られました。