2017-09-07 14 views
0

Wordでは、文書のユーザーが複数の文字列、単語、文章などにハイライトを適用するのは簡単です。 しかし、Ctrlキーを押しながらいくつかの単語を選択して次の文を実行すると、最後に選択した単語だけが変更されます。 選択した複数の単語にwdtitlewordを適用する方法はありますか?おかげさまで wdtitleword - vbaを使用して複数の単語に適用する

sub a() 
Selection.Range.Case = wdTitleWord 
end sub 
+0

私のために働いています...あなたはもっと情報を与えることができますか? – SlowLearner

+0

@SlowLearner私のためには機能しません - 最後に選択した単語のセットのみが変更されます。複数の単語セットをCtrlキーを押しながら選択してみましたか、または1つのセットだけを選択しましたか? (例えば、私は「Abds 'jsdhfksahdf sdfkhskd' sdkf sjakh skdf '' ksfh ksdafh '' skdfh sdkjh fksdh '' skdhg kdhg khdg '' kshg kasgh "を使用していました(コードハイライトは選択された部分を表し、' ksfh ksdafh'は最後それらの中から選択された) 'ksfh ksdafh'だけが変更されました) – YowE3K

+0

@ YowE3Kああ - 不連続です...いいえ、うまくいきません。そして選択は単語の最後のセットを返すようだ...私は思った: 'Shift + Ctrl +矢印' .... doh – SlowLearner

答えて

1

これを試してください:

Sub changeNonContigCase() 

    ' Find the non-contig selection 
    If Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic Then 
     Selection.Font.Shading.BackgroundPatternColor = whtcolor 
    End If 

    ' Find and process each range with .Font.Shading.BackgroundPatternColor = WhtColor 
    ActiveDocument.Range.Select 
    Selection.Collapse wdCollapseStart 

    With Selection.Find 
     .Font.Shading.BackgroundPatternColor = whtcolor 
     .Forward = True 
     .Wrap = wdFindContinue 

     Do While .Execute 
      ' Do what you need 
      Selection.Range.Case = wdTitleWord 

      ' Reset shading as you go 
      Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic 

      ' Setup to find the next selection 
      Selection.Collapse wdCollapseEnd 
     Loop 
    End With 

End Sub 

これは動作しますが、間接的です。私はこれを達成するより直接的な方法はないと思う。保存する必要のある既存の書式をリセットしないように変更することができます。これまでは、MS Wordで不連続範囲を選択することが可能であることを知りませんでした。残念ながら、VBAで作業するのは簡単ではありません。

+1

私が言ったように、私は非常に、非常に小さなWord VBAを知っている - だから私はそれが何をしているの半分を理解していない私のサンプルテストでうまくいけば、OPのためにうまくいきます。 – YowE3K

+0

@ YowE3Kはい... MS Wordは、Excelからの非常に異なる獣です、テストのためにありがとう:) – SlowLearner

+0

こんにちは、感謝の応答。私はあなたのコードを試しましたが、私が得るのは、連続していない言葉に新しい陰影です。タイトルケースに変更されたものはありません。 (私は 'whtcolor'を 'wdcolorpink'に変更して物事を際立たせました)コードは 'Do while'の間だけ実行されます。 Execute 'を選択して停止します。 Word 2010を使用しています。 – hmm

関連する問題