• 締切済み

【ワードのマクロ】特定の記号の後ろにタブをいれるマクロについて

マクロとVBAは詳しくありませんが内容はだいたい理解 できるかと思います。おしえて頂けると嬉しいです。 ワードのマクロまたはVBAで以下のようなことが 可能かおしえてください。どうもマクロでは できないようなのですがVBAなら可能でしょうか? =======質問内容============= 業務でつかっているあるワード文書内の 特定の記号(■とか●とか)の後ろに タブをいれる。特定の記号の後ろに数字があれば その後ろにタブをいれる。 VBAでここまで可能でしょうか。できるとすれば どのようなコードをいれるのかご存知のかた いらっしゃいましたらよろしくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 私は、このご質問だけでは意味を正確に理解しているわけではありません。実際の、例を示してくれるとありがたいです。 例えば、パラグラフの先頭にある記号に対して、その後ろに、タブを入れるなら以下のようになります。パラグラフの先頭にないものは、作り直さなくてはなりません。 [パラグラフ]は、ひとつの文章のまとまりです。上と下の行が独立していることを意味します。 例: ■ワードのマクロまたはVBAで以下のようなことが可能かおしえてください。 ○どうもマクロではできないようなのですがVBAなら可能でしょうか?      ↓ [以下のマクロ実行後結果] ■  ワードのマクロまたはVBAで以下のようなことが可能かおしえてください。 ○  どうもマクロではできないようなのですがVBAなら可能でしょうか? (上記は、タブを全角スペースで表現しています) (マクロの結果-この場合は、マクロとVBAは同義になります) Sub AddEnterTabProc()  'インデント付け  Dim Re As Object  Dim Match As Object  Dim Matches As Object  Dim para As Paragraph  Dim Reptext As String    Set Re = CreateObject("VBScript.RegExp")    Selection.HomeKey Unit:=wdStory  Selection.EndKey Unit:=wdStory, Extend:=wdExtend  With Re   .IgnoreCase = False   .Global = False   .Pattern = "(([■-◯]|\d)+\.*).*"   For Each para In Selection.Range.Paragraphs    firsttext = Left(para.Range.Text, 10)    If .Test(firsttext) Then     Set Matches = .Execute(firsttext)     If Matches.Count > 0 Then     Set Match = Matches(0)     Reptext = .Replace(Match.Value, "$1")     para.Range.Select     Selection.MoveStart Unit:=wdCharacter, Count:=Len(Reptext)     Selection.MoveRight Unit:=wdCharacter, Count:=Len(Reptext), Extend:=wdExtend     Selection.InsertBefore vbTab     End If    End If  Next para End With Set Re = Nothing Selection.HomeKey End Sub

jjcom1234
質問者

お礼

お礼が遅くなり申し訳ありません。 パラグラフの先頭にある記号に対してだったので, 回答して頂いたとおりでできました! ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A