tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルvbプログラムでエクセルボタン作成
記事No8758
投稿日: 2009/02/27(Fri) 12:09
投稿者ルーキー
vbプログラムから、エクセルを起動するプログラムを作成しています。
1.新規ブックを作成
2.新規ブックを作成
3.シート上にボタンを作成
4.ブックへマクロ(名前は、【VBAMacro】)を作成
まで、出来ました。

具体的な手法としては、
3.
'エクセルシートへボタンを追加
xlSheet.OLEObjects.Add("Forms.CommandButton.1", Left:=780, Top:=10, Height:=30, Width:=100)

4.
Dim oModule As VBIDE.VBComponent
Dim sCode As String
' Create a new VBA code module.
oModule = xlBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule)
sCode = "sub VBAMacro()" & vbCr & _
           "   MsgBox (ActiveSheet.ComboBox1.Text) " & vbCr & _
           "end sub"

' Add the VBA macro to the new code module.
oModule.CodeModule.AddFromString(sCode)

です。3.のボタンが押された時に、4.のマクロが実行できるように、3.のボタンに対するイベントプロシージャーをプログラムから作成する方法が出来ずに悩んでいます。

プログラムから作成したボタンに対するイベントプロシージャーの作成方法について、
ご教授願えませんか?よろしくお願いします。

[ツリー表示へ]
タイトルRe: vbプログラムでエクセルボタン作成
記事No8760
投稿日: 2009/02/27(Fri) 13:50
投稿者オショウ
> プログラムから作成したボタンに対するイベントプロシージャーの作成方法について、
> ご教授願えませんか?よろしくお願いします。

  http://support.microsoft.com/kb/303871/ja

  これを見る限りでは、マクロ部分を追加した後に、コマンドボタンの
  イベントを含めた機能を追加していますネ!

以上。参考までに

[ツリー表示へ]
タイトルRe^2: vbプログラムでエクセルボタン作成
記事No8761
投稿日: 2009/02/27(Fri) 14:55
投稿者ルーキー
オショウさま
回答ありがとうございました。
参照の方法は、私も確認していたのですが、
この方法ですと、エクセルファイルに対して、
コマンドバーが追加されてしまい、他のエクセルファイル起動時にも影響があり、
本方法を断念しました。

現在、検討しているような、エクセルシート上へ直接貼り付けるボタンにたいして、
コマンドプロシージャーを作成する方法を悩んでおります。

[ツリー表示へ]
タイトルRe^3: vbプログラムでエクセルボタン作成
記事No8763
投稿日: 2009/02/27(Fri) 19:02
投稿者オショウ
> 現在、検討しているような、エクセルシート上へ直接貼り付けるボタンにたいして、
> コマンドプロシージャーを作成する方法を悩んでおります。

  こちらは流用できませんか?

  http://support.microsoft.com/kb/219905/ja

※ 因みに私は、SpreadSheetGear2008使ってますので、Excelを
  直接起動してどうのこうの・・・しなくてできるもので・・・

  まとはずれな部分があり申し訳ないです。

以上。

[ツリー表示へ]
タイトルRe^3: vbプログラムでエクセルボタン作成
記事No8765
投稿日: 2009/02/27(Fri) 19:22
投稿者オショウ
> 参照の方法は、私も確認していたのですが、
> この方法ですと、エクセルファイルに対して、
> コマンドバーが追加されてしまい、他のエクセルファイル起動時にも影響があり、
> 本方法を断念しました。

  ちょっと聞いてみるんですが  
    oCommandBar.Visible = True
   ・・・
    oCommandBar.Visible = False
  として非表示にすることでもNGなんでしょうか?

以上。

[ツリー表示へ]
タイトルRe^3: vbプログラムでエクセルボタン作成
記事No8766
投稿日: 2009/02/27(Fri) 19:30
投稿者オショウ
以下のURLの中ほどの内容が今回欲しい機能では
ないでしょうか?

http://okwave.jp/qa4033874.html

ご確認下さい。

※ いくつも書き込んで申し訳ない〜
  既に見つけていたらすいません・・・

以上。

[ツリー表示へ]
タイトルRe^4: vbプログラムでエクセルボタン作成
記事No8769
投稿日: 2009/03/02(Mon) 10:12
投稿者ルーキー
オショウさま
たくさんの情報提供、大変ありがとうございました。
内容を確認させていただきます。
取り急ぎ、お礼まで。

[ツリー表示へ]
タイトルRe^4: vbプログラムでエクセルボタン作成
記事No8770
投稿日: 2009/03/02(Mon) 13:48
投稿者ルーキー
オショウさん
おかげさまで、プログラムから動的に、ボタンの貼り付けとクリックイベントの作成が
できるようになりました。
しかし、大変恐縮なのですが、別の問題点にぶつかっております。
VBプログラムから、以下のコードでボタンを貼り付け、ボタンのキャプションを変更して
いるのですが、

obj = xlSheet.OLEObjects.Add("Forms.CommandButton.1", Left:=780, Top:=10, Height:=30, Width:=100)
With obj
   .Object.Caption = "テスト"
End With
のあとで、VBプログラムを閉じると(me.close)、エクセル上のボタンのキャプションが、
なぜか「CommandButton1」に変化していて、ボタンをクリックしている間は、設定した
「テスト」という文字に変わります。

VBプログラムと閉じる前に、エクセルファイルを一旦保存した場合には、このような事は、
発生しませんでした。

なにか、良い方法はないでしょうか?大変申し訳ないのですが、
お力をお借りできませんでしょうか。

[ツリー表示へ]
タイトルRe^5: vbプログラムでエクセルボタン作成
記事No8772
投稿日: 2009/03/03(Tue) 13:53
投稿者オショウ
> なにか、良い方法はないでしょうか?大変申し訳ないのですが、
> お力をお借りできませんでしょうか。

  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1415225694?fr=rcmd_chie_detail

  この記事、参考になりませんか?

以上。

[ツリー表示へ]