NBSPS を検索して通常のスペースに置き換え、trim を使用してテキストの前後のスペースをクリーンアップすることにより、Microsoft Word の表から非改行スペースを削除するように設計された VBA スクリプトがあります。現状では、コードはテーブルの最初のセルをトリミングする以外はすべて機能します (ただし、最初のセルのスペースは置き換えられます)。MS Word でテーブル用のマクロをいくつか作成するので、これを引き起こす可能性のある Word/VBA に固有の動作があるかどうかを調べたいと思っていました。
Sub nbsbCleanupQuick()
' use find and replace to replace all nbsp in the table with regular spaces
' use trim to clean up unwanted spaces
' For some reason this macro will replace nbsp with regular spaces but will not trim in the first cell of a table
' vars for counting
Dim numRows, numCells As Integer
Dim rindex, cindex As Integer
'container for cell contents
Dim container As String
Selection.Tables(1).Select
numRows = Selection.Rows.Count
For rindex = 1 To numRows
numCells = Selection.Tables(1).Rows(rindex).Cells.Count
For cindex = 1 To numCells
container = ""
Selection.Tables(1).Rows(rindex).Cells(cindex).Range.Select
With Selection.Find
.Text = Chr(160)
.Replacement.Text = Chr(32)
.Execute Replace:=wdReplaceAll, Wrap:=wdFindContinue
End With
If (Len(Selection.Text) - 2 > 0) Then
container = Left(Selection.Text, Len(Selection.Text) - 2)
End If
Selection.Text = Trim(container)
Next
Next
End Sub
どんな助けでも大歓迎です:)