現在オフラインです。再接続するためにインターネットの接続を待っています

Visual Basic .NET からオートメーションを使用して、Word で新しい文書を作成する方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

Microsoft Visual C# .NET については、次の資料を参照してください。316384
Microsoft Visual Basic 6.0 については、次の資料を参照してください。313193
概要
この資料では、Visual Basic .NET からオートメーションを使用して、Word で新しい文書を作成する方法について手順を追って説明します。

先頭に戻る

サンプル コード

この資料のサンプル コードでは、以下の操作を行う方法を示します。
  • 文字列および書式を指定して段落を挿入する。
  • 文書内のさまざまな範囲を参照し、修正する。
  • 表を挿入し、書式を設定し、表にデータを取り込む。
  • グラフを追加する。
Visual Basic .NET からオートメーションを使用して、Word で新しい文書を作成するには、以下の手順を実行します。
  1. Microsoft Visual Studio .NET を起動します。[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。[プロジェクトの種類] の [Visual Basic プロジェクト] をクリックし、[Windows アプリケーション] をクリックします。デフォルトで Form1 が作成されます。
  2. Microsoft Word のオブジェクト ライブラリへの参照を追加します。これを行うには、以下の手順を実行します。
    1. [プロジェクト] メニューの [参照の追加] をクリックします。
    2. [COM] タブで Microsoft Word のオブジェクト ライブラリをクリックし、[選択] をクリックします。

      : Microsoft Office 2003 には、プライマリ相互運用機能アセンブリ (PIA) が含まれています。Microsoft Office XP には PIA は含まれていませんが、ダウンロードできます。Office XP の PIA の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
      328912 Microsoft Office XP 用の PIA (Primary Interop Assemblies) のダウンロード
    3. [参照の追加] ダイアログ ボックスで [OK] をクリックして、選択を確定します。選択したライブラリのラッパーを生成するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。
  3. [表示] メニューの [ツールボックス] をクリックしてツールボックスを表示し、Form1 にボタンを追加します。
  4. [Button1] をダブルクリックします。フォームのコード ウィンドウが表示されます。
  5. コード ウィンドウに、次のコードが表示されます。
        Private Sub Button1_Click(ByVal sender As System.Object, _      ByVal e As System.EventArgs) Handles Button1.Click    End Sub
    これを次のコードで置き換えます。
        Private Sub Button1_Click(ByVal sender As System.Object, _      ByVal e As System.EventArgs) Handles Button1.Click        Dim oWord As Word.Application        Dim oDoc As Word.Document        Dim oTable As Word.Table        Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph        Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph        Dim oRng As Word.Range        Dim oShape As Word.InlineShape        Dim oChart As Object        Dim Pos As Double        'Start Word and open the document template.        oWord = CreateObject("Word.Application")        oWord.Visible = True        oDoc = oWord.Documents.Add        'Insert a paragraph at the beginning of the document.        oPara1 = oDoc.Content.Paragraphs.Add        oPara1.Range.Text = "Heading 1"        oPara1.Range.Font.Bold = True        oPara1.Format.SpaceAfter = 24    '24 pt spacing after paragraph.        oPara1.Range.InsertParagraphAfter()        'Insert a paragraph at the end of the document.        '** \endofdoc is a predefined bookmark.        oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)        oPara2.Range.Text = "Heading 2"        oPara2.Format.SpaceAfter = 6        oPara2.Range.InsertParagraphAfter()        'Insert another paragraph.        oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)        oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"        oPara3.Range.Font.Bold = False        oPara3.Format.SpaceAfter = 24        oPara3.Range.InsertParagraphAfter()        'Insert a 3 x 5 table, fill it with data, and make the first row        'bold and italic.        Dim r As Integer, c As Integer        oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 3, 5)        oTable.Range.ParagraphFormat.SpaceAfter = 6        For r = 1 To 3            For c = 1 To 5                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c            Next        Next        oTable.Rows.Item(1).Range.Font.Bold = True        oTable.Rows.Item(1).Range.Font.Italic = True        'Add some text after the table.        'oTable.Range.InsertParagraphAfter()        oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)        oPara4.Range.InsertParagraphBefore()        oPara4.Range.Text = "And here's another table:"        oPara4.Format.SpaceAfter = 24        oPara4.Range.InsertParagraphAfter()        'Insert a 5 x 2 table, fill it with data, and change the column widths.        oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 5, 2)        oTable.Range.ParagraphFormat.SpaceAfter = 6        For r = 1 To 5            For c = 1 To 2                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c            Next        Next        oTable.Columns.Item(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2        oTable.Columns.Item(2).Width = oWord.InchesToPoints(3)        'Keep inserting text. When you get to 7 inches from top of the        'document, insert a hard page break.        Pos = oWord.InchesToPoints(7)        oDoc.Bookmarks.Item("\endofdoc").Range.InsertParagraphAfter()        Do            oRng = oDoc.Bookmarks.Item("\endofdoc").Range            oRng.ParagraphFormat.SpaceAfter = 6            oRng.InsertAfter("A line of text")            oRng.InsertParagraphAfter()        Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)        oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)        oRng.InsertBreak(Word.WdBreakType.wdPageBreak)        oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)        oRng.InsertAfter("We're now on page 2. Here's my chart:")        oRng.InsertParagraphAfter()        'Insert a chart and change the chart.        oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _            ClassType:="MSGraph.Chart.8", FileName _            :="", LinkToFile:=False, DisplayAsIcon:=False)        oChart = oShape.OLEFormat.Object        oChart.charttype = 4 'xlLine = 4        oChart.Application.Update()        oChart.Application.Quit()        'If desired, you can proceed from here using the Microsoft Graph         'Object model on the oChart object to make additional changes to the        'chart.        oShape.Width = oWord.InchesToPoints(6.25)        oShape.Height = oWord.InchesToPoints(3.57)        'Add text after the chart.        oRng = oDoc.Bookmarks.Item("\endofdoc").Range        oRng.InsertParagraphAfter()        oRng.InsertAfter("THE END.")        'All done. Close this form.        Me.Close()    End Sub
  6. Form1.vb ファイルの先頭に次のコードを追加します。
    Imports Word = Microsoft.Office.Interop.Word
  7. F5 キーを押してプログラムをビルドし、実行します。
