
No.2ベストアンサー
- 回答日時:
こんにちは。
>エクセル フォームの ボタンがすぐにはへこまないのはなぜ?
表題の回答としては、フォームツール自体は、Ver.5 のもので、ダイアログシートなら、すぐに反応するけれども、ワークシートでは、単に、Shapes の一群(Member) としてしか扱われないから、最初に、フォームツールの反応を優先してから、Shape という扱いで、影が反転するのだろうと思います。
もちろん、Shapeとして、クリックした時点で影を反転させるようなマクロを作れば、出来るのだろうけれど、それ自体がなかなか面倒なような気がします。
マクロでコマンドボタンを設定するとか、コントロール配列の真似事をするようなことをしなければ、表現力やイベントの豊富なコントロールツールにしたほうが良いということにしか、回答は思いつきません。
回答ありがとうございます。
なるほどなぁ・・・
仕組みからみれば、なんとなく納得です。
やはり別段必要がないからそういう仕様にしてある
(あるいは、そういう仕様のまま)、なのですかね♪
ありがとうございました。
No.1
- 回答日時:
>のどちらかでないとボタンがへこんでくれません。
現象確認しました(Excel2002)。 気が付かなかったなあ!!
いくつかプロパティを探りましたが、これを是正するようなプロパティは
見つけられませんでした(あるかもしれませんが)。
で、代替案。
1 「コントローツールボックス」のコマンドボタンを使う
これだときちんと凹みますよね!!
2 オートシェイプの四角形を使って、ボタンを作成する。
これでも凹みませんが、クリック時にボタンに色の変化が
見られるから、それらしく見える
オートシェイプの擬似ボタンの一例です。
新規ブックの標準モジュールにて
'=============================================================
Sub main()
Dim btn As Shape
[c10].Select
Set btn = newbutton(ActiveSheet)
btn.OnAction = "test"
[f10].Select
Set btn = newbutton(ActiveSheet, "Button2", , , , , &H800000, &HFFFF00)
btn.OnAction = "test"
Set btn = Nothing
End Sub
'=================================================================
Function newbutton(ByVal sht As Worksheet, _
Optional ByVal txt As String = "", _
Optional ByVal left As Single = -1, _
Optional ByVal top As Single = -1, _
Optional ByVal width As Single = 72, _
Optional ByVal height As Single = 24, _
Optional ByVal folor As Long = &H80000012, _
Optional ByVal bcolor As Long = &HC0C0C0) As Shape
'sht 作成シート txt Caption文字列 left,top,width,heightは、ボタンの位置とサイズ
'fcolor 文字の色(RGB) bcolor ボタンの色(RGB)
If txt = "" Then txt = "button"
If left < 0 Then left = ActiveCell.left
If top < 0 Then top = ActiveCell.top
Set newbutton = sht.Shapes.AddShape(msoShapeRectangle, _
left, top, width, height)
With newbutton
.Fill.Visible = msoTrue
.Fill.Solid
.Fill.ForeColor.RGB = bcolor
.Fill.Transparency = 0#
.Line.Visible = msoFalse
.Shadow.Type = msoShadow14
With .TextFrame
.Characters.Text = txt
.Characters.Font.Color = folor
.HorizontalAlignment = xlHAlignCenter
.VerticalAlignment = xlVAlignCenter
End With
End With
End Function
'=================================================================
Sub test()
MsgBox "ok"
End Sub
mainを実行してみてください。アクティブシートに二つの
ボタンが作成されます。
これで代替できませんか?
まっ、こんな面倒なことをするなら、
対した問題もないなら、そのまま既成のボタンを使うという
選択もありますねえ!!
検討してみてください
朝早くからの回答ありがとうございます。
どうやら仕様であり、回避できないということがわかりました。
どの道をとるか、しばし思案検討したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロで謎の現象が起きていて困ってます。 エクセルで作ったボタンを押すとマクロが動いて処理をしてくれ 3 2023/06/22 17:28
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Windows 10 Windowsをキーボードのボタン操作でシャットダウンさせたい 4 2022/11/08 19:23
- その他(生活家電) テレビリモコンのボタン修理 6 2022/05/02 22:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
オブジェクト名をVBAで指定...
-
Excel ラジオボタンのリセット...
-
マクロで作ったボタンのサイズ...
-
入力済み、選択したセルに連動...
-
UPS警告音を止めたい
-
EXCELのマクロが 実行時エラー5...
-
エクセルの画面にユーザーフォ...
-
Dドライブのアクセス許可
-
ユーザーフォームをショートカ...
-
【Excel VBA】マクロボタンを表...
-
Excel vab でのボタンの使い分...
-
フォームコントロールから作っ...
-
ボタンを画像で作るか、CSSでデ...
-
マクロを登録しているボタンが...
-
複数シートのボタンに同一の動...
-
エクセルでマクロボタンを押す...
-
VBAでフォームの閉じるボタンを...
-
Excelにストップウオッチ?をつ...
-
ボタンを押しただけで発生する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
【Excel VBA】マクロボタンを表...
-
UPS警告音を止めたい
-
エクセルの画面にユーザーフォ...
-
マクロを登録しているボタンが...
-
EXCELのマクロが 実行時エラー5...
-
複数シートのボタンに同一の動...
-
入力済み、選択したセルに連動...
-
フォームコントロールから作っ...
-
Excelで、ボタンにコメントをつ...
-
Excel ラジオボタンのリセット...
-
エクセルで、オプションボタン...
-
マクロで作ったボタンのサイズ...
-
オブジェクト名をVBAで指定...
-
エクセルでマクロボタンを押す...
-
Accessのフォームでタブの色
-
excel スクロールしても常にボ...
-
ユーザーフォームをショートカ...
-
EXCELの塗りつぶしのボタ...
-
パナソニックKX-PW22CLHの電話...
おすすめ情報