[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ワークシート上のフォームコントロールにポップヒント』(まろ)
ユーザーフォームのコントロールにControlTipTextで文字列を設定してカーソルをあてると ポップヒントが出てくるのと同じような感じで、ワークシート上にあるコマンドボタン (フォームコントロール)にカーソルをあてると文字列が表示されるような設定はできますか? Excel2010です。
例えばSheet1に配置したコマンドボタンにカーソルをあてると 「○○の操作を行います」 といったような文字列を表示させたいです。
方法があればお教えください。
シートにActivexControlのフレーム(コントロールの選択より)を貼り付け、 そのそのフレームの中にコマンドボタンを作成します。これは、 Frame1.Controls("Commandbutton1")というプロパティで取得できます。 このボタンのプロパティには、ControlTipTextがありますから、指定可能です。
新規ブックにて、(Microsoft Forms 2.0 Object Library を参照設定)
標準モジュールに
'========================================================================== Sub 準備() Dim cmd As MSForms.CommandButton With ActiveSheet.OLEObjects.Add(ClassType:="Forms.Frame.1", Link:=False, _ DisplayAsIcon:=False, Left:=312.75, Top:=118.5, Width:=126.75, Height _ :=69) .Object.BackColor = &HFFFFFF .Object.BorderColor = &HFFFFFF .Object.Caption = "" .Object.SpecialEffect = 0 Set cmd = .Object.Controls.Add("Forms.CommandButton.1") cmd.Left = 0 cmd.Top = 0 cmd.Width = .Width cmd.Height = .Height cmd.Caption = "テスト" cmd.ControlTipText = "テストぼたん" .Visible = False DoEvents DoEvents .Visible = True End With End Sub
上記の「準備」を実行すると、アクティブシートにボタンが作成されます。 実は、このボタン、フレーム内に作成されたコマンドボタンです。
このボタンには、「テストぼたん」というメッセージが表示されるはずです。 この準備というコードが行っていることは、手動操作で作成可能です。
では、このボタンのイベントは?
当該シートのモジュールに
Private WithEvents cmd As MSForms.CommandButton Private Sub cmd_Click() MsgBox "ok" End Sub Private Sub Worksheet_Activate() Set cmd = Frame1.Controls("commandbutton1") End Sub
当該シートを一度別のシートをアクティブにした後、また戻してボタンをクリックしてください。
イベントが実行されるはずです。 どこでオブジェクト変数にオブジェクトを設定するかは、仕様によりますが・・。
試してみてください
ichinose@一応訂正
フォームツールのボタンに設定するのはどうなんだろう。 そのままではちょっと難しいかな?
[[20130215121406]] 『コントロールボタンに設定したヒントの表示方法』(エクセル漂流者)
↑ではActiveXボタンの場合の議論がなされていたけど、参考までに目をとおしておいたらいいかも。
で、代替案
1.フォームツールのボタンではなく ActiveXのコマンドボタンにする。 で、以下のコードを実行して、コメントを登録。
2.フォームツールのボタンの上に、シェープの四角形をおおいかぶせて、塗りつぶし無し。線無し。 で、以下のコードを実行して、コメントを登録。
Sub Test() With Sheets("Sheet1") .Hyperlinks.Add anchor:=.Shapes("CommandButton1"), Address:="", _ SubAddress:=.Shapes("CommandButton1").TopLeftCell.Address, _ ScreenTip:="ひんと、ひんと" End With End Sub
なお、2.の場合は、"CommandButton1"のところを、配置したシェープの名前に変更。
(ぶらっと)
オブジェクト変数を使わなくてよいなら、 ぷらっとさんの方法がよいですねえ!! って、 [[20130215121406]] ↑同じこと記述してたんですねえ、私は、その後を見てなかったんですねえ 失礼しました。
ichinose
ichinose様ぶらっと様ありがとうございます
フォームコントロールをActiveXに変えてぶらっと様のコードを実行したらできました!
(まろ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.