dポイントプレゼントキャンペーン実施中!

Wordで書かれている文章の複数行をカーソルで選択してマクロを実行します。
すると、読み込んだ複数行の文字列(ABC=selection.Text)から
1行ずつ読み出して処理したいのですが、
文字列ABCから1行ずつ読み出す方法が分かりません。
自分なり色々やってみたのですがうまくいきませんでした。
指定したテキストファイルから1行ずつ読み出す方法は分かります。
しかし、ネットを探しても文字列の変数から1行ずつ読み出す方法は
見つかりませんでした。
ぜひ、ご教授ください。

A 回答 (2件)

No.1の回答者です



質問者さんが書いている「行」とは、[ Enter ]キーなどで改行された1行
単位で改行されたものですか?
「テキストファイルから1行ずつ読み出す」と質問に書かれていたので、
もしかしたら、段落単位なのかもしれないと思っていましたので。

お礼にあるsampleマクロの場合でも、複数行が表示されていることと、
行指定をしたいという意味なら、Wordの行を意味するLinesコレクション
ではなくParagraphsコレクションなので、処理は簡単です。

選択範囲から段落数を取得して、指定した段落を処理するだけなので
難しくないと思いますよ。
https://msdn.microsoft.com/ja-jp/library/office/ …
http://www.relief.jp/itnote/archives/word-vba-ge …

Sub test()
 Dim i, j As Integer

 i = Selection.Range.Paragraphs.Count
 j = InputBox(i & "つの段落があります。何番目を処理するの?", "指定段落の前に段落追加")

Selection.Paragraphs(j).Range.InsertParagraphBefore

End Sub

この回答にお礼されても、追加回答はしないと思います。
他の回答者からのアドバイスを受けてくださいね。
    • good
    • 0

選択範囲して変数に入ったテキストは、取得した時点で行単位になって


いないものになっているはずです。

読み込む時点で行単位で処理したものを取得するなら、行単位で処理
することも可能だと思います。
http://www.relief.jp/itnote/archives/word-vba-ge …

取得したものを処理するなどのWordマクロを提示するほどのスキルを
私は持っていませんから、補足されても追加回答しないかもしれません
のであしからず。
    • good
    • 0
この回答へのお礼

回答有難うございます。
1行ずつ読み込んでいくマクロ、大変参考になりました。

Word文書で複数行を選択し、以下のマクロを実行すると
 メッセージボックスに選択した複数行が表示されます。
 ですので、行を指定するだけで、
 何とか手動操作部分を少なしたいと考えいます。
Sub Sample()
Dim txt As String
txt = Selection.Text
MsgBox txt
End Sub

お礼日時:2017/02/01 20:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!