dポイントプレゼントキャンペーン実施中!

 VB.NETからEXCELを起動し、シートにCommandButtonを作成しました。
 このCommandButtonのコードをどこに記述すればいい
のかわかりません。
 初歩的な質問で申し訳ありませんが、どなた様か、よろしくご教授下さい。

A 回答 (5件)

Withブロックの後に


「CommandButton1 = CType(ExlSheet.CommandButton1,MSForms.CommandButton)」
を挿入してもだめでしょうか?
    • good
    • 0
この回答へのお礼

takkunnet様
ありがとう御座いました。
御指導のとおりCommandButton1 = CType(ExlSheet.CommandButton1,MSForms.CommandButton)を挿入しましたら出来ました。
ここ一週間なやみに悩んでいたことがついに出来ました。いろいろなサイトなどで調べましたが、調べ方がまずいのかついに解りませんでした。
やっと解決です。感謝にたえません。謝謝!!!!

お礼日時:2005/12/19 17:11

CommandButton作成までのソースを教えてもらえませんか?

この回答への補足

たびたび申し訳ありません。

Form1上のButton1でExcelを新規作成(MyFile)し、データを書き込みました。
Button5では、単にButton1で作成したExcelを呼び出すだけのものです。このときシートに動的CommandButtonを貼り付け、これをクリックすることにより、Excelを終了させようというものを作成したいのです。

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
ExlBooks = CType(ExlApp.Workbooks, Excel.Workbooks)
ExlBook = CType(ExlBooks.Open(MyFile), Excel.Workbook)
ExlSheets = CType(ExlBook.Worksheets, Excel.Sheets)
ExlSheet = CType(ExlSheets.Item(1), Excel.Worksheet)

ExlSheet.OLEObjects.Add("Forms.CommandButton.1", Left:=780, Top:=10, Height:=30, Width:=65)
With ExlSheet.CommandButton1
.Caption = "×閉じる"
.ForeColor = QBColor(12)
.BackColor = QBColor(14)
.Font.Size = 14
.Font.Bold = True
End With

ExlApp.Visible = True
End Sub

同じホーム上に以下のとおり記述しました。
Private Sub CommandButton1_Click() Handles CommandButton1.Click
ExlApp.Quit()
End Sub

Excelの開放などは別のForm1上のButtonに記述しています。

わかりぬくい説明で申し訳ありませんが、要するに既存のExcelを呼び出し、そのときCommandButtonを貼り付けそれをクリックすることにより、Excelを終了するとゆうものを作りたいのです。

よろしくお願いいたします。

補足日時:2005/12/19 16:14
    • good
    • 0

波線の警告文は何でしょうか?



また、
Private Sub CommandButton1_Click() Handles CommandButton1.Click
ではだめですか?

この回答への補足

takkunnet様
お忙しい中たびたびのご回答まことにありがとうございます。

波線の警告文は次のとおりです。
「メソッド'CommandButton_Click'でイベント'Click'を処理できません。指定されているシグニチャが異なります。」

なお、御指導のとおり
Private Sub CommandButton1_Click() Handles CommandButton1.Click
    ExlApp.Quit()
End Sub
(とりあえずExcelを終了さすCommandButtonとした。Excelの開放は省略)
波線は消えましたがコマンドボタンをクリックしても状態の変化がありません。

お忙しい中まことに申し訳ありませんがよろしくお願いいたします。

補足日時:2005/12/19 13:59
    • good
    • 0

WithEventsを付加した変数はFormにかかれましたか?


そうすると通常の「From上のコントロール」と同様の方法でイベントが取れると思うのですが。。。

この回答への補足

takkunnet様
ご回答ありがとう御座います。

Form1に以下の変数を宣言しました。
Dim WithEvents CommandButton1 As MSForms.CommandButton

そして以下のプロシージャを書きました。

Private Sub CommandButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommandButton1.Click

しかし、最後のCommandButton1.Clickに波線が入り、先に進めません。

どうかよろしく御指導お願いいたします。

補足日時:2005/12/19 11:25
    • good
    • 0

動的にCommandButtonを作成してそのボタンのイベントをとりたい場合には、「WithEvents」でコマンドボタンの変数を定義してやる必要があります。



<例>
Private WithEvents cmdTest As MSForms.CommandButton

また、この場合 Microsoft Forms 2.0 への参照設定が必要です。

ただ、その他たくさんの機能があるようでしたら事前に機能を持ったExcelを作成しておくことをお勧めします。
そうすれば、デバッグも簡単ですし、動作も比較的速いですし、開発も分散化が可能なので効率的になるためです。

この回答への補足

takkunnet様

先のご回答ありがとう御座います。
御指導のとおり、「WithEvents」でコマンドボタンの変数を定義し、Microsoft Forms 2.0 への参照設定を行いました。
しかし、ボタンのイベントを取る方法が解りません。どこにコードを書くのかが解りません。

よろしく御指導のほどお願いいたします。
開発環境は、VB.NET2003、Excel2003、OS WinXPです。

補足日時:2005/12/17 09:26
    • good
    • 0
この回答へのお礼

早速のご回答ありごとう御座います。
これをヒントにいま少し考えて見ます。
今後ともよろしくお願いいたします。

お礼日時:2005/12/16 11:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!