• ベストアンサー

VBからモジュールでなくワークシートに書かれたマクロをCALL

はじめまして。 VB初心者です。 VBからExcelVBAで記述したマクロを呼び出したいのですが、 標準モジュールであれば、「Call xlApp.Run」でいけるのですが、 標準モジュールでなくワークシートに書かれたマクロをCALLするにはどうしたらよいのでしょうか? ご教授ください。よろしくお願いします。

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

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.2

sheet1のtest1を動かすなら Call xlApp.Run "Sheet1.test1" p.s vbと言うとvb6かvb.net(2003,2005,2008でもかなり違う)なのか書いた方がいい

hogehogeZ
質問者

お礼

hotosysさん、回答ありがとうございます。 >vbと言うとvb6かvb.net(2003,2005,2008でもかなり違う)なのか書いた方がいい 情報不足ですみません。VB6です。 Call xlApp.Run("Sheet1.test1")でいけました。 解決です。ありがとうございました。

その他の回答 (1)

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

VBAの初心者が考える問題ではないと思う。 手作業で標準モジュールにコピペして考えるべきです。 標準モジュールにプログラムで、プログラムソースを作る方法も WEBで調べれば載っているが、そんなのはVBAの超上級の人のやること。 - 参考 VBAで動くソースをメモ帳で作成 source.txtで保存 VBE画面の挿入ー標準モジュールの画面で ファイル ファイルのインポート ファイルの種類ーすべてのファイル ファイル名ー*.txt source.txtを見つけてダブルクリック 新しいモジュールに、メモ帳で作ったソース・コードがコピーされる。

hogehogeZ
質問者

お礼

imogasiさん、ご回答ありがとうございます。 >手作業で標準モジュールにコピペして考えるべきです。 そうですか...。やはり標準モジュールにコピペしかないのですね。 手作業でソースをコピペで対応したいと思います。 ありがとうございました。

