[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『n行目で強制改行したい。』(3ぶろ)
こんばんは。ちょっと質問させてください。
B1〜B200まで長文が打ってある場合、例えば、25行目で強制改行(Alt+Enter)をして、それぞれとなりの列に出力したい場合、どのようなVBAを作ればよろしいのでしょうか?
< 使用 Excel:Excel2016、使用 OS:Windows10 >
B1、B2、B3・・・とそれぞれ長文が入っているのですか? 25文字目ならわかるのですが、25行目と言われても、何をもって25行目なのか・・・
隣の列に出力したい文字は改行以降なのか、すべてなのかもわかりません。
1,2個でよいのでサンプル提示していただけますか?
(稲葉) 2019/01/09(水) 17:16
申し訳ありません。間違いです・・・。。。
例えば、B1に「この文章はダミーですこの文章はダミーですこの文章はダミーです」
とあった場合に
C1に
この文章はダミーですこの文章はダミーですこの文章は
ダミーです
と強制改行入れた状態で表示させたいのです。
B2に「この文章はダミーですこの文章はダミーですこの文章はダミーですこの文章はダミーです」
とあった場合に、
C2に
この文章はダミーですこの文章はダミーですこの文章は
ダミーですこの文章はダミーです
という感じで表示させたいです。
このようなのが、200行以上あります。
※説明が下手ですみません。
(3ぶろ) 2019/01/09(水) 17:53
25文字目だけでよければ、関数で行けそうですが、どうでしょう? =REPLACE(B1,25,1,MID(B1,25,1)&CHAR(10)) (稲葉) 2019/01/09(水) 18:08
そろそろ帰宅するのでVBAのほうも置いときます。 Sub test3() Dim i As Long Dim w As Variant w = Range("B1", Cells(Rows.Count, "B").End(xlUp)).Value With CreateObject("VBScript.RegExp") .Pattern = "(.{25})" '◆ここで25文字ごとをセットする .IgnoreCase = True .Global = True For i = 1 To UBound(w) w(i, 1) = .Replace(w(i, 1), "$1" & Chr(10)) Next i End With Range("C1").Resize(UBound(w)).Value = w End Sub
(稲葉) 2019/01/09(水) 18:32
=REPLACE(B1,26,0,CHAR(10)) でも良いですよ。
(チオチモリン) 2019/01/09(水) 18:57
文字数0ってできるんですね 勉強になりました (稲葉) 2019/01/09(水) 19:49
どうもうまく行きません、、、
=REPLACE(B1,25,1,MID(B1,25,1)&CHAR(10))
=REPLACE(B1,26,0,CHAR(10))
でも両方とも、CHAR10がうまく適用されいないようです・・・。。。
VBAの方は、
実行時エラー '13':
型が一致しません。
と言われ、うまく行きません。。。
(3ぶろ) 2019/01/09(水) 20:37
(チオチモリン) 2019/01/09(水) 20:45
エラーが出たときの網掛け場所はどこでしょう? (稲葉) 2019/01/09(水) 21:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.