![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
VB6とVBAのマクロのアクセス方法を教えてください。
用途は、
(1)VB6からVBAマクロを起動する。
(2)VBAマクロの途中経過をVB6のオブジェクトへ通知する。
VBAはPC外部接続機器をコントロールします。
VB6での実装サンプルが用意されていない為、VBAを使用しております。)
(3)VB6は通知結果を、拾って別ルーチンの処理を実行する。
(1)では、下記の様な方法にてマクロ実行を考えていたのですが、
マクロが終了するまで、次コードへ移らない為、
シェル関数の様な形でマクロをキックしたい。
xlApp.run ("VBA_TEST(" & Chr(&H22) & strarg & Chr(&H22) & " )")
(2)では、VBAとVB6と平行に実行したい為、フラグをやり取りするのに、
VB6のオブジェクトを使用したい。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
基本的に VBA でも VB6 でも平行稼動はできません。
そのように作られていません。一般に「マルチスレッド」と呼ばれる機能ですので、この単語を含めて WEB 検索
してみてください。
プロセスを別にすれば可能性が出てきますが、制御が難しくなるでしょう。
平行稼動でなければ、(1)は提示の Application.Run メソッドで、
(2)は VB 側で Excel オブジェクトが起こすイベントを取得するように
WithEvents で宣言するのが一般的です。
(1)の件は、
DOEVENTを使用して、別アプリケーションのスクリプトを実行させていたことがあったので、
VBAで同様の内容が可能かどうかと問い合わせを行っておりました。
実際の所、平行稼働でなくても、ApplicationRunメソッドで実行するマクロを細かく分割するする事で、
対応が可能になりそうなので、こちらで検討したいと存じます。
(2)の件は、
WithEventsは何度か使用した事がありますが、その様な意図で使用した事がありません。
調べて、対応可能か確認したいと存じます。
ご回答ありがとうございました。
No.1
- 回答日時:
的外れならごめんなさい。
聞き流してください。(1)の場合はVBAのファイル(ExcelやAccess)自体を開いて動作させている為、ファイルが開いている間はマクロに独占されます。
私がよく使う手はマクロにショートカットキーを割り当て、「Sendkeys」でキックさせる方法です。
(2)はわかりません。。。ごめんなさい。
DDE通信とかマクロ中にイベントを起こすとかとかですかね~。
回答ありがとうございます。
(2)はおっしゃる通りでありまして、
流用元のソフトは、VBと別アプリケーションを、
DDE通信にてやりとりしていたため、
VBAでも対応できるかと思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
TERA TERMを隠す方法
-
ExcelのVBA。public変数の値が...
-
【緊急】エクセルVBA(20...
-
一つのTeratermのマクロで複数...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
ダブルクリックで貼り付けた画...
-
特定文字のある行の前に空白行...
-
VBAのIF分で時間指定の条件式の...
-
マクロを使って結合セルに丸を...
-
コマンドボタンに二回目のマク...
-
VBA アドインについて お詳しい...
-
EXCELマクロでのThisisWor...
-
VB6 OLE内のEXCELマクロを実行...
-
Excelで特定の文字のところで自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelVBAでPDFを閉じるソース
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
TERA TERMを隠す方法
-
2つのマクロでチェックボックス...
-
マクロ実行時、ユーザーフォー...
-
【マクロ】1つのマクロの中に...
-
ピボットテーブルでの毎回可変...
-
特定文字のある行の前に空白行...
-
エクセルのマクロについて教え...
-
wordを起動した際に特定のペー...
おすすめ情報