2016-06-27 9 views
0

こんにちは、これはしばらく頭痛を与えています。コマンドボタンのプログラムによる追加と変更(アクティブなXコントロール) - Excel VBA

既存のボタンを削除して新しいボタンを追加するだけで済みます。私は既に準備された関数xbutton_click()とybutton_click()を持っています。私はこのようにボタンを追加してみました:

Set btn= ActiveSheet.Buttons.Add(Range("B3").Left, Range("B3").Top, Range("B3").Width, Range("B3").Height) 
With openForm 
    .OnAction = "new_Click" 
    .Caption = "new" 
    .Name = "newButton" 
End With 

が、それらは唯一私が欲しいものないでマクロで動作するように見えます。手動でボタンを追加すると、アクティブなXコントロールボタンが追加されることに気付きました。 私はそれが欲しい。これは変更可能なnameプロパティを持ち、その関数は基本的にはname_click()です。

今すぐ追加するには、頭痛が発生します。私はインターネットをサーフィンしましたが、それは時代遅れの解決策(私は2013年を使用しています)でいっぱいです。私は新しいコマンドボタンを追加するだけでしたが、キャプション、名前、何も変更できませんでした。

これは、「コマンドボタン」(ない「ボタン」)を追加するためのコードです:

Set objBtn = ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", link:=False, _ 
    displayasicon:=False, Left:=celLeft, Top:=celTop, Width:=celWidth, Height:=celHeight) 

は、ActiveXコマンドボタンの動作を追加し、私は「キャプション」のようにそのプロパティを変更することはできません。誰かがこの迷路を通して私を導くことができますか?

編集

objBtn.Name = "newnameの" 作品。しかしobjBtn.Captionは=「newCaptionは」OLEObjectsのエラー438

+1

を欠落していた

Dim objBtn As OLEObject Set objBtn = ws.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, _ DisplayAsIcon:=False) objBtn.Object.Caption = "Example" 

お知らせを解決する必要がありますフォームコントロールには任意のマクロを割り当てることができます。したがって、 '.OnAction'を使って作成時にマクロを割り当てるオプションがあります。 ActiveXコントロールにはこのオプションは付いていません。マクロ(例えば、 'CommandButton1'をクリックするとき)は、' CommandButton1_Click'という名前でなければならず、ActiveXコマンドボタンが存在するシート上に存在しなければならない。したがって、本質的に求めているのは、特定のシートにあるVBAコードを変更するマクロ(VBAコード)です。 – Ralph

+0

申し訳ありませんが、ActiveXボタンやフォームボタンを追加したいものです。 ActiveXコードは –

+0

の上に記載されています特定のExcelファイル内のモジュールのVBAコード(VBAコード付き)を変更するソリューションがあります。しかし、VBAコードを使用してワークシート上のVBAコードを変更するソリューションにはまだ触れていません。たぶん誰かがここに誰かのための解決策を持っています。 – Ralph

答えて

2

を与え、あなたはそれをただキャプションを行うことができない、これはそれをあなたが.Object. enter image description here

関連する問題