• ベストアンサー

VBからVBAを起動させる

VBでボタンを押すとワードのマクロが実行されるようにしたいのですが・・・。 処理手順 1.テキストボックスの中身をワードへ(クリップボードを利用) 2.それをwebページとして保存 1は解決することができました。 2がどうしてもできません。 webページとして保存するマクロを保存。 それのマクロをVB6.0で実行させたいのですが、どうすればいいのでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

hiromu0103
質問者

お礼

>VB6なら、Wordのマクロを起動せずに、最初から、Wordで作ってしまえばWordマクロは必要ないのではありませんか たしかに・・。そうですね。気付きませんでした。 詳しくコードまで乗せていただきありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

該当マクロが、Module1 で proc と言う名前だとして エクセルのオブジェクトが excel だとすると excel.Application.Run("Module1.proc") で実行できると思います

hiromu0103
質問者

お礼

そういう方法があるんですね。 ありがとうございます。

関連するQ&A