- ベストアンサー
VBからVBAを起動させる
VBでボタンを押すとワードのマクロが実行されるようにしたいのですが・・・。 処理手順 1.テキストボックスの中身をワードへ(クリップボードを利用) 2.それをwebページとして保存 1は解決することができました。 2がどうしてもできません。 webページとして保存するマクロを保存。 それのマクロをVB6.0で実行させたいのですが、どうすればいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 ご質問で、Wordのマクロが出ていないし、Webページとして保存する意味が、私には正しく理解できていないので、なんともいえませんが、VB6なら、Wordのマクロを起動せずに、最初から、Wordで作ってしまえばWordマクロは必要ないのではありませんか。 それが、Command1 です。Command2 は、Wordマクロを起動させるコードです。 Private Sub Command1_Click() Dim wdNewDoc As Object Const WD_FILENAME As String = "Sample.html" If Me.Text1.Text = "" Then Exit Sub With CreateObject("Word.Application") Set wdNewDoc = .Documents.Add .Selection.InsertBefore Text:=Me.Text1.Text wdNewDoc.SaveAs WD_FILENAME, 8 'HTML wdNewDoc.Close .Quit End With End Sub 以下は、マクロは、起動するけれども、Wordのマクロを外部から起動させるのは初めてなので、良いのか悪いのか分りません。Excelとは仕様が違うような気がしました。ドキュメントをオープンしないと、マクロが立ち上がらないのは、何かヘンだなって思います。なお、Module1 にあるTEST1 というがマクロ名です。 Private Sub Command2_Click() Const WD_FILENAME As String = "C:\TestMacro.Doc" If Me.Text1.Text = "" Then Exit Sub On Error GoTo errHandler With CreateObject("Word.Application") .Documents.Open WD_FILENAME 'ここでマクロ処理 .Application.Run "Module1.TEST1" .Documents(WD_FILENAME).Close False errHandler: .Quit End With End Sub
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
該当マクロが、Module1 で proc と言う名前だとして エクセルのオブジェクトが excel だとすると excel.Application.Run("Module1.proc") で実行できると思います
お礼
そういう方法があるんですね。 ありがとうございます。
お礼
>VB6なら、Wordのマクロを起動せずに、最初から、Wordで作ってしまえばWordマクロは必要ないのではありませんか たしかに・・。そうですね。気付きませんでした。 詳しくコードまで乗せていただきありがとうございました。