文字列を操作する

 

ワードVBAで使う基本的なオブジェクト


ワードVBAでは、下のような単位で文書を扱います。

 
ActiveDocument
 
作業中の文書全体
 
Paragraph 段落(改行マークで区切られた部分)
 
Sentence       文(読点(。)で区切られた部分)
Sentence(0)、Sentence(1)、Sentence(2)、・・・・・・ は文書の1番目、2番目、3番目の文です。
 
Words
 
単語
 
Characters
 
文字
 
Selection
 
文書の選択部分(マウスで指定できます)
 
Range
 
文書の選択部分(プログラム中で指定します)
 

 
例えば

ActiveDocument.Sentence(1).Characters.Count

は作業中の文書の2番目の文に含まれる文字の数、

ActiveDocument.Paragraphs.Count

は作業中の文書の段落の総数です。

 


マウスで選択したテキストをメッセージボックスに表示する。

ワードVBAでは、文書のテキストを扱いますから、「VBAテスト.doc」に何かテキストを入力します。1ページ当たりのテキストの長さは適当でかまいませんが、数ページ入力します。たびたび入力するのも面倒ですから入力した後で、「VBAテスト.doc」を上書き保存します。入力後、VBEを開いてVBAを記入します。ワード画面に戻り、マウスで文書の一部を選択、「MyGo」ボタンをクリックします。マウスで選択したテキスト がメッセージボックスに表示されます。

Option Explicit

Private Sub MyGo()
    MsgBox Selection
End Sub

 

(注)2箇所以上選択したときは、最後に選択した箇所が表示されます。

 


文書をすべて選択する

このVBAでは文書はすべて選択状態になります。ワードメニューで「編集」→「すべて選択」に相当します。

Option Explicit

Private Sub MyGo()
'文書をすべて選択します
Dim Rng As Range
    Set Rng = ActiveDocument.Content
    Rng.Select
End Sub


 


文書の段落(改行マークで区切られた部分)の数をメッセージボックスに表示する

Option Explicit

Private Sub MyGo()
    MsgBox ActiveDocument.Paragraphs.Count, vbOKOnly, "段落の数"
End Sub

 

 


文書の文(読点(。)で区切られた部分)の数をメッセージボックスに表示する

Option Explicit

Private Sub MyGo()
    MsgBox ActiveDocument.Sentences.Count, vbOKOnly, "文の数"
End Sub


 


マウスで選択した部分の文字数をメッセージボックスに表示する。

Option Explicit

Private Sub MyGo()
    MsgBox Selection.Characters.Count, vbOKOnly, "文字数"
End Sub

 

 


選択した部分の前後に文字列を挿入する。

Option Explicit

Sub MyGo()
'選択した部分の後に「あいう」を挿入します
    Selection.InsertAfter "あいう"
End Sub

Sub MyCancel()
'選択した部分の前に「ABC」を挿入します
    Selection.InsertBeforer "ABC"
End Sub

 

 


選択部分の段落記号(Chr$(13))を削除する

Option Explicit

Private Sub MyGo()
Dim n As Integer
Dim str0 As String, str As String
    str0 = ""
    str = Selection.Text
    n = InStr(str, Chr$(13))   
    Do Until n = 0
        str0 = str0 & Left(str, n - 1)
        str = Mid(str, n + 1)
        n = InStr(str, Chr$(13))
    Loop
    Selection.Text = str0
End Sub
 


 

戻 る トップページ