- ベストアンサー
Excelマクロ 入力があったらボタンを表示する方法
- C3に入力があった場合、隣にボタンを表示させる方法を教えてください。
- Excelマクロを使用して、C3に入力があった場合にボタンを表示させたいです。
- 参考サイトのコードを使用して、C3の入力に応じてボタンの表示を制御する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>C3に入力があった場合 そういうときはSelectionChangeイベントではなく,changeイベントを使います。 >C3に何か入力してEnter、又は他のセルをSelectした時のみボタンを表示させたい 裏を返せば,既にボタンがあるならば,何もしないでマクロを終了させてみます。 また今のご質問内容ではそこまで辿り着いていませんが,ボタンを消去する手順についても検討があってよいかもしれません。 手順: (簡易な例:シート上には今作ろうとしているボタンが1個あるか,または1個も無い) シート名タブを右クリックしてコードの表示を選ぶ とりあえずSelectionChangeイベントのコードは全部消す 代わりに次のように作成してみる Private Sub Worksheet_Change(ByVal Target As Range) if activesheet.buttons.count = 0 then If Target.Address = "$C$3" Then If Not Range("C3") = "" Then With ActiveSheet.Buttons.Add(Range("D2").Left + 1, Range("D2").Top + 1, _ Range("D2:D3").Width - 1, Range("D2:D3").Height - 1) .name = "myButton1" .OnAction = "あいうえお" .Characters.Text = "あいうえお" .Font.Size = 10 End With End If End If end if end sub
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
イベントを間違えています。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) では、SelectionChangeイベントですから、C3をSelectする度に作動してしまいます。 Private Sub Worksheet_Change(ByVal Target As Range) と、Changeイベントにしましょう。 でも、こうしても、C3への入力の都度、ボタンができてしまいますよ。
お礼
回答ありがとうございます! SelectionChangeが原因だったんですね。 盲点でした。 お蔭様で解決いたしました! ありがとうございました!
お礼
回答ありがとうございます! ボタンを消すのは他の場所で検討予定ですが、 まだそこまで作りこめていません。 しかし、説明不足だったにもかかわらず、 私の望みを汲み取ってくれてより良い物が出来ました! ありがとうございました!