• ベストアンサー

VBで入力された値をワード文書に表示(OLEオートメーション)

VBより名前と年齢を入力し、登録ボタンを押すと ワードにデータが登録されるようにしたいのですが、 実行時エラーが表示されます。 Dim x As Object Private Sub Command1_Click() x.Insert.Into Text1.Text & ":" & Text2.Text & Chr(10) ---(1) End Sub Private Sub Form_Load() Set x = CreateObject("Word.Basic") End Sub Private Sub Form_Unload(Cancel As Integer) Set x = Nothing End Sub (1)で 実行時エラー'509'「Insert,文書ウィンドウが選択されていないためコマンドは使用できません」 が表示されます。 考えられる原因はなにか教えてください! VB6.0/WindowsXP SP2/Office 2000 です

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

参照設定をします。 プロジェクト―参照設定-MicrosoftWord9.Object0Libraly 下記コードで上手く行くようです。 Dim x As Object Private Sub Command1_Click() x.Visible = True x.documents.Add activedocument.content.Insertafter Text1.Text & ":" & Text2.Text & Chr(10) End Sub Private Sub Form_Load() Set x = CreateObject("Word.application") End Sub Private Sub Form_Unload(Cancel As Integer) Set x = Nothing End Sub

-cinq-
質問者

お礼

実行できました!! ありがとうございます。 上記の記述だとボタンをクリックするごとにシートが追加されてしまったので、テキストに転記する所を参考にさせてもらいました。本当にありがとうございました。

その他の回答 (2)

回答No.2

以下でどうでしょうか?エラーになるのは、ワードのファイルをオープンしていないためだと思います。 それと、オブジェクトはWord.applicationではないでしょうか?(Word.Basicというはよく分からないのですが。。) ----------------------------------------------- Dim x As Object Private Sub Command1_Click() x.Documents.Open FileName:="c:\temp.doc" x.Selection.TypeText Text:=Me.Text1.Text & ":" & Me.Text2.Text & Chr(10) End Sub Private Sub Form_Load() Set x = CreateObject("Word.application") End Sub Private Sub Form_Unload(Cancel As Integer) Set x = Nothing End Sub

-cinq-
質問者

お礼

回答ありがとうございました。 私も"Word.Basic"は疑問でした(参考書がそうなっていたので・・・)ので解決できて良かったです。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

VBは扱ったことが無いのでヒントというか推測ですが、、、 x が WordApplication なら、新しいドキュメントを作るなり、既存のドキュメントを取得するなりしないとダメじゃないですか? 例えば、 Dim x As Object Dim myDoc As Document    ・    ・ Set x = CreateObject("Word.Basic") Set myDoc = x.Documents.Add myDoc.Insert.Into Text1.Text みたいな感じで。

-cinq-
質問者

お礼

回答ありがとうございました。