もう一つの難しい課題はあなたのためです!Wordのオートコレクト - AddRichTextスプリアス文字と文字列を範囲に変換
MSWord 2016文書の表から書式設定された項目を追加するためのマクロを開発しようとしています(書式設定された項目の通常どおりnormal.dotxに格納されています)。
文書には、2つの列を含む表があります。左側の列には短いテキストがあり、右側の列には、autocorrectエントリの書式付きの長いテキストがあります。
AutoCorrect.Entries.Add Name:=ShortText, Value:=LongText
という行を使って、フォーマットされていないテキストを保存するマクロがあります。私はAutoCorrect.Entries.AddRichText ShortText, longtext
関数を使用するように変更しようとしています。この関数は、テーブルのフォントとイタリックプロパティを取得する必要があります。
私は2つの方法を試しましたが、それぞれ解決策が見つからないという問題があります。
FIRST ...以下の詳細 - testAddRichText1
は、ここでは、このコードを使用するコード(化粧品の一部を削除)
Sub testAddRichText1()
Set oDoc = ActiveDocument
For i = 1 To oDoc.Tables(2).Rows.Count
If oDoc.Tables(2).Rows(i).Cells(1).Range.Characters.Count > 1 Then
ShortText = oDoc.Tables(2).Cell(Row:=i, Column:=1)
ShortText = Left(ShortText, Len(ShortText) - 2) 'remove the trailing CR and LF
longtext = oDoc.Tables(2).Cell(Row:=i, Column:=2)
StatusBar = "Adding " & ShortText & " = " & longtext.Text
AutoCorrect.Entries.AddRichText ShortText, longtext
End If
Next i
MsgBox "done"
End Sub
だ、印刷できない文字の数は、テキストの最後にあります主にChr(13)の細胞から抽出された。私は文字列の上にクリーナーを実行して、印刷できない文字をすべて削除しようとしましたが、オートコレクトが使用されたときに訂正されたテキストの最後に黒いボックスが表示されます。私はそれがテーブルセルにある何らかの秘密の単語コードだと仮定します。 ASC値を印刷しようとすると13が返されますが、削除すると効果はありません(ブラックボックス記号の前にある文字を削除するだけです)。
SECOND testAddRichText2
それでは、私はちょうど私の作業モデルで私のテキスト文字列に斜体を追加し、その後AddRichText方法でそれを使用してのアプローチを試してみました。 AddRichTextは範囲を想定しており、テキスト文字列を範囲に変換できないため、これは穴に入ります。 相続人はそのコード
Sub testAddRichText2()
Set oDoc = ActiveDocument
Dim LongTextrng As Range
For i = 1 To oDoc.Tables(2).Rows.Count
If oDoc.Tables(2).Rows(i).Cells(1).Range.Characters.Count > 1 Then
ShortText = oDoc.Tables(2).Cell(Row:=i, Column:=1)
ShortText = Left(ShortText, Len(ShortText) - 2)
longtext = oDoc.Tables(2).Cell(Row:=i, Column:=2).Range
longtext = Left(longtext, Len(longtext) - 2)
LongTextrng.Text = longtext 'Fails
LongTextrng.Italic = True
StatusBar = "Adding " & ShortText & " = " & longtextrng.Text
AutoCorrect.Entries.Add Name:=ShortText, Value:=LongTextrng
End If
Next i
MsgBox "done"
End Sub
これらのいずれかにどのような援助が
乾杯
ずっとappreciatedだろう...スティーブ
おかげでティム。素晴らしいですし、完璧に動作します!説明とはるかにエレガントなコーディングに感謝します!乾杯...スティーブ – SteveP