VBAの問題がわからないのでどなたかご教授お願いいたします。
【問題】

気象庁ホームページ(http://www.jma.go.jp/jma/index.html)の過去の気象データ検索より札幌市の2013年1月の日ごとの平均気温および、札幌市の2014年1月の日ごとの平均気温のデータを入手してSheet1に表を作成した。
A列には日、B列には2013年1月のデータ、C列には2014年1月のデータを入力すること。


2013年1月と2014年1月の平均気温、最高気温、最低気温を表示するプログラムを作成しないさい。

動作は以下のようなものです。

1.Sheet1にある実行開始ボタンを押すと、下のようなフォームが表示される。

年選択ができるコンボボックスと計算、クリア、終了ボタンを3つ、平均気温、最高気温、最低気温を表示するラベルの作成

(この部分はできているので大丈夫です。)

2.コンボボックスから年を選択してから計算ボタンを押すと、選択した年の平均気温と最高気温、最低気温が表示される。結果の表示の際はFormat関数を使いなさい。

最高気温、平均気温はできたのですが、最低気温だけができません。
どこがだめなのか教えていただけると嬉しいです。
以下のようにしてやってみました


Private Sub CommandButton1_Click()

Dim intData As Integer 'データの個数
Dim dblSum As Double '総合計
Dim dblAvg As Double '平均
Dim dblMax As Double '最高気温
Dim dblMin As Double '最低気温
Dim intRow As Integer 'セルの行番号
Dim intCol As Integer 'セルの列番号
Dim r As Integer 'ループ用カウンタ

'変数を初期化

dblSum = 0
dblAvg = 0
dblMax = 0
dblMin = 0


intRow = 2 '点数データの開始位置


'点数データの列番号を判定

If ComboBox1.ListIndex = 0 Then

intCol = 2 '2013年

Else

intCol = 3 '2014年


End If


For r = 2 To 32



dblSum = dblSum + Worksheets("Sheet1").Cells(r, intCol)
intData = intData + 1
intRow = intRow + 1




’最大値

If Worksheets("Sheet1").Cells(intRow, intCol) > dblMax Then
dblMax = Worksheets("Sheet1").Cells(intRow, intCol)


End If



Next r


’最小値

If Worksheets("Sheet1").Cells(intRow, intCol) > dblMin Then
dblMin= Worksheets("Sheet1").Cells(intRow, intCol)

End If





dblAvg = dblSum / intData




End Sub
よろしくお願いします

A 回答 (1件)

http://oshiete.goo.ne.jp/qa/9830467.html
こちらと同じだと思うのですが、同じ人?
そちらで書いたものをヒントにしてください。

>dblSum = 0
>dblAvg = 0
>dblMax = 0
>dblMin = 0

最大値・最小値の初期値は、ありえない数を置いてやるのが定石です。
 dblMin = 100 , dblMax = -100

他には、Variant型で置く方法もあります。
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報