none
VisualBasic2008でWord2003を制御する方法について RRS feed

  • 質問

  • 現在、VisualBasic2008を勉強中の初心者です。Word2003ドキュメント内の表を解除するプログラムを作成しています。

    以下コードの「oDoc.Selection.Rows.ConvertToText(Separator:=???)」箇所の「???」で段落記号で区切って解除(wdSeparateByParagraphs)を指定したいのですが、VisualBasic2008上でどのように指定すればよいのかわかりません。
    ご存知の方、ご指導いただけないでしょうか。なにぶん初心者なものでよろしくお願いします。

    また、メモリ開放についてMarshal.ReleaseComObjectを使ってみましたが、以下のような使い方のよろしいでしょうか。
    何卒よろしくお願いします。

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim wdDoc As Microsoft.Office.Interop.Word.Document
    Dim oDoc As Microsoft.Office.Interop.Word.Application
    Dim tbl As Microsoft.Office.Interop.Word.Table

    'Word起動
    oDoc = New Microsoft.Office.Interop.Word.Application()
    '画面表示
    oDoc.Visible = True
    'ファイルオープン
    wdDoc = oDoc.Documents.Open("c:\tmp\0270.doc")

    For Each tbl In wdDoc.Tables
    tbl.Select()
    'oDoc.Selection.Rows.ConvertToText(Separator:=???)
    Next
    wdDoc.Close()
    oDoc.Quit()
    System.Runtime.InteropServices.Marshal.ReleaseComObject(wdDoc)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(oDoc)
    wdDoc = Nothing
    oDoc = Nothing
    End Sub
    End Class
    2010年1月27日 14:17

回答

すべての返信

  • oDoc.Selection.Rows.ConvertToText(Separator:=Microsoft.Office.Interop.Word.WdTableFieldSeparator.wdSeparateByParagraphs)

    ConvertToText の説明に WdTableFieldSeparator列挙型 を使うと書かれていますね。
    わからない引数があったらMSDNで命令を検索すると見つけやすいでしょう。

    ReleaseComObjectの使い方は合ってます。
    • 回答としてマーク 菊地俊介 2010年2月17日 6:51
    2010年1月27日 15:50
  • 大変勉強になりました。おかげさまで解決できました。
    ありがとうございます。

    2010年1月28日 10:39
  • 皆様、こんにちは。

    gekkaさん、回答ありがとうございます。
    mako0711 さん、はじめまして。フォーラムのご利用ありがとうございます。

    gekkaさんのアドバイスで問題が解決したようなので、回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    2010年2月17日 6:54