• ベストアンサー

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

  • VB で、テキストボックスをコピーする方法 {至急お願いいたします}

    VB で、テキストボックスをコピーする方法 {至急お願いいたします} 今、VisualBasic(以下、VB) で、ソフトを作っていますが、テキストボックスの中身をクリップボードにコピーしたいです コピーしたいのは、 textbox9です。 clip.SetDataObject(TextBox1.Text) でやってみるとエラーを起こしてしまいます・・・ どうすると、テキストボックスの中身をコピーできるでしょうか? 尚、現在、VBの2008無料版と2010の無料版でやっています メインは、2010ですので・・・

  • VBAからVB.Netで作成したフォームの起動

    Wordマクロで下記のような動作をすることができますでしょうか? (1) WordマクロからVB.Netのフォームを起動 (2) (1)で起動されたフォーム上のOKボタンをクリックすると、フォームに入力されたデータを   WordVBA側が受け取り、処理を行う。 よろしくお願いします。

  • VB.NETでクリップボードの内容の転送

    VB.NETにて下記のプログラムを作成したいのですがどのようにすればよいのでしょうか? (1).市販のソフトの、入力項目(テキストボックス)にフォーカスを置く (2).VB.NETのプログラムで、入力項目に入れる内容をクリップボードに保存し、ボタンを押すと   (1)の入力項目(テキストボックス)に値が貼り付く パスワードを管理するフリーソフトで上記機能を実現しているので技術的には可能のようで、 いろいろ調べましたが解りませんでした。 (自分で作成したDelphiやPowerBuilderのプログラムでも出来ました) 以上、よろしくお願いします。

  • 【Excel VBA】ユーザーフォーム

    Excel2003を使用しています。 内容的には前回の(質問No.3376017)続きなのですが… あるシートに対して、印刷範囲指定のマクロを作りました。 印刷不要ページを指定して、それ以外のページを印刷するというもので、印刷開始ページ、終了ページ、不要ページをユーザーフォームを作ってテキストボックスに入力するようにしました。 そのテキストボックスの下に、『設定』と『キャンセル』のボタンを作っていますが、『キャンセル』を選択した場合は、このマクロを実行しないで終了させたいのですが、可能ですか? 『設定』と『キャンセル』の処理は、イベントプロシージャ(クリック)に記述していますが、『キャンセル』ボタンをクリックしたときにマクロを実行しないで終了するには、どのように記述すればいいでしょうか?[Exit]を使うのかな?と思って書いてみましたが、エラーが出てしまいました(^_^;) よろしくお願いします。

  • ワードのテンプレートでマクロを組みましたが、動作しません

    ワードの文書テンプレートにマクロを組みました。 ところが、いざテンプレートから文書を起こしても、肝心のマクロが実行されません。 どうしてマクロが実行されないのか、アドバイスいただけないでしょうか。 ちなみに、ワードは2000、OSはXPと2000と両方試しました。 また、マクロの内容は、文書中に配置されたフォームフィールドのテキストを、ボタンを押すとクリップボードにコピーするという、素朴なものです。 よろしくお願いいたします。

  • vb6でwordを開きファイルの種類をwebページで保存したいです。

    vb6でwordを開きファイルの種類をwebページで保存したいです。 開くとこまではできているのですが、どのように保存ファイルの種類をwebページするのかわかりません。できないものなのでしょうか? 詳しく説明すると、単に画像などが挿入されているWordファイルを開き、別名保存からファイルの種類を"webページ"を選び保存(htmlファイルとfilesフォルダを作成)、とすることをvb6のexeアイコンにドロップすると自動で処理してくれるものを作ろうとしています。

  • vb2005のWebbrowserについて

    vb2005のWebbrowserコントロールで表示さているhtmlの中に 「web_text」というテキストフィールドがある場合、 WebBrowser1.Document.All.GetElementsByName("web_text")(0).InnerText = "あああ" というコードを実行すると、テキストフィールドに「あああ」という文字が入りますが、 似たようなカンジで、チェックボックスのチェックを選択したり、 コンボボックスから値を選択したり、ラジオボタンを選択したりする 方法がわかりません。 どなたかご教授願いたく思っております。

  • LibreOffice_Calcマクロの使い方

    旧いWin10PCを再生するためLinuxOSに入れ替えました。LibreOffice_Calcの関数はExcel代替ソフトとして十分活用できます。マクロはExcelのVBAマクロのように使いこなすまでには到っていませんがマクロの自動記録機能もあり、有効に使っています。 Windowsでは、Selenium WebDriverとVBAマクロを使い、Web上の株価データを自動で取り込み、思いのままに活用していますが、LibreOfficeではWeb上のデータを自動で取り込むことは難しく、手動(Control+A,Control+C)でクリップボードにコピー、ペーストしてテキストで取り込み、その後、マクロ処理しています。 この過程で、テキストのインポートのダイアログボックスが表示され、OKボタンを押すことになるのですが、次の処理には進まず、そこで終了。次のステップを手動でマクロ処理ボタンを押し継続実行しています。 LibreOffice_calcマクロの自動記録の限界と思われますが、他に何かいい方法はないでしょうか?

  • EXCELのVBAについて

    エクセルのVBAでユーザーフォームに作ったテキストボックスに入力した値を、コマンドボタンによる「実行」とともに別に作った標準モジュールの変数として代入するにはどうすれば良いでしょうか? 具体的な流れは、 マクロ実行  ↓ ユーザーフォーム出現  ↓ テキストボックスに数字を代入→「実行」  ↓ 変数を代入された標準モジュールによる処理完了 というものです。 ご教授お待ちしております。

  • VB2005について教えてください

    フォームを3つ作成し、実行時に最初に表示されるフォーム1にボタンを1つ配置し、そのボタンをクリックするとRadioButtonが一つとボタンが一つあるフォーム2が開きます。そして、フォーム2のボタンをクリックするとテキストボックスが一つとボタンが一つあるフォーム3が開きます。そこで、フォーム3のテキストボックスの中身をフォーム2のRadioButton.Textに表示させたいのですができません。フォーム1にRadioButtonを配置してRadioButton.Textに表示は出来るのですがフォーム2には表示させることが出来ません。どのようにすればできるのか教えてください。よろしくお願い致します。