- PR -

VSTO(Word)で表の中に文字と表を一緒にさせたい

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2006-05-26 11:14
msoです。


現在、VisualStudio2003とWord2003を使ってWordファイルを
自動作成するシステムを構築しております。
そんな中で、自分の不慣れなところからうまく処理を行えず
悩んでいるところがあり、ご助力していただきたく書き込みを
させていただきます。


現状、Wordに表を作成と表の中に表を単純に作成することは出来ました。

ただ、表のセルに文字と表を一緒に出力することが出来ません。
何かやり方があると思うのですが、教えていただけないでしょうか?
よろしくお願いします。


テストとして動かしているサンプルコード
コード:
        Dim ThisDocument As Word.Document
        Dim ThisApplication As Word.Application
        Dim strDocument As String = "てすと.dot"

        ThisApplication = New Word.Application
        ThisDocument = ThisApplication.Documents.Add(strDocument, False, 0)

        '表を作成する
        Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
        Dim objTable1 As Microsoft.Office.Interop.Word.Table = ThisDocument.Tables.Add(Range:=rng, NumRows:=100, NumColumns:=3)

        '高さを指定する
        ThisDocument.Tables(1).Rows(2).Height = 100

        '幅を指定する
        objTable1.Columns(1).SetWidth(50, Word.WdRulerStyle.wdAdjustNone)
        objTable1.Columns(2).SetWidth(200, Word.WdRulerStyle.wdAdjustNone)
        objTable1.Columns(3).SetWidth(50, Word.WdRulerStyle.wdAdjustNone)
        objTable1.Cell(1, 2).Range.Text = "あああああああ"
        objTable1.Cell(2, 2).Range.Text = " "

        '水平位置を変更する。
        objTable1.Cell(2, 2).VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter

        '位置を取得する
        Dim objRange As Microsoft.Office.Interop.Word.Range = objTable1.Cell(2, 2).Range

        Dim objTable2 As Microsoft.Office.Interop.Word.Table = ThisDocument.Tables.Add(objRange, 3, 3)
        objTable2.Cell(2, 2).Range.Text = "てすとー2"

        Dim strAaaa As String = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) & "\表の中の表.doc"
        ThisDocument.SaveAs(strAaaa)
        Dim proc As New Process
        proc.Start(strAaaa)






テストとして作成しているメソッド
コード:
    Private Sub hoge2(ByVal objRange As Word.Range)

        objRange.Text = "てすとでーた" & ControlChars.CrLf

        Dim objRange2 As Word.Range = objRange.Document.Range(objRange.Text.Length - 1, objRange.Text.Length)
        objRange2.Select()

        Dim objtable As Word.Table = _ThisDocument.Tables.Add(objRange, 3, 3)

    End Sub


1

スキルアップ/キャリアアップ(JOB@IT)