こんにちは。
最初に、前回の私の書いたトグルボタンのコードの内容は、以下のようなものです。
Private Sub ToggleButton1_Click()
If ToggleButton1.Value Then
Range("D1").Value = 1
Else
Range("D1").Value = ""
End If
End Sub
ボタンをクリックすると、1が入り、もう一度押すと、数字は消えます。
>1を入力したときに凹ませたいのですが、教えてもらった回答では
>どうしても、0の時に凹んで 1のときに凸るんです。
1を入力した時に凹ませるというのは、かなり意味が違ってきます。あくまでも、ボタンを押して変化するというものですから、入力では、直接の変化はありません。
ワークシートのD1 に、1を入力した時に、凹ませるのは、
ボタンのプロシージャと同じ場所の、シートモジュールに、
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$1" Then Exit Sub
ToggleButton1.Value = (Range("D1").Value <> 0)
End Sub
なお、(Range("D1").Value <> 0) のカッコは、意味がありません。慣例で、見かけのために、そのような書き方をすると思ってください。その部分は、0以外は、True を返すというような仕組みになっています。
お礼
Wendy02さん、いつもご回答ありがとうございます。 自分なりに色々と勉強を続けていて、 関数に関しては結構覚えたつもりなのですが、 プログラムには公式がないというか、 関数のような特定の決まり事がないので (あるけど幅が広くて覚え切れないのかな?;;) 中々難しいです。 以前教えて頂いたダイアログに関しては、 本のお陰もあってかなりいい具合に仕上がりましたよ。 今回の内容で If ~ Then ~ Else ~ で、関数IFと同じような意味のものが作れる事がわかりました。 どうもありがとうございました。 あと、質問の文章に誤りがありました。 ”1を入力した時に凹ませたい~”じゃなくて、 凹ませた時に1が入るようにしたい。でした;; すいません。 では、これに懲りずにまた宜しくお願いします。