Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


59 / 308 ツリー ←次へ | 前へ→

【672】漢字あるいはカタカナからなる文字列の単語の取得 初心者 10/2/11(木) 13:10 質問[未読]
【745】Re:漢字あるいはカタカナからなる文字列の単... マナ 13/5/2(木) 14:20 発言[未読]

【672】漢字あるいはカタカナからなる文字列の単語...
質問  初心者  - 10/2/11(木) 13:10 -

引用なし
パスワード
   お世話になります。

Word本文中の単語で

 その文字列全部が漢字
      全部が全角カタカナ
      全部が半角カタカナ
 のとき、その文字列を取得する
ケースで
 
 各項目を

 漢字列      Activedocument.words(i) = "[−-鶴]{1,}"
 全角カタカナ列  Activedocument.words(i) = "[ァ-ヾ]{1,}"
 半角カタカナ列  Activedocument.words(i) = "[ヲ-゚]{1,}"

のように定義し、

  Select Case Activedocument.words(i)
  Case"[−-鶴]{1,}","[ァ-ヾ]{1,}","[ヲ-゚]{1,}"
     '実行コード
  End Select

としましたが、対象文字列を拾ってくれません。

定義の仕方に問題があるのでしょうか。

教えていただければ幸いです。

【745】Re:漢字あるいはカタカナからなる文字列の...
発言  マナ  - 13/5/2(木) 14:20 -

引用なし
パスワード
   回答がつきませんでしたので、もう必要ないかもしれませんが。
自分に勉強のために。

>  Select Case Activedocument.words(i)
>  Case"[−-鶴]{1,}","[ァ-ヾ]{1,}","[ヲ-゚]{1,}"
>
>としましたが、対象文字列を拾ってくれません。
>
>定義の仕方に問題があるのでしょうか。

Select Caseではワイルドカードは使えなかったかと思います。

Sub test()
  Dim myRng As Range
  Dim w As Object
  Dim cnt As Long
  
  Set myRng = Selection.Range

  With CreateObject("VBScript.RegExp")
    .Pattern = "^[一-鶴]+$|^[ァ-ヾ]+$|^[ヲ-゚]+$"
    For Each w In myRng.Words
      If .test(w.Text) Then
        'ここで実行
        Debug.Print w.Text
        cnt = cnt + 1
      End If
    Next
  End With
  If cnt > 0 Then
    MsgBox cnt & "個ありました"
  Else
    MsgBox "1個もありませんでした"
  End If
End Sub

59 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207136
(SS)C-BOARD v3.8 is Free