• ベストアンサー

超初心者用プラグラム教えてください。

エクセルVBA、超初心者の私に教えてください。 最大50人までのテストの点数をインプットボックスで入力し、平均点をメッセージボックスで表示するプログラムを作りたいのです。 さらに、0を入力するとプログラム終了としたいのです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

いやさぁ・・・ Sub TEST() A = 0: I = 0 Do I = I + 1 C = CDbl(InputBox("")) A = A + C Loop While C > 0 MsgBox CStr(A / (I - 1)) End Sub この程度で動くことは動くと思うけど、多分これじゃあ「キャンセル」 を押したり、入力ミスしたり(半角数字以外では動かないはず)すると エラーしちゃうはず。問題はそういう「想定外の処理」にどう対応する かで、初心者でもそれは逃れられない問題なんだよね。 それに、上のプログラムは(分かっていて)ある程度プログラミングの 基本を無視しているんだよね。多分「教科書」の記述とは違っている筈 なんで、そのまま課題提出すると得点は貰えないかと。 ま、考え方の基本はあってる筈なので、参考になれば。

hase00
質問者

お礼

ありがとうございます。 とても参考になりました。 もう一つ教えて欲しいのですが、50人までという場合は hairetuを使用すればよいのでしょうか? 宜しければ教えてください。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

>インプットボックスで入力し >メッセージボックスで表示する 判っているならその部分はコードを書けるでしょう。 それにプログラム全般だが、繰り返しに持っていくわけだが、制御構造でどのステートメントを使うのかな。 配列に50データ蓄えると言う人も居るかもしれないが、それは避けたほうがよいだろう。すると、そのデータまでの合計を保持する変数を1つ儲け   今回までの合計=前回までの合計+今回データ 式で書くと   t=t+d この左辺tと右辺のtが同じでよい考え方理解できる? 初心者は文章でも良いフローチャートでしっかり処理ロジックを 形有るものにして、コードを考えるべきだ。 それとこの課題は勉強のためであろう。エクセル使うなら、データ入力にINPUTBOXなど使わないよな。処理パターンモデルのためのモデルだ。 それに他人に使わせるものになると何倍ものチェックやガードが必要になることも考えておいて。

hase00
質問者

お礼

回答ありがとうございます。 こちらは教科書からではないのですが、回答が無く、 私自身が独自で勉強している超初心者でして、 質問できる人がいなかったので、投稿させていただきました。 imogasiさんのおっしゃるとおり、確かに処理パターンモデルなのだと思います。 しっかり勉強して出直します。 ありがとうございました。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  ソースを書いてもらっても勉強にならないと思います。  とりあえず、貴方が作ったソースを貼って見たらどうでしょう。  文法がまったく分からないのであれば、下記サイトを参考にして下さい。   http://www.officepro.jp/excelvba/index.html   「基本文法」、「繰り返し処理」、「条件分岐」、「ダイアログ」辺りを読めば作れると思います。 では。

hase00
質問者

お礼

ありがとうございます。 ちゃんと勉強して、分かるようになりたいので、 サイトを参考にさせて頂きます。

