- [問題 1]
'選択セル範囲内の可視セルを取得します。
Sub Test1()
Dim r As Range
Set r = Selection.SpecialCells(xlVisible)
If Not (r Is Nothing) Then MsgBox r.Address
End Sub
正しい
誤り
- [問題 2]
'現在の使用セル範囲の最終行番号を取得します。
Sub Test2()
Dim i As Long
i = ActiveSheet.UsedRange.Rows.Count
MsgBox i
End Sub
正しい
誤り
- [問題 3]
'A列で値が10であるセルを検索します。
Sub Test3()
Dim i As Integer
Dim r As Range
i = 10
Set r = ActiveSheet.Columns(1).Find(i)
If Not (r Is Nothing) Then MsgBox r.Address
End Sub
正しい
誤り
- [問題 4]
'時間を集計し、10:00より大きい場合にメッセージを返します。
Function Test4(range1 As Object)
Dim myTime As Date
myTime = Application.Sum(range1)
If myTime > TimeSerial(10, 0, 0) Then
Test4 = "超過"
Else
Test4 = myTime
End If
End Function
正しい
誤り
- [問題 5]
'InputBoxメソッドで数値を入力します。
Sub Test5()
Dim Ret As Variant
Ret = Application.InputBox(prompt:="数値を入力してください。", Type:=1)
If Ret = False Then
MsgBox "キャンセルされました。"
Exit Sub
End If
MsgBox Ret
End Sub
正しい
誤り
- [問題 6]
'選択セル範囲の最下行の行番号を取得します。
Sub Test6()
Dim i As Long
i = Selection.Cells(Selection.Cells.Count).Row
MsgBox i
End Sub
正しい
誤り
- [問題 7]
'Sheet1のB2:C5をコピーします。
Sub Test7()
Worksheets("Sheet1").Range(Cells(2, 2), Cells(5, 3)).Copy
End Sub
正しい
誤り
- [問題 8]
'数値データ(ただし100以上の整数)の先頭3桁の数字を返します。
Function Test8(number)
Test8 = Mid$(number, 1, 3)
End Function
正しい
誤り
- [問題 9]
'セルにファイルリストを出力します。
Sub Test9()
Dim r As Range
Dim filename As String
Set r = ActiveCell
fname = Dir$("c:\*.*")
Do While filename <> ""
r.Value = filename
Set r = r.Offset(1)
filename = Dir$()
Loop
End Sub
正しい
誤り
- [問題 10]
'選択された1つのセル範囲から、その1行目を選択解除します。
Sub Test10()
If Selection.Rows.Count > 1 Then
Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
End If
End Sub
正しい
誤り
- [問題 11]
'与えられた数値にA1の値を加算するユーザ定義ワークシート関数です。
Function Test11(i)
Application.Volatile
Test11 = i + Range("A1").Value
End Function
正しい
誤り
- [問題 12]
'アクティブセル領域のB列が10より大きい行の数を取得します。
'1行目は項目見出しです。
Sub Test12()
Dim i As Long
Dim r As Range
With ActiveSheet.Cells(1, 1).CurrentRegion
.AutoFilter Field:=2, Criteria1:=">10"
i = -1
For Each r In .SpecialCells(xlVisible).Areas
i = i + r.Rows.Count
Next
End With
MsgBox i
End Sub
正しい
誤り
- [問題 13]
'B列が今日の日付値であるデータをフィルタします。
Sub Test13()
With ActiveSheet.Cells(1, 1).CurrentRegion
.AutoFilter Field:=2, Criteria1:="=" & Date
End With
End Sub
正しい
誤り
- [問題 14]
'B列が"\-10,000"であるデータをフィルタします。
Sub Test14()
With ActiveSheet.Cells(1, 1).CurrentRegion
.AutoFilter Field:=2, Criteria1:="\-10,000"
End With
End Sub
正しい
誤り
- [問題 15]
'Text関数を使ってセル値を文字列に変換します。
Sub Test15()
Dim s As String
With ActiveSheet.Range("A1")
s = Application.Text(.Value, .NumberFormat)
End With
MsgBox s
End Sub
正しい
誤り
- [問題 16]
'A列の合計値をB1に出力します。
Sub Test16()
Dim c As Currency
Dim r As Range
For Each r In Range("A1").CurrentRegion.Columns(1).Cells
c = c + r.Value
Next
Range("B1").Value = c
End Sub
正しい
誤り
- [問題 17]
'他ブックのセルへの外部参照式を入力します。
Sub Test17()
With ThisWorkbook
Range("B1").Formula = "=" & .Path & "\[" & .Name & "]Sheet1!$A$1"
End With
End Sub
正しい
誤り
- [問題 18]
'選択セル範囲を右側にコピーします。
Sub Test18()
SendKeys "^c"
ActiveCell.Offset(0, 1).Select
SendKeys "^v"
End Sub
正しい
誤り
- [問題 19]
'A:Cのセル範囲をA列の昇順に並び替えます。
Sub Test19()
Range("A:C").SortSpecial SortMethod:=xlSyllabary, Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End Sub
正しい
誤り
- [問題 20]
'選択セル範囲の値を配列に一括代入します。
Sub Test20()
Dim a As Variant
a = Selection.Value
MsgBox "Array size: " & UBound(a, 1) & " x " & UBound(a, 2)
End Sub
正しい
誤り
解答が終了しましたら、採点ボタンをクリックしてください。
(なお、解答解説は準備中です。)