コードの実行後、作成された文書を確認します。文書は 2 ページで、書式が設定された段落、表、およびグラフが含まれています。

先頭に戻る

テンプレートを使用する

オートメーションを使用して、書式がすべて共通する文書を構築する場合、あらかじめ書式が設定されたテンプレートに基づいた新しい文書を使用して処理を開始すると便利です。Word オートメーション クライアントでテンプレートを使用すると、ゼロから文書を構築する場合と比較して、次の 2 つの大きな利点があります。
  • 文書全体のオブジェクトに対して、書式設定および配置をより詳細に調節できます。
  • より少ないコードで文書を構築できます。
テンプレートを使用すると、文書内の表、段落およびその他のオブジェクトの配置を微調整することや、オブジェクトに書式設定を含めることができます。オートメーションを使用して、テンプレートに基づいた新しい文書を作成できます。次のようなコードを使用します。
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
テンプレートでブックマークを定義して、オートメーション クライアントで文書内の特定の場所にさまざまなテキストを入力することができます。次に例を示します。
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
テンプレートを使用するもう 1 つの利点は、次に示すように、実行時に適用する書式スタイルの作成と保存ができることです。
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
または
oWord.Selection.Style = "MyStyle"
先頭に戻る
関連情報
Visual Basic .NET を使用した Microsoft Word のオートメーションの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
301656 Visual Basic .NET から Microsoft Word の差し込み印刷をオートメーションで実行する方法
詳細については、以下の MSDN (Microsoft Developer Network) Web サイトを参照してください。先頭に戻る
WD2003
プロパティ

文書番号:316383 - 最終更新日: 04/23/2007 02:59:32 - リビジョン: 9.3

Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Office Word 2003, Microsoft Word 2002

  • kbautomation kbhowtomaster KB316383
フィードバック