[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コマンドボタンの表示文字とボタン名』(ぽっけ)
シートにコマンドボタンを作成しました。 更に、ボタンの表示文字(コマンドボタンオブジェクト、編集で入れられる文字)を『実行』としたい。 このボタンで実行するマクロ『exitmac』を登録したいのですが、
ボタン名の取得はどうすれば良いですか? (CommandButton3) ボタン名がわかれば、 Private Sub CommandButton3_Click() call exitmac End Sub をモジュールに書き込むのは自分で出来そうなので教えて下さい。
'指定したセルにボタンを作成する
Sub AddButton()
With ActiveSheet.Range("B3")
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height).Select
End With
With Selection
.Placement = xlFreeFloating
.PrintObject = False
End With
Range("B3").Select
End Sub
よく意味を理解していませんが、
Private Sub CommandButton3_Click()
call exitmac("commandbutton3")
'とか
call exitmac(commandbutton3)
'等として、exitmacというプロシジャーにパラメータとして渡せばよいのではないですか?
'このイベントプロシジャーのトリガーはCommandButton3ですから・・・・
End Sub
他には、コマンドバー「フォーム」のボタンを使う方法があります。 これなら、Application.Caller ボタン名が取得できます。
ichinose
Sub AddButton()
Dim CmdB As OLEObject
With ActiveSheet.Range("B3")
Set CmdB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
End With
With CmdB
.Placement = xlFreeFloating
.PrintObject = False
.Object.Caption = "あいうえ"
.Name = "作ったボタン1"
End With
Range("B3").Select
End Sub
シートモジュール Private Sub 作ったボタン1_Click() MsgBox "あいうえ" End Sub BJ
ichinoseさんへ(ぽっけ) exitmacは、ボタンを押した時に起動したいマクロ名です。 ですから、 Private Sub ボタン名_Click() call exitmac End Sub としてシートモジュールに書き込みたい。 Application.Callerは使い方が分かりませんでした。
BJさんへ Sub AddButtonを二回以上実行するとCommandButton1を作ってしまうようです。 既にあるので、作らない様に出来ますか? 結局現在シートのボタン名を取得しないと出来ないかも知れませんが、 方法が相変わらず分かりません。
>Sub AddButtonを二回以上実行するとCommandButton1を作ってしまうようです。 でしょうね。 提示されていたコードに書いてないので、それはそれで自分で書くと思っていました。
>結局現在シートのボタン名を取得しないと出来ないかも知れませんが、 ????? 作った時にボタンに名前を付けているのに取得する必要があるのか 考えてみてください。
名前を付けたボタンがあるのかないのか確認すれば良いだけです。
On Error Resume Next
Set CmdB = ActiveSheet.OLEObjects("作ったボタン1")
If Not CmdB Is Nothing Then Exit Sub
On Error GoTo 0
BJ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.