
別のエディターから Microsoft Word にテキストをコピーして貼り付けると、段落の先頭にタブが付きます。これを段落のインデントに変換して、より適切な書式にするにはどうすればよいでしょうか。
答え1
それを実現するための最良の方法は、VBA マクロを書くことだと思いました。
おそらくパフォーマンスは最適化されていないが、目的は果たせる。=)
Sub ConvertLeadingTabsToIndents()
On Error GoTo Error
Application.ScreenUpdating = False
Dim found As Boolean
found = FindNextTab()
While (found)
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeBackspace
Selection.Paragraphs.Indent
found = FindNextTab()
Wend
MsgBox "Success!", vbInformation
Exit_Sub:
Exit Sub
Error:
Application.ScreenUpdating = True
' Regenerate original error.
Dim intErrNum As Integer
intErrNum = Err
Err.Clear
Err.Raise intErrNum
End Sub
Function FindNextTab()
With Selection.Find
.Text = "^p^t"
.Forward = True
.Wrap = wdFindContinue
.Format = False
End With
FindNextTab = Selection.Find.Execute
End Function