関連するQ&A

  • エクセルVBA マクロのプログラムがわかりません教えてください

    VBAのマクロのプログラムの問題ですがこの条件のプログラムを教えてください!おねがいします 問題:インプットボックス関数を使って国語、数学、英語の点数を入力し合計点によって以下が表示されるようにしなさい。マクロ名はtestで変数名は各自で設定しなさい 3教科の合計 メッセージボックス   300点   →    A 299点~270点 →  B 269点~240点 →  C  239点以下  →    D

  • エクセル 列幅の指定調整

    エクセルで列Bをインプットボックスで指定した数値に変更できるようにしたいのですが、どの様にやればいいのか分かりません。 初心者ですので、 よろしくお願いします。 インプットボックスが表示され、数値で「10」と入力すると、 列Bが10の幅になる様にVBAで設定したいのです。 よろしくお願いします。

  • 問題でわからないところがあり・・・

    当方VBAを始めたばかりで、VBAについての基礎問題をやっている最中以下の問題がまったく解けません。 どなた様か詳しい解説or解答をお願いしたいと思い、書き込みをしました。 1、インプットボックスに姓を入力する。再度インプットボックスに表示させるとともにdata3の番地E10に書き込む。 2、インプットボックスに小数点以下2ケタの実数を入力させる。前者を後者で割ったものをメッセージボックスに表示させるとともに、data3の番地G10に書き込む。 よろしくお願い致します。

  • c++がわかりません。

    何らかの成績(テストの点数)をキー ボードから次々に入力する."-1"を入力 することで入力を終了させることにする. また,入力は最大100件までとする. • 入力が終了したら,点数の小さい順に(昇 順に)並べ替え(ソート)を行い,結果を 画面上に表示する. こちらの条件のプログラムどんな感じですか? ある程度はわかっていますが最初から教えていただけるとありがたいです。

  • ロジック・・・ プログラミング

    ポケットコンピュータでプログラミングをしている とある者です。 次の問題を言語、Basicを用いて作ってください。 ※ 私は、それを利用するとか宿題だぁ!とか そういったものではありません。 専門知識のある方のプログラムの作り方をみて勉強をさせていただきたいのです。 なるべく簡単な文でお願いいたします。 ┏━┓ ┃1┃ ┗━┛ 5人に英語のテストを行い、次のような結果が得られました Aくん= 20 Bくん= 40 Cくん= 30 Dくん= 80 Eくん= 50 (1)それぞれの点数を(READ,DATAを使い)読んでから、5人の平均を求め、さらに平均点に最も近い点数を見つけ、平均点にもっともちかい点数を表示するプログラム (2) ↑(1)のやつを、READで読むのではなく、INPUTに書き換えるのならば、その書き換えた部分のプログラム ┏━┓ ┃2┃ ┗━┛ (1)X,Yの値を入力して Z=X*(かける)Y+Y を計算し、Zの値を表示し、プラスの時は、”プラス”、マイナスの時は”マイナス”、ゼロの時は”ゼロ”と表示するプログラム。 その表示と同時に、その計算結果を表示させる。 (2) ↑(1)のプログラムを改良して、最後まで計算をしたら、 ”Please any key!”と点滅表示させて、何かキーを押したら、最初の行に戻るプログラムにする。 どうか、面倒さまですが、おしえてください。 また、こんな初心者にも(でなくても)わかるようなHPがありましたら、教えてくださいね。 ご回答お待ちしています。

  • プログラム作りです。:Basic

    ポケットコンピュータでプログラミングをしている とある者です。 次の問題を言語、Basicを用いて作ってください。 ※ 私は、それを利用するとか宿題だぁ!とか そういったものではありません。 専門知識のある方のプログラムの作り方をみて勉強をさせていただきたいのです。 なるべく簡単な文でお願いいたします。 ┏━┓ ┃1┃ ┗━┛ 5人に英語のテストを行い、次のような結果が得られました Aくん= 20 Bくん= 40 Cくん= 30 Dくん= 80 Eくん= 50 (1)それぞれの点数を(READ,DATAを使い)読んでから、5人の平均を求め、さらに平均点に最も近い点数を見つけ、平均点にもっともちかい点数を表示するプログラム (2) ↑(1)のやつを、READで読むのではなく、INPUTに書き換えるのならば、その書き換えた部分のプログラム ┏━┓ ┃2┃ ┗━┛ (1)X,Yの値を入力して Z=X*(かける)Y+Y を計算し、Zの値を表示し、プラスの時は、”プラス”、マイナスの時は”マイナス”、ゼロの時は”ゼロ”と表示するプログラム。 その表示と同時に、その計算結果を表示させる。 (2) ↑(1)のプログラムを改良して、最後まで計算をしたら、 ”Pless any key!”と点滅表示させて、何かキーを押したら、最初の行に戻るプログラムにする。 どうか、面倒さまですが、おしえてください。 また、こんな初心者にも(でなくても)わかるようなHPがありましたら、教えてくださいね。 ご回答お待ちしています。

  • プログラミング の例を教えてください。

    ポケットコンピュータでプログラミングをしている とある者です。 次の問題を言語、Basicを用いて作ってください。 ※ 私は、それを利用するとか宿題だぁ!とか そういったものではありません。 専門知識のある方のプログラムの作り方をみて勉強をさせていただきたいのです。 なるべく簡単な文でお願いいたします。 ┏━┓ ┃1┃ ┗━┛ 5人に英語のテストを行い、次のような結果が得られました Aくん= 20 Bくん= 40 Cくん= 30 Dくん= 80 Eくん= 50 (1)それぞれの点数を(READ,DATAを使い)読んでから、5人の平均を求め、さらに平均点に最も近い点数を見つけ、平均点にもっともちかい点数を表示するプログラム (2) ↑(1)のやつを、READで読むのではなく、INPUTに書き換えるのならば、その書き換えた部分のプログラム ┏━┓ ┃2┃ ┗━┛ (1)X,Yの値を入力して Z=X*(かける)Y+Y を計算し、Zの値を表示し、プラスの時は、”プラス”、マイナスの時は”マイナス”、ゼロの時は”ゼロ”と表示するプログラム。 その表示と同時に、その計算結果を表示させる。 (2) ↑(1)のプログラムを改良して、最後まで計算をしたら、 ”Please any key!”と点滅表示させて、何かキーを押したら、最初の行に戻るプログラムにする。 どうか、面倒さまですが、おしえてください。 また、こんな初心者にも(でなくても)わかるようなHPがありましたら、教えてくださいね。 ご回答お待ちしています。

  • インプットボックスの書式について

    エクセルVBAを勉強中の初心者です 現在作成中のマクロでインプットボックスを使用しているのですが 次のような点がわかりません、どなたか教えて頂けないでしょうか 1。インプットボックスのキャンセルボタンが押されたことを検出する方法 2。インプットボックスの縦、横の幅の調整方法 3。数値を全角で入力したとき、半角にして取り出す方法 4。アルファベットを全角で入力したとき、半角で取り出す方法 1~4のどれでも結構ですのでご指導お願いします tomosato

  • C言語プログラムの作成方法がわかりません

    キーボードから5人の点数を入力すると平均点を表示するようにし、平均点以上の学生の点数を表示させるC言語のプログラムの作成方法を教えてください

  • 特定のセルに文字が入力されているページの印刷VBA

    エクセルVBAで質問が2つあります。 エクセルシートは改ページプレビューでページ毎の印刷範囲が見えるようになっています。 (1)コマンドボックスを押したらE4~E963又はB4~B963のセルに文字が入力されているページのみ印刷するVBAはどの様にすれば宜しいでしょうか? (2)コマンドボックスを押すとインプットボックスが表示され、その中に数字を入力したら、その入力されたページのみを印刷するVBAはどの様にすれば宜しいでしょうか?

専門家に質問してみよう