- Excel VBA 質問スレ Part44 [無断転載禁止]©2ch.net
958 :デフォルトの名無しさん[]:2017/01/03(火) 00:43:43.22 ID:3mqXOGxM - >956,957様
うう…そうなのですか… わかりました、勇気を出してここで聞いてみます Private Sub CommandButton1_Click() If CheckBox1 Then y = 500 + 300 + 200←@ If CheckBox2 Then y = 500 + 300 ElseIf CheckBox3 Then y = 500 + 200 Else y = 500←@' End If End If If CheckBox2 Then←A y = 300 + 200 + 500←@ If CheckBox1 Then y = 300 + 500 ElseIf CheckBox3 Then y = 300 + 200 Else y = 300←@’ End If End If
|
- Excel VBA 質問スレ Part44 [無断転載禁止]©2ch.net
959 :デフォルトの名無しさん[]:2017/01/03(火) 00:45:05.92 ID:3mqXOGxM - 続きです。
If CheckBox3 Then←A’ y = 200 + 300 + 500←@ If CheckBox1 Then y = 200 + 500 ElseIf CheckBox2 Then y = 200 + 300 Else y = 200←@’ End If End If y=200+300+400←B Label1.Caption = y End Sub これはユーザーフォームを作って計算機を作り、 チェックボックス1…500 チェックボックス2…300 チェックボックス3…200 をそれぞれ選択したり,そして加算できるようにしたいのです。 (質問@)@と@’の値を入れ替えるとエラーがでた。上記だとうまく計算できた。 最初の@にはy=500、y=300,y=200が正しいはずなのになぜか? (質問A)If、IfElse,Elseではエラーがでた。なぜ三段全てIfでないと作動しなかったのか? (質問A続)If CheckBox1 Then と If CheckBox1.Value=True Thenの違いはあるか? (質問B)上記の文は不適切だが、現状ではチェックボックス3つのうち2つまでなら加算できるが、チェックボックス3つ全てを合計することはできない。どうすればいいのか?
|
- Excel VBA 質問スレ Part44 [無断転載禁止]©2ch.net
962 :デフォルトの名無しさん[]:2017/01/03(火) 01:07:35.09 ID:3mqXOGxM - >960様
えっ、なぜこれがヒントになるのですか…?
|
- Excel VBA 質問スレ Part44 [無断転載禁止]©2ch.net
965 :デフォルトの名無しさん[]:2017/01/03(火) 01:44:32.13 ID:3mqXOGxM - >961様
御解答して下さり、ありがとうございます。 (質問B)の解答だけで、そのまま全て計算できてしまうのですね… これは、同列(?)のifの場合、if or if or ifという概念ではなくて、if and if and ifという事なのかなと思いました。 私は、check1を選択→残りは2か3→2を選択した場合、3を選択した場合、その他全てという風に考えてしまっていました。 すみません、961様の解答からの質問なのですが、 (質問@)@と@‘の値を入れ替えると、それぞれ単体のボックスのみのチェックで1000と計算、 check1+check2=800,check1+check3=700、check2+check3=500とあられもない数で計算されてしまうのです… (質問A)Aの箇所をそれぞれElseIf,Elseとすると、「対応するIfがありません」 となってしまうのです。 (質問B)961様の解答が物凄くシンプルで、本来こちらでやるべきとは思うのですが、私の考え方で3つの合計数を出す方法はあるのでしょうか?もしくは、そもそも私の考えが間違っているので、表しようがないのでしょうか…?、 正直、私の質問は皆様にとって非常に面倒臭いと改めて思いましたので、次回より、地域の家庭教師などを探してみたいと思います。ですので、もう少しだけお付き合いください(><)
|
- Excel VBA 質問スレ Part44 [無断転載禁止]©2ch.net
979 :デフォルトの名無しさん[]:2017/01/03(火) 03:20:02.02 ID:3mqXOGxM - >966様、967様、968様
皆様ご丁寧に解答して下さってありがとうございました。 967様の解答を聞いて、 ・1にチェック→2or3にチェック→その他とは、1単体or123全てをチェック ・入れ子にしてしまうと1かつ2,1かつ3、1単体、というように1が絶対入ってしまうが、それぞれ独立したifにすると 1を選択orしなかった場合、2を選択orしなかった場合、3を選択orしなかった場合、というように抽象的な事象が同時に存在することがわかった。 ・従って、それぞれの事象が同時に存在できることが新しく理解でき、また私の方法ではその他から1単体を切り離す作業が必要になりますので、適切ではなく、961様、965様のようなシンプルな解答になるのだということに行きつきました。 (ちゃんと理解できてますでしょうか…??) もし合ってそうでしたら、皆さま非常に親切にご回答頂き、ありがとうございました。 またお世話になってしまう&ご迷惑をおかけしてしまう可能性が十分にあるのですが、その時はよろしくお願い致します。
|