練習問題(1) - Visualプログラミング

練習問題(1)
28 Oct., '14
ブックdr28Oct14-1.xlsmのセル範囲“B2:B14”に
は,浮動小数点型の数値が13個並んでいる.最
初の数値は2行目に書かれていることは既知とし
て良いが,データの個数は未知とする.セル
"B2"から順にデータを読み込み,空白のセルが
データの終了であると判断して,これらのデータ
の個数,合計および平均値を後二者は小数第3
位を四捨五入して小数点以下2桁まで,最終
データの次の行から順に(この場合,セル範囲
"B15:B17"の図の赤枠内に) 書き出すプログラ
ムを作成しなさい.データの個数が増減してもプ
ログラムを修正しないで,そのまま実行ができる
こと.プロシージャ名はsumAverageとする.
平成26年度都市環境学科Visualプログラミング
練習問題(1)-解答
28 Oct., '14
Sub sumAverage()
Dim num As Double
Dim sum As Double
Dim nR As Integer
nR = 0
sum = 0
Do Until (Cells(nR + 2, 2).Value = "")
nR = nR + 1
num = Cells(nR + 1, 2).Value
sum = sum + num
Loop
Cells(nR + 2, 2) = nR
Cells(nR + 3, 2) = Round(sum, 2)
Cells(nR + 4, 2) = Round(sum / nR, 2)
End Sub
平成26年度都市環境学科Visualプログラミング
練習問題(2)
28 Oct., '14
最初の2項が f1 0, f 2 1 で
あって,かつ f n f n 2 f n 1 で表
される数列をフィボナッチ
(Fibonacci)数列という.あらかじ
め,dr12Nov13-2.xlsmのセル
"A1"に f1 0 を,セル"A2"に
f 2 1 の値を初期値として与え
てあり,第3項目以降を f n 1000
となる直前まで,次々とB列の3
行目以下(図の赤枠内)に書き出
すプログラムを作りなさい.プロ
シージャ名は,fibonacciとする.
平成26年度都市環境学科Visualプログラミング
練習問題(2)-解答
28 Oct., '14
Sub fibonacci()
Dim f As Integer
Dim iR As Integer
iR = 2
Do
f = Cells(iR - 1, 2) + Cells(iR, 2)
iR = iR + 1
If (f < 1000) Then
Cells(iR, 2) = f
End If
Loop While (f < 1000)
End Sub
Sub fibonacci2()
Dim f As Integer
Dim iR As Integer
iR = 2
f = Cells(iR - 1, 2) + Cells(iR, 2)
Do While (f < 1000)
iR = iR + 1
Cells(iR, 2) = f
f = Cells(iR - 1, 2) + Cells(iR, 2)
Loop
End Sub
別解
平成26年度都市環境学科Visualプログラミング
練習問題(3)
28 Oct., '14
ブックdr28Oct14-3.xlsmのセ
ル範囲"B1:B20"(図の赤
枠内)には,すべて何らかの
文字列が記されている.こ
れらの文字列のうち,数値
情報のみの合計をセル
"B21"のに書き出すプログ
ラムを作成しなさい.ただし,
数値に変換できない情報に
ついては,その文字列の色
を赤くしなさい.プロシー
ジャ名は,isNumberとする.
平成26年度都市環境学科Visualプログラミング
29
練習問題(3)-解答
28 Oct., '14
Sub sumNumber()
Const NR As Integer = 20
Dim iR As Integer
Dim vv As Variant
Dim sum As Double
sum = 0
For iR = 1 To NR
vv = Cells(iR, 2).Value
If (IsNumeric(vv)) Then
sum = sum + Val(vv)
Else
Cells(iR, 2).Font _
.ColorIndex = 3
End If
Next iR
Cells(NR + 1, 2).Value = sum
End Sub
平成26年度都市環境学科Visualプログラミング
30
練習問題(4)
28 Oct., '14
ブックdr12Nov13-3.xlsmに,下記の指示にした
がって,右図のとおりの表示をさせるプログラム
を作成しなさい.プロシージャ名はformatとする.
(1) A列の列幅を25とする.
(2) Double型の変数numに円周率の値を記憶
させ,セル範囲"A1:A4"に表示させる.
(3) セル"A2"を常に小数第20位まで表示させ
る.
(4) セル"A3"を末尾のゼロを除いて,小数第
20位までの範囲を表示させる.
(5) セル"A4"を,仮数部を小数第15位まで浮
動小数点形式で表示させる.
(6)変数numを,小数第3位で四捨五入し,その
値をセル範囲"A5:A6"に表示させる.
(7) セル"A6"を常に小数第20位まで表示させ
る.
平成26年度都市環境学科Visualプログラミング
練習問題(4)-解答
28 Oct., '14
Sub format()
Dim num As Double
num = 4 * Atn(1)
Columns(1).ColumnWidth = 25
Range("A1") = num
Range("A2") = num
Range("A2").NumberFormatLocal = _
"0.00000000000000000000"
Range("A3") = num
Range("A3").NumberFormatLocal = _
"0.####################"
Range("A4") = num
Range("A4").NumberFormatLocal = _
"0.000000000000000e+00"
num = Round(num, 2)
Range("A5") = num
Range("A6") = num
Range("A6").NumberFormatLocal = _
"0.00000000000000000000"
End Sub
平成26年度都市環境学科Visualプログラミング