- PR -

VB2005でwordのVBAを作動させたい。

投稿者投稿内容
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-22 16:12
Imports System.data
Imports System.Data.OleDb
'Imports Access = Microsoft.Office.Interop.Access
Imports Excel = Microsoft.Office.Interop.Excel
Imports Word = Microsoft.Office.Interop.Word
'Imports PowerPoint = Microsoft.Office.Interop.PowerPoint

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim oWord As Word.ApplicationClass
Dim path As String

'Start Word and open the document.
path = "c:\kenkou_VB1\MTKNWIN\MTKNWORD\make_d1.doc"
oWord = CreateObject("Word.Application")
oWord.Visible = True
oWord.Documents.Open(path)

'Run the macros.
oWord.Run("autoopen")
アクセスとPPは今は使わないのでWORDだけを考えて、上記のようにしましたら、マクロは走りましたが、最後の行が緑色に着色され、
「コントロールが表示されていない、利用できない、またはフォーカスを持てないため、そのコントロールにフォーカスを移すことはできません。」と帰ってきました。
テキストボックスを用意する必要があったのでしょうか?ボタンだけでやりましたが。
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-22 16:37
wordのVBAを、起動時にフォームが現れるようにしたautoopenを設定したためだとわかりました。普通のマクロに設定しなおすと、みごとにエラー無しに、マクロが実行されました。はじめて経験したので、すごく感激しました。(;^^)
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-08-22 16:40
さかもとです。

VBAが・・・とか書いていたら解決したそうなので・・・。
解決、おめでとうございます。
調べ方などが分かってくると徐々に先に進めるかと思いますので、
諦めずに一つずつ難問を解いていきましょう(自戒を含め)






[ メッセージ編集済み 編集者: さかもと 編集日時 2006-08-22 16:42 ]
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-22 17:02
あえてお尋ねします。autopenでwordのフォームを開かせます。以下
Sub autoopen()
UserForm1.Show
End Sub
これを実行するには、どうなのでしょうか?フォーカスうんぬんをエラーで言っていますが、良い方法がありませんでしょうか?いうなれば、「VB2005でWORD2003のフォームを実行させる方法」です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-22 17:25
引用:

kojiro_i619さんの書き込み (2006-08-22 17:02) より:

これを実行するには、どうなのでしょうか?


当方では、問題なく UserForm を表示することができました。

引用:

フォーカスうんぬんをエラーで言っていますが、良い方法がありませんでしょうか?


エラーの内容は、正しく書いて頂かないと回答はつきにくくなります。もう少し客観的に、ご自身の質問内容を見るようにすると良いと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-23 08:56
じゃんぬねっとさんのご指摘のように、WORDのVBA側に、問題がありました。
WORD_VBAの最後で、以下の記載をして、WORD文書を閉じたのに、
ActiveDocument.Close
Application.Quit
VB側で、更に記載をしているのが問題だったかと、
oWord.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord)
WORD_VBAを修正すると、フォームで実行できました。ただし、フォームをcloseしないと、VBに戻れず、そこが難点ですので、修正しようと思います。

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