Word VBA質問箱 IV

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

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


782 / 886 ←次へ | 前へ→

【109】Re:漢数字をアラビア数字に置き換えたい
回答  H. C. Shinopy  - 04/6/21(月) 0:00 -

引用なし
パスワード
   随分と日が経ってしまいましたが・・・
Officeアシスタントをモードレスで起動して、
既に洋数字に置き換えられたものをワイルドカードで検索して、
黄色の蛍光ペン書式にするということで考えました。

下記のマクロを起動し、
[蛍光ペン書式 設定]をクリックして下さい。
洋数字の部分が、黄色の蛍光ペン書式になります。

その後、[蛍光ペン書式 検索]をクリックして、順次確認できますが、
漢数字に戻したい場合は、この検索で文字列が選択された状態で、
スペースキーを押すと、変換候補が表示されるので、
スペースキーを数回押して、変換候補を選択し、
[蛍光ペン書式 検索]を押して下さい。
(次の蛍光ペン書式の文字列を検索します。
この時、変換確定のための実行キーを押す必要はありません。)

[蛍光ペン書式 解除]は、蛍光ペン書式を全部解除します。

尚、Officeアシスタントは五者択一ですが、
[3][4]の処理は作っておりません。

私の環境はWord2002・IME2002です。
私が調べた範囲では、
2000でも同様にできると思うのですが・・・

Sub 洋数字検索()
 Rem 洋数字検索処理
 Rem 言語:Word VBA
 Rem 機能:洋数字を検索して、蛍光ペン書式を設定する処理
 Rem 注記:洋数字検索を起動して使用。
 Rem 第1版:2004/06/20:作成。
 Rem *----*----*  *----*----*  *----*----*  *----*----*
 Assistant.Visible = True
 '
 With Assistant.NewBalloon
  .Animation = msoAnimationIdle
  .BalloonType = msoBalloonTypeButtons
  .Icon = msoIconAlertQuery
  .Button = msoButtonSetCancel
  .Heading = vbCr & "洋数字 検索処理"
  .Text = "選択して下さい。"
  .Labels(1).Text = "蛍光ペン書式 設定"
  .Labels(2).Text = "蛍光ペン書式 検索"
  .Labels(3).Text = "====="
  .Labels(4).Text = "====="
  .Labels(5).Text = "蛍光ペン書式 解除"
  .Mode = msoModeModeless
  .Callback = "洋数字検索Exec"
  .Show
 End With
End Sub ' 洋数字検索 *----*----*  *----*----*  *----*----*  *----*----*

Sub 洋数字検索Exec(blln As Balloon, bttn As Long, bllnID As Long)
 Dim myStartMarker As Word.Range
 Dim myResult As Integer
 '
 If bttn = -2 Then ' [キャンセル]ボタン時
  blln.Close
  Assistant.Visible = False
  Exit Sub
 End If
 '
 Select Case bttn
  Case 1
   Selection.HomeKey Unit:=wdStory
   Set myStartMarker = Selection.Range
   '
   Rem 1桁以上の洋数字を検索。
   With Selection.Find
    .ClearFormatting
    .Text = "[0-9]{1,}"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
   End With
   '
   Do While Selection.Find.Execute
    Selection.Range.HighlightColorIndex = wdYellow
   Loop
   Selection.Collapse wdCollapseEnd
   myStartMarker.Select ' 検索後、開始点に戻る。
   '
   Rem 桁区切りカンマ・小数点付き洋数字を検索
   With Selection.Find
    .ClearFormatting
    .Text = "[0-9,.]{3,}"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
   End With
   '
   Do While Selection.Find.Execute
    Selection.Range.HighlightColorIndex = wdYellow
   Loop
   '
   Selection.Collapse wdCollapseEnd
   myStartMarker.Select ' 検索後、開始点に戻る。
   Assistant.Animation = msoAnimationCharacterSuccessMajor
  ' *====*====*====*====*
  Case 2
   With Selection.Find
    .ClearFormatting
    .Text = ""
    .Highlight = True ' 蛍光ペン書式を検索することを指定
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Execute
   End With
   '
   Assistant.Animation = msoAnimationGestureRight
   ' *====*====*====*====*
  Case 3
   Rem 何も処理しない。
   ' *====*====*====*====*
  Case 4
   Rem 何も処理しない。
   ' *====*====*====*====*
  Case 5
   myResult = MsgBox("蛍光ペン書式を" & "解除しますか?", vbExclamation + vbOKCancel, "洋数字検索")
   If myResult = vbCancel Then
    If Tasks.Exists(Name:="Microsoft Word") = True Then
     Tasks("Microsoft Word").Activate
    End If
    Exit Sub
   End If
   '
   Set myStartMarker = Selection.Range
   Selection.Words(1).Select
   Selection.Collapse wdCollapseStart
   '
   With Selection.Find
    .ClearFormatting
    .Highlight = True ' 蛍光ペン書式を検索することを指定
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
   End With
   '
   Do While Selection.Find.Execute
    With Selection.Range
     .HighlightColorIndex = wdNoHighlight
    End With
    Selection.Collapse wdCollapseEnd
   Loop
   '
   myStartMarker.Select ' 検索後、開始点に戻る。
   Assistant.Animation = msoAnimationCharacterSuccessMajor
 End Select
 '
 If Tasks.Exists(Name:="Microsoft Word") = True Then
  Tasks("Microsoft Word").Activate
 End If
End Sub ' 洋数字検索Exec *----*----*  *----*----*  *----*----*

1,669 hits

【104】漢数字をアラビア数字に置き換えたい bunya 04/5/31(月) 9:28 質問
【109】Re:漢数字をアラビア数字に置き換えたい H. C. Shinopy 04/6/21(月) 0:00 回答
【111】Re:漢数字をアラビア数字に置き換えたい H. C. Shinopy 04/6/21(月) 22:23 回答

782 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207142
(SS)C-BOARD v3.8 is Free