[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文の分割』(ゆゆ)
excelで
”、” ”。” ”「” ”」”
で文章を区切りたいです。
sheet1で本文をA1、A2、、、A(N)に入れておき
sheet2に句読点鍵括弧で分割された短文をA1、A2、、、、A(N)に入れていきたいです。
どのようにVBAを作成したらいいでしょうか。
とても困っているので解答をお願いしたいです、、、!!
sheet1
A B C 1 本文 2 本文 3 本文 ・・・
sheet2
A B C 1 私は、 2 山へ芝仮に、 3 彼は、 ・・・
みたいな感じにしたいです。
< 使用 Excel:Office365、使用 OS:Windows10 >
(もこな2) 2021/10/26(火) 21:16
と入力されているsheet1を
A1=私は、
A2山へ芝仮に、
A3彼は、
A4川へ選択に、
A5・・・
A6あるひ男は、
A7落ちていた藁を見つけました。
A8それを拾って、
・
・
・
という風にsheet2に出力したいです。
split関数などを調べましたがうまく設計できなかったため質問させていただきました。
(ゆゆ) 2021/10/26(火) 21:27
ワークシート関数でやりたいんですかね?
Sub sample() Dim aCell As Range Dim buf() As String Dim iR As Long, L As Long iR = 1 With Worksheets("Sheet1") For Each aCell In .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) buf = Split(SplistSentence(aCell.Value), vbLf) L = UBound(buf) + 1 Worksheets("Sheet2").Cells(iR, 1).Resize(L).Value = WorksheetFunction.Transpose(buf) iR = iR + L Next End With End Sub Function SplistSentence(ByVal Sentence As String) As String Sentence = Replace(Sentence, "、", "、" & vbLf) Sentence = Replace(Sentence, "。", "。" & vbLf) Sentence = Replace(Sentence, "「", vbLf & "「") Sentence = Replace(Sentence, "」", "」" & vbLf) Sentence = Replace(Sentence, "。" & vbLf & "」", "。」") SplistSentence = Sentence End Function (´・ω・`) 2021/10/26(火) 21:54
同じことをPowerQueryで let ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"列1", type text}}), 置き換えられた値 = Table.ReplaceValue(変更された型,"、","、#(lf)",Replacer.ReplaceText,{"列1"}), 置き換えられた値1 = Table.ReplaceValue(置き換えられた値,"。","。#(lf)",Replacer.ReplaceText,{"列1"}), 置き換えられた値2 = Table.ReplaceValue(置き換えられた値1,"「","#(lf)「",Replacer.ReplaceText,{"列1"}), 置き換えられた値3 = Table.ReplaceValue(置き換えられた値2,"」","」#(lf)",Replacer.ReplaceText,{"列1"}), 置き換えられた値4 = Table.ReplaceValue(置き換えられた値3,"。#(lf)」","。」",Replacer.ReplaceText,{"列1"}), 区切り記号による列の分割 = Table.ExpandListColumn(Table.TransformColumns(置き換えられた値4, {{"列1", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "列1"), 変更された型1 = Table.TransformColumnTypes(区切り記号による列の分割,{{"列1", type text}}) in 変更された型1 (´・ω・`) 2021/10/26(火) 22:22
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.