Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Word 2013)
文(sentence)の取得がうまくできない
投稿日時: 17/11/24 10:53:44
投稿者: ストロベリー

テキストが以下のように垂直タブが入った場合、文(sentence)のテキストの取得がうまくできません。
 
------------------------------------
1文目のテキスト←「ト」のすぐ後ろに垂直タブ文字がある      
です。2文目のテキストです。←「。」のすぐ後ろに垂直タブ文字がある
3文目のテキストです。
------------------------------------
 
コードは以下のように書きました。
 

  Debug.Print "Sentences count = " & wdDoc.Paragraphs(1).Range.Sentences.Count
  For i = 1 To wdDoc.Paragraphs(1).Range.Sentences.Count
    Debug.Print "Sentences" & i & " = " & wdDoc.Paragraphs(1).Range.Sentences.Item(i).Text
  Next

 
結果は以下です
 
------------------------------------
Sentences count = 3
Sentences1 = 2
Sentences2 = 文目のテキストです。
Sentences3 = 3文目のテキストです。
------------------------------------
 
文として考えたときは
 
Sentences1 = 1文目のテキストです。
Sentences2 = 2文目のテキストです。
Sentences3 = 3文目のテキストです。
 
の方が正しいと思いますが、どうすれば取れるのでしょうか?
 
よろしくお願いします。

投稿日時: 17/11/24 11:11:16
投稿者: ストロベリー

垂直タブ文字について、Wordで文字コードを見た時、0xBという文字コードでした。

回答
投稿日時: 17/11/25 09:31:33
投稿者: Nao

こんにちは。
 
こちらで同様のことをしてみましたが、ストロベリーさんの結果と異なるのですが?
 
テキスト
------------------------------------
1文目のテキスト      
です。2文目のテキストです。
3文目のテキストです。
------------------------------------
 
結果
------------------------------------
Sentences count = 3
Sentences1 = 1文目のテキスト です。
Sentences2 = 2文目のテキストです。
Sentences3 = 3文目のテキストです。
------------------------------------
になりました。
 
「1文目のテキスト」と「です。」の間に半角スペースが入りますが、
概ねストロベリーさんがイメージされた結果となりましたが…?
 
試しに、垂直タブを取り除くとどうなりますか?
 

    Debug.Print "Sentences" & i & " = " & _
        Replace(wdDoc.Paragraphs(1).Range.Sentences.Item(i).Text, vbVerticalTab, "")

 

投稿日時: 17/11/27 11:01:51
投稿者: ストロベリー

Naoさんの垂直タブを取り除く、でやってみましたが、
文の区切り位置が変わらず、おかしい結果のままでした。

投稿日時: 17/11/27 11:15:43
投稿者: ストロベリー

Officeの言語設定の問題のようです。
 
今使っているWordが英語版で、デフォルト言語も英語となっていて、
デフォルト言語を日本語にしてみたら、文がちゃんと取れました。
 
Naoさん、見ていただいて、ありがとうございました。