関連するQ&A

  • シートモジュールのマクロを標準モジュールに移したいのですが・・

    マクロを標準モジュールでなく、うっかりsheet2に作成しました。 作動は問題なかったのですが、sheet2を差し替える事になったので、 マクロを標準モジュールにコピーしたいのですが、標準モジュールではうまく作動しません。 なにが原因で解決するにはどうすれば良いのか全くわかりません。 マクロ初心者でネットを参考にしながら作成したので詳しい事は分かりませんが、よろしくお願いします。

  • EXCEL マクロで「標準モジュールで」とどのように行けばよいのですか

    よろしくお願いします。 あるマクロを シートモジュールでWorkbookのOpenイベントで あるいは標準モジュールで と書いてあったのですが 今まで ツール→マクロ→新しいマクロの記録しかやったことがないので 標準モジュールに行く方法が解りません。 超初心者ですので 解りやすく教えてください。

  • マクロは保存するがシートは保存しない

    エクセルで, 標準モジュールMudule1に書いたマクロを保存したいが, ワークシートは保存したくない場合, どうすればよいのでしょうか。 (Mudule1以外にコードは書いてないし, ワークシート以外のシートはないため,) 「マクロは保存するがシートは保存しない」 という意味で結構です。

  • モジュールシートの置換え等をExcelVBAでできるのでしょうか。

     ExcelVBAにより、「VBAの内容を変更する」ことができるということを聞いたことがあります。それは本当に可能なのでしょうか。  例えば、モジュールシートを含んだ「コピー元.xls」と「変更.xls」という2つのファイルがあるとして、変更.xlsのモジュールシートをコピー元.xlsのモジュールシートに置き換えることなどできるのでしょうか。それは、置き換え前のモジュールシートが含まれる変更.xlsにVBAを記述してもできるのでしょうか。  もしできるのであれば、VBAの書き方をお教えいただけないでしょうか。よろしくお願い致します。

  • VBからマクロの実行について

    下記のようにVBよりエクセルマクロの実行を行っています。 マクロに引数を持たしたいのですが、以下のように記述すると 記述エラーが発生します。 引数をもっているマクロはVBから呼び出すことはできないのでしょうか? よろしくお願いいたします。 引数を持たせない場合はエラーが起こらない objExcl.Run ("Macro1.xls" & "!" & "Macro1") マクロ側に引数を持たして、以下のように記述するとエラーになる objExcl.Run ("Macro1.xls" & "!" & "Macro1(引数)")

  • VBAの「標準モジュール」がVBの「Form1.Vb」にあたるのでしょうか?

    VBAの「標準モジュール」がVBの「Form1.Vb」にあたるのでしょうか? (初心者ですいません)

  • VB6 OLE内のEXCELマクロを実行するには

    お願いします。VB6です。 (1)フォーム上に、OLEオブジェクトを配置してEXCELシートを埋め込みました。 OLE1.CreateEmbed vbNullString, "Excel.Sheet" (2)そのEXCELの標準モジュールに Sub TestMacro() Cells(1, 1) = "ABC" End Sub というマクロを記述しています (3)下記の様にそのマクロを実行させようとすると ★「実行時エラー'1004' cellsメソッドは失敗しました。'_Global'オブジェクト」 というエラーが出てしまいます。★ Private Sub Command1_Click() Dim wb As Workbook Set wb = OLE1.object wb.Application.Run "TestMacro" End Sub ★このエラーの回避方法をご教授ください なお ・エクセルのマクロを変える事はできません ・OLE右クリックでExcelを開いた状態なら正常実行されるので VBでOLEのExcelを開く方法がわかればそれでもOKです。

  • VB2008を使用していますが教えて下さい。

    VB2008を使用していますが教えて下さい。 VBからExcelブックを開く時に「マクロを有効にする」を選択する画面を表示させずに直接ユーザフォームを表示させて、ExcelVBAを利用したいのですが、どうしても上手く出来ません。いろいろネットで調べて試行しているのですが、どれもエラーになってしまいます。 現在下記の(1)(2)をExcelVBAの内容により使い分けをしています。助言方よろしくお願いします。 (1) この記述では「マクロを有効にする」は表示されず直接ユーザフォームが表示されます。ただ、VBA上で新たなExcel形式のファイルを出力させても画面上に表示されません。 ※Visible=True の記述で解消しそうですが分かりません。 Dim xlApp As Object = CreateObject("Excel.Application") Dim xlBooks As Object = xlApp.workbooks Dim xlBook As Object = xlBooks.Open(FileName:="c:test.xls") xlApp = Nothing xlBooks = Nothing xlBook = Nothing (2) この記述では「マクロを有効にする」を選択する画面が表示されてしまいます。ただ、ExcelVBA上で新たなExcel形式のファイルを出力できます。 Dim proc As New Process() proc.StartInfo.FileName = "c:test.xls" proc.Start() proc = Nothing

  • VBのフォームモジュールと標準モジュールの使い分け

    VBのフォームモジュールと標準モジュールの使い分けが今一つわかっていません。 フォームモジュールとは、フォーム(画面)上で起こったイベント(例えば、ボタンをクリックした時とか、ユーザーが行を選択したりだとか)の処理を、記述するところと解釈しています。 標準モジュールは、フォームが2つ以上あって、その2つが共通する処理(関数)などを、記述したり、フォームが1つでも、同じ処理を繰り返す場合、その処理を標準モジュールに書いたり・・・・という解釈をしています。 あってますでしょうか? フォームが一つしかない場合、もしくは2つあっても、あまり共通する処理がない場合、なんかは標準モジュールはあまり使わないのでしょうか? それとも、フォームが1つとかでも、今後のメンテの事など考慮して、標準モジュールを作ってそこにグローバル変数なんかで処理を書いた方がよいのでしょうか? どなたか、教えてくださいませんか? いろいろBBSなどで見てみるんですが、いろいろ書いてあって、どれが理想か わかりません。よろしくお願いいたします。

  • Vb.Netでにおいての「標準モジュール」とは「Form1.vb」のことでしょうか?

    Vb.Netでにおいての「標準モジュール」とは「Form1.vb」のことでしょうか? VBA→VBを勉強している最中の者です。 ご教授よろしくお願い致します。

専門家に質問してみよう