tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルExcelのマクロボタンからVB側のルーチンを起動する
記事No14579
投稿日: 2010/03/31(Wed) 12:22
投稿者ふら
よろしくお願いします。

@VB6からExcelの既存のファイルを起動します。
A既存のExcelファイルには、既に未定義のマクロボタンが在ります。

ここで質問です。

Excel側のマクロボタンからVB6側のサブルーチンを起動させることは可能なのでしょうか?

[ツリー表示へ]
タイトルRe: ExcelのマクロボタンからVB側のルーチンを起動する
記事No14580
投稿日: 2010/03/31(Wed) 13:20
投稿者魔界の仮面弁士
> Excel側のマクロボタンからVB6側のサブルーチンを起動させることは可能なのでしょうか?

いろいろな実装方法があると思いますが、たとえば、こういう方法は如何でしょう。

(案1) VBA からは、Excel.Application の DDE 系メソッドを通じて、
 VB6 の Label や TextBox 等にテキストを渡すようにする。
 VB6 側では、それらを TextBox の Change イベント等で受け取ってから、
 送信されてきた内容に応じて、目的のプロシージャを呼び出すようにする。

(案2) VB6 側で、Worksheet オブジェクトを WithEvents 変数で受けておく。
 VBA 側からは、シート上の特定のセルの値を変更することで、VB6 側の
 WithEvents 変数経由で Change イベントが呼ばれるので、引数 Target の
 内容を見て、目的のプロシージャを呼び出すようにする。

[ツリー表示へ]
タイトルRe^2: ExcelのマクロボタンからVB側のルーチンを起動する
記事No14581
投稿日: 2010/03/31(Wed) 14:08
投稿者ふら
早速のお返事、ありがとう御座います。

つまり、例えば、
ActiveSheet.DrawingObjects("ボタン 1").OnAction = "サブルーチン名"

みたいな感じの単純なものではないと言う事ですか・・・
工夫が必要だということがわかっただけでも助かりました。
いろいろやってみます。

ありがとう御座いました。

[ツリー表示へ]