![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ワードマクロで指定範囲内の改行の数を調べたいと思っています。下記のような記述をしました。改行マークのない文を指定(selection)して実行すると、予定通り、n=0となるのですが、改行マークのある箇所を指定すると、文章全体の改行の数を調べてしまいます。
改行の意味で「vbCr」を使用しましたが、それが問題なのでしょうか?また、改行が入るとselectionが無効になるのでしょうか?
どなたか教えてください。よろしくお願いします。
Sub test()
Dim n As Integer
Do While Selection.Find.Execute(findtext:=vbCr, Forward:=True) = True
n = n + 1
Loop
MsgBox (n)
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
通常は、そのような改行の数は、MS-Wordで、カウントするようなことはしませんが、
今回の場合は、
>改行マークのない文を指定(selection)して実行すると、予定通り、n=0となるのですが、改行マークのある箇所を指定すると、文章全体の改行の数を調べてしまいます。
ドキュメントの検索からだと、Selection の終わりを認識しますが、VBAからだと、そのまま先に行ってしまいます。以下のようにすれば良いかと思います。それと、MS-WordのVBAは、あまり省略しないほうが良いようです。それと、MS-Wordには、Cr と Lf があるはずですが、今回は、あくまでも、1つにしました。
'//
Sub CountCR()
Dim flgFound As Boolean
Dim iCount As Long
Dim rng As Range
Dim d As Long, e As Long
Set rng = Selection.Range
e = rng.End
iCount = 0
Do While e >= d
With rng.Find
.ClearFormatting
.Text = "^13"
.Wrap = wdFindStop
.MatchFuzzy = False '←ここと
.MatchWildcards = True '←ここが大事
.Execute
End With
d = rng.Start
flgFound = rng.Find.Found
If d > e Then Exit Do
If flgFound = True Then iCount = iCount + 1
Loop
MsgBox iCount & "個見つかりました。"
Set rng = Nothing
End Sub
No.1
- 回答日時:
Word VBAは●使ったことがない●ので考え方だけ。
。。選択範囲の中から改行文字を検索するのではなくて
選択範囲の中の改行文字を長さ0の文字列に置換して
その文字数を選択範囲の文字数から引いてやるのはどうでしょう。
'-------------------------------
Sub test()
Dim N As Long
N = Len(Selection) - Len(Replace(Selection, vbCr, ""))
MsgBox N
End Sub
'------------------------------
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Chr(13)とChr(10)の違いは?
-
wordで均等割り付けをするとき...
-
履歴書の志望動機の所で、「ま...
-
短歌が1行で収まらない場合、...
-
エクセル文字入力でセル内での...
-
wordの何も書かれていない2ペー...
-
せりふが長いときのかぎかっこ...
-
【エクセル】セル最後にある無...
-
excelで勝手に改行されます
-
一太郎 行末で改行
-
イミディエイトウインドウの最...
-
パワーポイントのテキストボックス
-
Tera Term のマクロでの改行コ...
-
エクセルVBAで If~ Then
-
Excel VBAで改行を含めたセルの...
-
PDFの改行URLを有効にす...
-
ワードマクロで指定範囲内の改...
-
Excel セル内の最初と最後の改...
-
エクセルでセル内改行の複数行...
-
VBAでCSV内にある改行を取る方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの何も書かれていない2ペー...
-
Chr(13)とChr(10)の違いは?
-
履歴書の志望動機の所で、「ま...
-
wordで均等割り付けをするとき...
-
短歌が1行で収まらない場合、...
-
【エクセル】セル最後にある無...
-
棒グラフ 横軸の縦書き2列にし...
-
excelで勝手に改行されます
-
PDFの改行URLを有効にす...
-
VBA フォームのテキストボック...
-
Accessにインポートしようとす...
-
パワーポイントのテキストボックス
-
イミディエイトウインドウの最...
-
Excel VBAで改行を含めたセルの...
-
エクセルでセル内改行の複数行...
-
WordにURLを載せると
-
Excel セル内の最初と最後の改...
-
バッチで指定ファイルの文末に...
-
Tera Term のマクロでの改行コ...
-
Word 途中で勝手に改行してしま...
おすすめ情報