重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

エクセルのマクロがわかりません。教えてください
問題は5人の簿記の点数を入力し5人の合計点・最高点・最低点を表示するプログラムを作成する。というものです。

Sub test()
Dim boki as integer
Dim sum as integer
Dim max as integer
Dim min as integer
For A = 1 to 5
boki = InputBoxx("簿記の点数入力")
goukei = goukei + boki
??????
Next A
Msgbox"5人の合計点は"&A
Msgbox"5人の最高点は"&A
Msgbox"5人の最低点は"&A
End Sub

IF関数を使って??の部分を作るようなのですが、いまいちよく分からないので教えてください。

bokiは簿記
sumは合計
maxは最高
minは最低のことを現してます。

A 回答 (4件)

>エクセルのマクロがわかりません



ご質問の趣旨とは違うかもしれませんが、If で選別させるよりも、EXCELでしたら、ワークシート関数を使ったほうが、簡単ではありませんか?

Sub test1()
Dim boki(1 To 5) As Integer
Dim A As Integer
For A = 1 To 5
 boki(A) = InputBox("簿記の点数入力")
Next A
MsgBox "5人の合計点は" & WorksheetFunction.Sum(boki)
MsgBox "5人の最高点は" & WorksheetFunction.Max(boki)
MsgBox "5人の最低点は" & WorksheetFunction.Min(boki)
End Sub
    • good
    • 0

最高、最低という意味とは逆に


MAX=0
MIN=100と最初(初期設定)において、これら変数に入れます。
1人分入力あったときに
If Boki>Max Then MaX=Boki
とMaxを今入れた点数とします
同じく
If Boki<Min Then Min=Boki 
と置き換えます
これを5人分繰り返したして、5人終わったときはMin,Maxが具体的に
正しい値を保持してます。
まあアルゴリズムというほどでもない、定石方法でしょう。
    • good
    • 0

>IF関数を使って??の部分を作るようなのですが、いまいちよく分からないので教えてください。



何のために変数(max,min)を設定したのですか?
宿題みたいなので、プログラムの考え方一例です。[ ] 欄は自分で埋めてください。

if [ ] = 1 then
'初期値の設定
[ ] = boki
[ ] = boki
else
'変数の比較と代入
if [ ] then [ ] = boki
[ ]
endif

あと、
>Msgbox"5人の合計点は" & A

では、"5人の合計点は6" と表示されてしまいすよ。

きちんと動作したら、InputBoxx で「数値」以外が入った場合のことも考えて、プログラムを直して見るのも良いでしょう。
    • good
    • 0

初期値としてMAX=0 MIN=100をいれといたあとに、?の部分で、IF MAX<BOKI THEN MAX=BOKI というふ

うにしていけばよいのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!