Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Word 2010)
文字列が強調文字(太文字)かどうかを調べたい
投稿日時: 17/06/05 14:48:19
投稿者: バンディット_2

Wordマクロは初心者です。宜しくお願いいたします。
 
ワードで書かれた契約書に於いて、条項び行についてのみある処理を加えたいのです。
その条項は強調文字(太文字)で書かれています。一方条項の条文の中にも
”第XX条” と言う表記が混じっていますので、第 と 条 を手掛かりに検索しただけでは
純粋に条項の行を見つけることはできません。今のところ、強調文字化どうかを検出するしかないのです。
 
ワードマクロは初心者で、どのように条項のみを見つけ出したらいいかわかりません。
どなたかご教授をお願いいたします。
 
 
 例文 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・
 
第1条 概要    <− 強調文字
   この契約書は・・・・・・ に適用する。
 
第2条 秘密保持  <− 強調文字
   甲及び乙は業務上で知りえた・・・・・・・ すること。

回答
投稿日時: 17/06/05 20:56:18
投稿者: んなっと

第1条 概要
    この契約書は・・・・・・ に適用する。
  
第2条 秘密保持
    甲及び乙は業務上で知りえた・・・第1条・・・・ すること。
 
以下の例ならVBAは不要です。
 
●太字を赤字に置換したい
 
・置換
・検索する文字列:
フォント 太字
 置換する文字列:
フォント 赤字
 
●太字 第1条 を赤字に置換したい
 
・置換
・オプション>> クリック
・ワイルドカードを使用する にチェック
 
・検索する文字列:
第[0-9]{1,3}条
フォント 太字
 置換する文字列:
フォント 赤字
 
 
●太字 第1条 概要 を 第1条 【概要】に置換したい
 
・置換
・オプション>> クリック
・ワイルドカードを使用する にチェック
 
・検索する文字列:
(第[0-9]{1,3}条[  ])(*)^13
フォント 太字
 置換する文字列:
\1【\2】^p
 
●太字 第1条 を半角の 第1条 にしたい
 
・検索
・オプション>> クリック
・ワイルドカードを使用する にチェック
・検索する文字列:
第[0-9]{1,3}条[  ]
・検索する場所▼
メイン文書
・閉じる
・[フォント]のAa▼(文字種の変換)クリック
半角
 
しかし、次の場合は…
 
※太字 第1条 を 漢数字で第一条 にしたい
・おそらくVBA利用

回答
投稿日時: 17/06/06 10:04:57
投稿者: んなっと

・検索する文字列:
フォント 太字
 
は、
 
・検索する文字列:
[書式▼]クリック→フォント→太字→OK
 
です。

回答
投稿日時: 17/06/09 17:03:48
投稿者: bornkiller

 試しにやってみました。
 
Sub Siken10()
  Dim doc1 As Document, myRan1 As Range, Start, Pausetime
  Set doc1 = ActiveDocument
  Set myRan1 = doc1.Range(0, 0)
  With myRan1.Find
    .ClearFormatting
    .Font.Bold = True
    .Text = ""
    .Format = True
    .Forward = True
    .Wrap = wdFindAsk
    Do While .Execute
      myRan1.Select
      doc1.ActiveWindow.Activate
      Pausetime = 10 ' 中断時間を設定します。
      Start = Timer ' 中断の開始時刻を設定します。
      Do While Timer < Start + Pausetime
        DoEvents ' 他のプロセスに制御を渡します。
      Loop
      myRan1.Collapse wdCollapseEnd
    Loop
  End With
 
End Sub
 
 さらにこれを使えるようにするには、中断時間中にkeystateを監視し、特定のkeyで再開させるというのはどうでしょうか。

投稿日時: 17/06/13 15:40:41
投稿者: バンディット_2

 
bornkiller さん
 
 どうもありがとうございました。 
 マクロでどうしたらよいのか、とっかかりが分からなくて悩んでおりました。
 あんまり意味は解らないのですが、
 プログラムを動作させたらちゃんと強調文字だけを選んで行ってます。
 これを参考に試行錯誤&勉強してみます。
 
P.S.
「んなっと」 さん 親切なアドバイスをありがとうございました。
 親切さが伝わってくるアドバイスでした。