
今朝、コマンドボタンについて質問をして、
ボタンを押すごとに、特定のセルに1とブランク(=0)を
交互に入力する方法を教えてもらったのですが、その中で
新しい、トグルボタンという機能を教えてもらい、
本などを見て自分なりにやってみたのですが、
回答が見つからず、またまた書き込んでしまいました;;
先ほどは、ABS()の絶対値を使って、0と1を繰り返す方法と
下記のプログラムを教えて頂いたのですが、
Private Sub CommandButton1_Click()
If Range("D1").Value <> "" Then
Range("D1").Value = ""
Else
Range("D1").Value = 1
End If
End Sub
作りたい書類には1を入力したときに凹ませたいのですが、
教えてもらった回答では
どうしても、0の時に凹んで 1のときに凸るんです。
内容を色々変えてやってみたものの成功には至らず、
本を見ても回答に見合った例がなく、うまく出来ません。
っというか、コマンドボタンと同様の式では、
凹んだときにTrueを返して、凸ったときにFalseを返すという
折角のトグルボタンの意味が無いですよね?
とどのつまりが、お知恵をお貸し頂きたいということで、
毎度ながら申し訳ないのですが
何卒宜しくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
最初に、前回の私の書いたトグルボタンのコードの内容は、以下のようなものです。
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が入るようにしたい。でした;;
すいません。
では、これに懲りずにまた宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報