Excel VBA 質問スレッド No.831 (解決済)

g列に;があると改行。そしてセルに残った;を削除

投稿者 : たす     投稿日時 : 2022/06/24(Fri) 13:55:04     OS : 未指定     EXCEL : 未指定
マクロについて質問です。

;で改行。下記のサイトは句読点ですが、サイトのようにすると、特定のセルだとできますが、この部分をg列全ての範囲を指定する場合どういう式になりますか?

また改行すると他の列は空白になってしまいます。その空白になってる行には上のセルに入力されてるものを空白列にぜんぶのコピーしたいです。
例えばaからc列が空白だから上の入力されてるセルのをコピーして空白を埋めたいっていう感じです。
よろしくお願いします
https://vbabeginner.net/divide-sentences-commas/#:~:text=%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%81%AF27%E8%A1%8C,%E3%80%82%E2%80%9D%20Then%E3%80%8D%E3%81%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82

Excel・123閲覧

[返信 1] Re : g列に;があると改行。そしてセルに残った;を削除
投稿者 : さんこう     投稿日時 : 2022/06/24(Fri) 14:21:33
>その空白になってる行には上のセルに入力されてるものを空白列にぜんぶのコピーしたいです。
ここだけ。

'// 下に1行追加
r.Offset(1, 0).EntireRow.Insert
r.Offset(1, 0).EntireRow.Value = r.EntireRow.Value '追加

[返信 2] Re : g列に;があると改行。そしてセルに残った;を削除
投稿者 : てらてら     投稿日時 : 2022/06/24(Fri) 14:43:34
こんにちは。

質問者さんが、コードを掲載しないのは上手くないと思いますよ。
他の人がみても参考になりませんから。

回答ですが、逐次行が追加されるので、最後にすぐ下を見に行って値があれば最初に戻ればOKでしょう。以下の例ではTOPというラベルに飛んでいます。
以下の例ではG列は関係ありません。適当にG列の値がある先頭を選択して実行してください。

Sub LineBreak()
Dim r As Range '// 処理対象セル
Dim s As String '// セル文字列
Dim c As String '// セル文字列の指定位置の1文字
Dim i As Integer '// Mid()でのセル文字列の1文字を指定するためのカウンタ


'// アクティブセルのRangeオブジェクトを取得
Set r = ActiveCell
TOP:
'// セル文字列を取得
s = r.Value

'// カウンタを初期化
i = 1

'// 最終文字まで文字数ループ
Do
'// 最終文字の場合(最終文字が句点・読点の場合は処理しない)
If i >= Len(s) Then
Exit Do
End If

'// 1文字取得
c = Mid(s, i, 1)

'// 句点か読点の場合
'If c = "。" Or c = "、" Then
If c = ";" Then '//----変更

'// 下に1行追加
r.Offset(1, 0).EntireRow.Insert

'// 元のセルの文章を句点読点までの文章に書き換える
r.Value = Left(s, i)

'// 下のセルに句点読点以降の文章を書き込む
r.Offset(1, 0).Value = Mid(s, i + 1, Len(s))

'// 処理対象セルを追加した下のセルに変更(行追加後のセル文字列を処理対象とするため)
Set r = r.Offset(1, 0)

'// セル文字列を更新
s = r.Value

'// 句点読点位置カウンタを初期化
i = 0
End If

'// 句点読点位置カウンタを加算
i = i + 1
Loop

Set r = r.Offset(1, 0)

If r.Value <> "" Then GoTo TOP


End Sub


コードパクりました m(_ _)m メンゴ

[返信 3] Re : g列に;があると改行。そしてセルに残った;を削除
投稿者 : たす     投稿日時 : 2022/06/28(Tue) 15:25:22
ありがとうございました

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2022-07-07 14:02:46 )

Page
Top