質問編集履歴

5

タイトル修正

2021/09/17 01:08

投稿

milk1218
milk1218

スコア20

test CHANGED
@@ -1 +1 @@
1
- VBA 関数で計算式を呼び出すやり方
1
+ VBAでの電卓作成 関数で計算式(足し算、引き算、割り算、掛け算)を呼び出すやり方
test CHANGED
File without changes

4

情報の補足

2021/09/17 01:08

投稿

milk1218
milk1218

スコア20

test CHANGED
File without changes
test CHANGED
@@ -251,3 +251,51 @@
251
251
  ・+は1,-は2,×は3,÷は4にして条件分岐しています
252
252
 
253
253
  ・作っているのは電卓です TextBoxには押した数値キーの数字(num)と演算結果(ans)が出ます
254
+
255
+ ・下記が四則演算を関数化する前の演算の部分の書き方です。こちらだと正常に動きます。
256
+
257
+
258
+
259
+ Private Sub CommandButton11_Click() '足し算
260
+
261
+
262
+
263
+ enzan = True
264
+
265
+ num = Val(TextBox1.Text)
266
+
267
+
268
+
269
+ Select Case ent
270
+
271
+ Case 0
272
+
273
+ ans = num
274
+
275
+ Case 1
276
+
277
+ ans = ans + num
278
+
279
+ Case 2
280
+
281
+ ans = ans - num
282
+
283
+ Case 3
284
+
285
+ ans = ans * num
286
+
287
+ Case 4
288
+
289
+ ans = ans / num
290
+
291
+ End Select
292
+
293
+
294
+
295
+ TextBox1.Text = ans
296
+
297
+ ent = 1 '-は2,*×は3,÷は4 後は同じ記述
298
+
299
+
300
+
301
+ End Sub

3

文法の修正

2021/09/14 08:02

投稿

milk1218
milk1218

スコア20

test CHANGED
File without changes
test CHANGED
@@ -70,6 +70,10 @@
70
70
 
71
71
  Select Case ent
72
72
 
73
+   Case 0
74
+
75
+ ans = num
76
+
73
77
  Case 1
74
78
 
75
79
  ans = ans + num

2

質問の補足

2021/09/14 02:22

投稿

milk1218
milk1218

スコア20

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,11 @@
26
26
 
27
27
  ```
28
28
 
29
- 演算キーを押すと0になる
29
+ 演算キーを押すとTextBoxが0になる
30
+
31
+ ・足し算は+0という形になるから答えは一応合っているが、掛け算、割り算、引き算の0が加算されるため
32
+
33
+ 答えが0になる。
30
34
 
31
35
  ```
32
36
 

1

足し算の文法の修正

2021/09/14 02:19

投稿

milk1218
milk1218

スコア20

test CHANGED
File without changes
test CHANGED
@@ -142,92 +142,94 @@
142
142
 
143
143
 
144
144
 
145
- Private Sub CommandButton11_Click() '足し算  +キー
145
+ Private Sub CommandButton11_Click() '足し算  +キー ※ 9/13修正
146
+
147
+
148
+
146
-
149
+ ent = 1
150
+
147
-
151
+ Dim r As Double
152
+
153
+ r = func(ent)
154
+
155
+ TextBox1.Text = r
156
+
157
+
158
+
159
+ End Sub
160
+
161
+
162
+
163
+ '+、×、÷ボタンも上記と同様 1,2,3,4で条件分岐
164
+
165
+
166
+
167
+ Private Sub CommandButton15_Click()      'イコールボタン
168
+
169
+
148
170
 
149
171
  enzan = True
150
172
 
173
+ num = Val(TextBox1.Text)
174
+
175
+
176
+
177
+ If ent = 1 Then
178
+
151
- ans = func(1)
179
+ ans = num + ans
152
-
180
+
153
- TextBox1.Text = ans
181
+ TextBox1.Text = CStr(ans)
182
+
183
+
184
+
154
-
185
+ End If
186
+
187
+
188
+
155
-
189
+ If ent = 2 Then
190
+
191
+ ans = ans - num
192
+
193
+ TextBox1.Text = CStr(ans)
194
+
195
+
196
+
197
+ End If
198
+
199
+
200
+
201
+ If ent = 3 Then
202
+
203
+ ans = ans * num
204
+
205
+ TextBox1.Text = CStr(ans)
206
+
207
+
208
+
209
+ End If
210
+
211
+
212
+
213
+ If ent = 4 Then
214
+
215
+ ans = ans / num
216
+
217
+ TextBox1.Text = CStr(ans)
218
+
219
+
220
+
221
+ End If
222
+
223
+
224
+
225
+ ent = 0          '=後に再度演算キーを押した際に結果を加算されないようにするため
226
+
227
+ ans = 0
228
+
229
+
156
230
 
157
231
  End Sub
158
232
 
159
-
160
-
161
- '+、×、÷ボタンも上記と同様 1,2,3,4で条件分岐
162
-
163
-
164
-
165
- Private Sub CommandButton15_Click()      'イコールボタン
166
-
167
-
168
-
169
- enzan = True
170
-
171
- num = Val(TextBox1.Text)
172
-
173
-
174
-
175
- If ent = 1 Then
176
-
177
- ans = num + ans
178
-
179
- TextBox1.Text = CStr(ans)
180
-
181
-
182
-
183
- End If
184
-
185
-
186
-
187
- If ent = 2 Then
188
-
189
- ans = ans - num
190
-
191
- TextBox1.Text = CStr(ans)
192
-
193
-
194
-
195
- End If
196
-
197
-
198
-
199
- If ent = 3 Then
200
-
201
- ans = ans * num
202
-
203
- TextBox1.Text = CStr(ans)
204
-
205
-
206
-
207
- End If
208
-
209
-
210
-
211
- If ent = 4 Then
212
-
213
- ans = ans / num
214
-
215
- TextBox1.Text = CStr(ans)
216
-
217
-
218
-
219
- End If
220
-
221
-
222
-
223
- ent = 0          '=後に再度演算キーを押した際に結果を加算されないようにするため
224
-
225
- ans = 0
226
-
227
-
228
-
229
- End Sub
230
-
231
233
  ```
232
234
 
233
235