-1

MS Word(2013)のすべての脚注にタブを追加する次のコード(私のものではありません)があります。

コードは正常に動作しますが、毎回タブを追加するのではなく、最初の文字 (タブ、スペースに関係なく) をタブに置き換えるだけであれば、さらにうまく機能します。

そうすれば、マクロが 2 回実行されても、2 つのタブなどはありませんでした。

Sub TabFootnotes()
    For s = 1 To ActiveDocument.Footnotes.Count
        ActiveDocument.Footnotes(s).Range.Select
        With Selection
            .Collapse Direction:=wdCollapseStart
            .MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            .TypeText Text:=vbTab
        End With
    Next
End Sub
4

1 に答える 1

0

ただし、これを行うには、最初の文字が置換可能かどうかを判断する方法を考え出す必要があります。これは、そのスペースを別のものに変更すると、この何かが脚注の一部になるためRangeです。そのため、マクロをもう一度実行するときに、最初の文字を保持する必要があるか、置き換える必要があるかを知る必要があります。

Dim f As Footnote

For Each f In ActiveDocument.Footnotes
  With f.Range.Characters(1)
    If .Text = vbTab Or .Text = " " Then 'Use any other sensible detection logic here
      .Text = vbTab
    Else
      .InsertBefore vbTab
    End If
  End With
Next
于 2015-06-07T11:35:37.927 に答える