dポイントプレゼントキャンペーン実施中!

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

【問題】

札幌市の過去の気象データ検索より2014年5月の日ごとの平均気温および、札幌市の2015年5月の日ごとの平均気温のデータを入手してSheet1に表を作成した。
A列には日、B列には2014年5月のデータ、C列には2015年5月のデータを入力すること。
(正確なデータではないですが例として、添付しました。)


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

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

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

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

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

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

この2番目の最高気温、最低気温、平均気温の表示の部分がわかりません。
For ~ Next文を使って作りたいと思っています。
よろしくお願いします

「VBAの問題がわからないのでどなたかご教」の質問画像

A 回答 (3件)

たまたま、別件で同様の質問があったついでに、こちらも解いてみました。



この質問自体を検証してみましたが、ご質問者さんが、まだ良く整理されていないようです。
教えてもよく分からないのではないかという懸念が沸き起こります。

2014年5月のデータの始まりが、B3
2015年5月のデータの始まりが、C3
と縦のデータとします。

以下にはクリアボタンがありません。その代わりとして、vMin =100, vMax =-100にしてあります。実際は、関数で処理するのが常套手段です。

'//UserForm モジュール
Private Sub UserForm_Initialize()
 Worksheets("Sheet1").Activate
 Me.ComboBox1.List() = Array("2014", "2015")
End Sub

Private Sub CommandButton1_Click()
 Dim sh1 As Worksheet
 Dim Avg As Double
 Dim vMax As Double
 Dim vMin As Double
 Dim vTotal As Double
 Dim x As Long
 Dim st As Long
 vMin = 100
 vMax = -100
 Avg = 0
 x = ComboBox1.ListIndex + 1
 If x = 0 Then Exit Sub
 cnt = Val(Cells(Rows.Count, 1).End(xlUp).Value) '31
 st = 2 'スタート
  For i = 1 To cnt
   If vMax < Cells(i + st, x + 1).Value Then
    vMax = Cells(i + st, x + 1).Value
   End If
   If vMin > Cells(i + st, x + 1).Value Then
    vMin = Cells(i + st, x + 1).Value
   End If
   vTotal = vTotal + Cells(i + st, x + 1).Value
  Next
  Avg = vTotal / cnt
  Label1.Caption = Format(Avg, "##0.0")
  Label2.Caption = Format(vMax, "##0.0")
  Label3.Caption = Format(vMin, "##0.0")
End Sub
    • good
    • 0

No.1 の訂正



リンクがうまく出来ないようなので以下のリンク先の「都道府県 選択」で「石狩」を選んで、その中の「札幌」を選んで「年」「月」を選んで「2014年5月の日ごとの値を表示
」を選んで表示してください。申し訳ございませんでした。
http://www.data.jma.go.jp/obd/stats/etrn/index.p …
    • good
    • 0

回答ではありません



そもそも平均気温からは「最高気温」「最低気温」は出せませんが良いのですか?
例えば以下は札幌の2014年5月データです。
http://www.data.jma.go.jp/obd/stats/etrn/view/da …
平均気温の欄をいくら見ても最低気温や最高気温と一致するものが無いと思うのですが…
また逆に最低気温と最高気温からも平均気温は出せません。
    • good
    • 0

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