2017-01-10 12 views
-1

ワードテーブルのセルに文字の書式を個別に書式設定するためのVBA自動化可能な方法はありますか?ワードテーブルセルの部分文字列

私は、次の(シンボリックコード)を達成するためのソリューションを探し

Dim myLbl1 as String 
Dim myTxt1 as String 
Dim myLbl2 as String 
Dim myTxt2 as String 
Dim myLbl3 as String 
Dim myTxt3 as String 

…. 
‘ Code to fill in the afore defined Variables with random content and 
' arbitrary length including linebreaks and paragraph breaks 
…. 
Set oTable = ActiveDocument.Tables.Add(Range:=Selection.Range, _ 
    numrows:=3, numcolumns:=1) 
oTable.Rows(1).Cells(1).Range.Text = <bold>myLbl1</bold> & vbCrLf & _ 
    <italic>myTxt1</italic> 
oTable.Rows(2).Cells(1).Range.Text = <bold>myLbl2</bold> & vbCrLf & _ 
    <italic>myTxt2</italic> 
oTable.Rows(3).Cells(1).Range.Text = <bold>myLbl3</bold> & vbCrLf & _ 
    <italic>myTxt3</italic> 
Set oTable = Nothing 

例えば、フォーマットされた文字列を返すWordのVBAで関数を定義する方法はあります

Private function setBold(txt as string) as String 
    setBold = <Word-Code-to-Format-the-Provided-String-as-Bold> & txt 
End function 

部分文字列を個別にフォーマットすることを目標にするには、どのような方法が推奨されますか。

myLbl3 &のvbCrLf & myTxt3

答えて

0

あなたは何も機能やHTMLのような定義されたソリューションを適用することはできません。

Document > Table > Cell > Range > Paragraph > Range > Font

をし、あなたの隣には、必要なプロパティを使用する必要があります:あなたは、あなたの状況では、これに似ているオブジェクト階層を使用して文書構造に依存する必要があります。あなたの状況では

それはこのようなもの(単一セルのためのコード)が考えられます。

Dim CellRange As Range 
Set CellRange = ActiveDocument.Tables(1).Rows(1).Cells(1).Range 
CellRange.Paragraphs(1).Range.Font.Bold = True 
CellRange.Paragraphs(2).Range.Font.Italic = True 
+0

ありがとう!しかし、これは私の問題を解決しません。 私は単語がHTML形式の書式設定をサポートしていないことを理解していますが、私は本当に効率的に問題を解決する方法を知りました.... – luke

+0

しかし、なぜですか??何が問題なの? –

+0

私の問題は、私はいくつかの言葉だけを全細胞ではなく強調する必要があるということです。したがって、私は彼の意志を記号記号で示すようにしました。 – luke

関連する問題