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

練習問題(1)
14 Oct., '14
実行結果が下図のように,セル"A1", "B2", …, "J10"に順に行番
号の3倍の整数を記入するように,シートが白紙状態であるブック
dr14Oct14-1.xlsmに新規モジュールを挿入して,プログラムを作成し
なさい.「Const N As Integer = 10」を必ず含めること.For
文を用いること.なお,併せて,列幅を4とすること.プロシージャ名は,
fillTripleとする.
ヒント:
1. 列幅は10列全部を変更するので,Forステートメントの中で毎列
変更をする.→ Selection.ColumnWidth = 4
2. i行目i列を表すプロパティは,Cells(i, i)である.
平成26年度都市環境学科Visualプログラミング
練習問題(1)-解答
14 Oct., '14
Sub fillTriple()
Const N As Integer = 10
Dim i As Integer
For i = 1 To N
Cells(i, i).Select
Selection.ColumnWidth = 4
Selection.Value = 3 * i
Next i
End Sub
平成26年度都市環境学科Visualプログラミング
練習問題(2)
14 Oct., '14
スライド116ページのプログラムを改良して,実行結果
が下記のようになるようにシートが白紙状態である
ブックdr14Oct14-2.xlsmに新規モジュールを挿入して,
プログラムを作成しなさい.各列幅は,4とする.水色
の背景色(Interior)のColorIndex値は20である.
プロシージャ名は,nRepetitionHorizontalとする.
Const NC As Integer = 12
Dim iC As Integer
列方向に動かすので
iR⇒iC, NR⇒NCに
変更しよう.
平成26年度都市環境学科Visualプログラミング
練習問題(2)-解答
14 Oct., '14
Sub nRepetitionHorizontal()
Const NC As Integer = 12
Dim iC As Integer
For iC = 1 To NC
Columns(iC).ColumnWidth = 4
Cells(1, iC).Value = _
iC & "月"
Next iC
For iC = 1 To NC Step 2
Cells(1, iC). _
Interior.ColorIndex = 20
Next iC
End Sub
平成26年度都市環境学科Visualプログラミング
練習問題(3)
14 Oct., '14
練習問題(2)を改良して,実行結果が下記のようになるよう
にシートが白紙状態であるブックdr14Oct14-3.xlsmに新規
モジュールを挿入しなさい.各列幅は,4とする.水色の背
景色のColorIndex値は20である.プロシージャ名は,
nRepetitionHorizontalInverseとする.
× For iC = NC To 1 Step -1
Cells(1, iC).Value = iC & "月"
Next iC
※上記のようにすれば,iCの値は,12, 11, 10, …, 2,
1と変化するが,結果は練習問題(2)と同じになってしまう!
平成26年度都市環境学科Visualプログラミング
練習問題(3)-解答
14 Oct., '14
Sub nRepetitionHorizontalInverse()
Const NC As Integer = 12
Dim iC As Integer
For iC = 1 To NC
Columns(iC).ColumnWidth = 4
Cells(1, iC).Value = _
(NC - iC + 1) & "月"
Next iC
For iC = 1 To NC Step 2
Cells(1, iC). _
Interior.ColorIndex = 20
Next iC
End Sub
平成26年度都市環境学科Visualプログラミング
練習問題(4)
14 Oct., '14
右図のように,ブックdr14Oct14-4.xlsmのセ
ル範囲"A2:A21"には,100,000未満の自
然数がランダムに並んでいる.この数値を3
で割った余りが0の場合は「グー」,1の場合
は「チョキ」,2の場合は「パー」をセル範囲
"B2:B21" (図の赤枠内)の対応する行に
表示するプログラムを作成しなさい.If~
ElseIf~Else文を用いること.プロシー
ジャ名は,fillTossとする.データ数が20で
あることは既知として良い.Integer型の
最大値は,32,767であることに注意すること.
平成26年度都市環境学科Visualプログラミング
練習問題(4)-解答
14 Oct., '14
Sub fillToss()
Const Three As Integer = 3
Const NR As Integer = 20
Dim iR As Integer
Dim num As Long
Dim remainder As Integer
Dim toss As String
For iR = 1 To NR
num = Cells(iR + 1, 1).Value
remainder = num Mod Three
If (remainder = 0) Then
toss = "グー"
ElseIf (remainder = 1) Then
toss = "チョキ"
Else
toss = "パー"
End If
Cells(iR + 1, 2).Value = toss
Next iR
End Sub
平成26年度都市環境学科Visualプログラミング