Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5477 / 13644 ツリー ←次へ | 前へ→

【50528】プロシージャの作成 0024 07/7/31(火) 8:26 質問[未読]
【50530】Re:プロシージャの作成 ちくたく 07/7/31(火) 8:41 発言[未読]
【50558】Re:プロシージャの作成 0024 07/7/31(火) 23:11 お礼[未読]
【50531】Re:プロシージャの作成 neptune 07/7/31(火) 9:48 回答[未読]
【50560】Re:プロシージャの作成 0024 07/7/31(火) 23:23 お礼[未読]
【50532】Re:プロシージャの作成 ponpon 07/7/31(火) 9:56 発言[未読]
【50561】Re:プロシージャの作成 0024 07/7/31(火) 23:26 お礼[未読]
【50533】Re:プロシージャの作成 neptune 07/7/31(火) 9:56 回答[未読]

【50528】プロシージャの作成
質問  0024  - 07/7/31(火) 8:26 -

引用なし
パスワード
   現在、VBAの勉強中です!
下記の問いのプロシージャの作成方法を教えてください。どうかよろしくお願い致します。
(Do・・・Loop、For・・・Nextステートメントを利用した問題ですが・・・下記のところまで自分で考えましたがどうしてもわかりません。)

SUB 計算結果()
 DIM COUNTER AS INTEGER
 COUNTER=1
 DO UNTIL COUNTER>10000
   MSGBOX("計算結果は"COUNTER"です。")
   COUNTER=COUNTER+1
 LOOP
END SUB


【問】1から10000までを加算した結果をメッセージボックスに表示するプロシージャを作成せよ。

【50530】Re:プロシージャの作成
発言  ちくたく  - 07/7/31(火) 8:41 -

引用なし
パスワード
   0024 さん

こんにちは。

>現在、VBAの勉強中です!

がんばってください。

>下記の問いのプロシージャの作成方法を教えてください。どうかよろしくお願い致します。
>(Do・・・Loop、For・・・Nextステートメントを利用した問題ですが・・・下記のところまで自分で考えましたがどうしてもわかりません。)
>
>SUB 計算結果()
> DIM COUNTER AS INTEGER
> COUNTER=1
> DO UNTIL COUNTER>10000
>   MSGBOX("計算結果は"COUNTER"です。")
>   COUNTER=COUNTER+1
> LOOP
>END SUB
>
>
>【問】1から10000までを加算した結果をメッセージボックスに表示するプロシージャを作成せよ。

ヒントだけ。
どのような結果が出力されましたか?
また、メッセージボックスはmsgboxで利用出来ます。

【50531】Re:プロシージャの作成
回答  neptune  - 07/7/31(火) 9:48 -

引用なし
パスワード
   ▼0024 さん:
こんにちは

>現在、VBAの勉強中です!
>下記の問いのプロシージャの作成方法を教えてください。
教えてもらったのでは勉強になりませんよ。当然応用も利きにくいです。

考え方を書きます。・・・といっても殆ど答えですが。
>【問】1から10000までを加算した結果をメッセージボックスに表示するプロシージャを作成せよ。
と言う設問ですから、その処理は2つに分かれますね。

処理1:【問】1から10000までを加算した結果出す
処理2:メッセージボックスに表示せよ。

計算範囲が1から10000と明確に指定されています。
従って、このケースの場合はfor〜next繰り返し文を使います。

dim i as long     'インクリメント用変数
dim counter as long  '計算に使用する

for i=1 to 1000
' 計算
next i
で計算結果は出てきますね。

後は表示するだけです。表示にはmsgboxが指定されているので
それを使用するだけです。

これで分からなければ、もう一度教科書を1から読み直すことをお勧めします。

【50532】Re:プロシージャの作成
発言  ponpon  - 07/7/31(火) 9:56 -

引用なし
パスワード
   >COUNTER=COUNTER+1

これでは、今ある数字に1を足していくになってます。
求めるのは、

=1+2+3+4+5・・・・・

だから、
1までなら
 答=答+1
2までなら
 答=(答+1)+2
3までなら
 答=(答+1+2)+3
  ・
  ・
  ・
増えていく数を変数にすればどうでしょう?

【50533】Re:プロシージャの作成
回答  neptune  - 07/7/31(火) 9:56 -

引用なし
パスワード
   ▼0024 さん:
続けてですが、

>現在、VBAの勉強中です!

>(Do・・・Loop、For・・・Nextステートメントを利用した問題ですが・・・下記のところまで自分で考えましたがどうしてもわかりません。)
自分で考えるのはよいのですが、VBE(Vixual Basic Editer)上で書いて下さい。
>MSGBOX("計算結果は"COUNTER"です。")
は構文エラーでまともに書けないはずですが。。。

それと、書いたら、
「デバッグ」メニュー
→VBAProjectのコンパイル
を実行したら、最低限書式エラーは発見できます。

「ツール」メニュー
→オプション
→→編集タブの変数の宣言を強制する
にチェックを入れておくことを強くお勧めします。

【50558】Re:プロシージャの作成
お礼  0024  - 07/7/31(火) 23:11 -

引用なし
パスワード
   貴重なご意見をどうも有難う御座いました。

【50560】Re:プロシージャの作成
お礼  0024  - 07/7/31(火) 23:23 -

引用なし
パスワード
   ▼neptune さん:

>考え方を書きます。・・・といっても殆ど答えですが。
>>【問】1から10000までを加算した結果をメッセージボックスに表示するプロシージャを作成せよ。
>と言う設問ですから、その処理は2つに分かれますね。
>
>処理1:【問】1から10000までを加算した結果出す
>処理2:メッセージボックスに表示せよ。
>
>計算範囲が1から10000と明確に指定されています。
>従って、このケースの場合はfor〜next繰り返し文を使います。
>
>dim i as long     'インクリメント用変数
>dim counter as long  '計算に使用する
>
>for i=1 to 1000
>' 計算
>next i
>で計算結果は出てきますね。
>
>後は表示するだけです。表示にはmsgboxが指定されているので
>それを使用するだけです。


早速のご意見をどうも有難う御座います。
下記の通り作成しましたがうまくいきません。もし、よろしければ、もう一度ご教示をお願いいたします。

答=1+2+3+4+・・・というふうにやりたいのですが・・・。

>Sub テスト問5()
  Dim i As Long
  Dim counter As Long
  
  For i = 1 To 10000
    MsgBox ("計算結果は" & i & "です。")
  Next i

End Sub

【50561】Re:プロシージャの作成
お礼  0024  - 07/7/31(火) 23:26 -

引用なし
パスワード
   ▼ponpon さん:
貴重なご意見をどうも有難うございした。今後の参考にさせていただきます。

5477 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free