2016-04-28 10 views
0

文書に空白と段落記号がたくさん含まれています。選択肢がレターであるかどうかを検出します。

キャラクターSelection.findがAからZまでの任意の文字であれば、私がしたいことが検出されますか?あなたの選択の最初の文字を取得したい場合は

Dim EE As String 
    Selection.Find.ClearFormatting 
    With Selection.Find 
     .Text = "^?" 
     .Forward = True 
     .Wrap = wdFindStop 
    End With 

    Selection.Find.Execute 

    EE = Selection.Text 

If isletter = True Then 
     MsgBox ("Letter found") 
Else 
     MsgBox ("No letter found") 
End If 

答えて

0

段落記号についていくつかの研究を行い、Chr(13)^p(段落記号)を検出できることを確認しました。

次のコードでは、paragraph markまたはLetterを検出できます。

Sub FindanyLetter() 
Dim EE As String 

     Selection.Find.ClearFormatting 
     With Selection.Find 
      .Text = "^?" 
      .Forward = False 
      .Wrap = wdFindStop 
     End With 
     Selection.Find.Execute 

     EE = Selection.Text 

     If EE = Chr(13) Or EE = " " Then 

     MsgBox "Paraghraph mark or space" 
     Else 
     MsgBox "Letter" 

     End If 

    End Sub 
1

あなたもLeft(Selection,1)を使用することができます。あなたが最初の文字を検索したい場合は、使用することができます。

With Selection.Find 
    .MatchWildcards = true 
    .Text = "[a-zA-Z]" '[A-Z] if you only want upper case 
    .Forward = True 
    .Wrap = wdFindStop 
End With 

をあなたは(長さ1の)文字列はあなたには、いくつかのパターンマッチングを行うためにLikeを使用することができます文字かどうかを知りたい場合は、次の

If EE Like "[A-Z]" Then '"[a-zA-Z]" for upper and lower case 

またはそのUnicode値をチェック

If AscW(EE)>=AscW("A") and AscW(EE)<=AscW("Z") Then 'for upper case letters 

編集:それが必要として、それが機能しなかったので、最後の例を削除します。

+0

本当にありがとうございます。ご意見ありがとうございます。それは私がすべてのキャラクターを試していないために得るものです... – arcadeprecinct

関連する問題