http://tirapia.html.xdomain.jp

 

プリント⑥

問1.とある果物店がある.在庫状況から以下の操作をせよ.

  • 1.
    仕入れ値が高い商品を色で識別したい.商品検索で表示された箇所について,Ifステートメントを活用して¥500を上回る商品の仕入れ値を太字・赤色・アンダーラインをつけるマクロを作成せよ.
  • 2.
    在庫の数に応じて,セルの色を塗り分けたい.商品検索で表示された箇所について,在庫が1桁の場合は赤色,2桁の場合は黄色,3桁の場合は青色となるようIfステートメントを活用したマクロを作成せよ.
  • 3.
    商品検索のセルに商品を入力した場合,在庫数が1桁に限りメッセージボックス「在庫が残り少ないです」が表示されるようCaseステートメントを活用してマクロを作成せよ.2

Private Sub Worksheet_Change(ByVal Target As Range) 'シートに変更がある場合に作動する
    If Target.Address = "$A$17" Then '変更があった場所がA17なら
        '問題1. 1
        If Val(Range("B17").Value) >= 500 Then
            Range("B17").Font.Bold = True
            Range("B17").Interior.Color = RGB(255, 0, 0)
            Range("B17").Font.Underline = xlUnderlineStyleSingle
        Else
            Range("B17").Font.Bold = False
            Range("B17").Interior.Color = RGB(255, 255, 255)
            Range("B17").Font.Underline = xlUnderlineStyleNone
        End If
        '問題1. 2
        If Val(Range("E17").Value) < 10 Then
            Range("E17").Interior.Color = RGB(255, 0, 0)
        ElseIf Val(Range("E17").Value) < 100 Then
            Range("E17").Interior.Color = RGB(255, 255, 0)
        ElseIf Val(Range("E17").Value) < 1000 Then
            Range("E17").Interior.Color = RGB(0, 0, 255)
        Else
            Range("E17").Interior.Color = RGB(255, 255, 255)
        End If
        '問題1. 3
        If Val(Range("E17").Value) < 10 Then
            MsgBox "在庫が残り少ないです"
        End If
    End If
End Sub
                    

値が入力された際に実行されるプログラムの構築には,以下の手順にて作成される環境での記述が必要である.

  • ①VBAのファイル操作ウィンドウで"Sheet1"をダブルクリックする.
  • ②プログラムウィンドウの上部のドロップダウンメニュー(左)を"(General)"から"Worksheet"に変更.
  • ③プログラムウィンドウの上部のドロップダウンメニュー(右)を"Change"に変更.

問題2.Excelシート上にあるボタンを,クリックすることで現れるインプットボックスに数値入力時にメッセージボックスを表示させるマクロを作成せよ.

  • ①Ifステートメントを用いて作成.
  • ②Case-Toステートメントを用いて作成.
  • ③Case-Ifステートメントを用いて作成.
  • インプットボックスのコメント:「前回実施した国語の得点を入力してください」
  • インプットボックスの入力値:テストの点数
  • 出力:81~100→「優です」,71~80→「良です」,60~70→「可です」,0~59→「不可です」.それ以外の値→「0~100の数字を入力してください」

Sub question6_2_1()

Dim result As Integer
result = Application.InputBox(prompt:="前回実施した国語の得点を入力してください", Type:=1)
If 80 < result And result <= 100 Then
    MsgBox "優です"
ElseIf 70 < result And result <= 80 Then
    MsgBox "良です"
ElseIf 60 <= result And result <= 70 Then
    MsgBox "可です"
ElseIf 0 <= result And result < 60 Then
    MsgBox "不可です"
Else
    MsgBox "0~100の数字を入力してください"
End If

End Sub
                    

Sub question6_2_2()

Dim result As Integer
result = Application.InputBox(prompt:="前回実施した国語の得点を入力してください", Type:=1)
Select Case result
    Case 81 To 100
        MsgBox "優です"
    Case 71 To 80
        MsgBox "良です"
    Case 60 To 70
        MsgBox "可です"
    Case 0 To 59
        MsgBox "不可です"
    Case Else
        MsgBox "0~100の数字を入力してください"
End Select

End Sub
                    

Sub question6_2_3()

Dim result As Integer
result = Application.InputBox(prompt:="前回実施した国語の得点を入力してください", Type:=1)
Select Case result
    Case Is > 100
        MsgBox "0~100の数字を入力してください"
    Case Is > 80
        MsgBox "優です"
    Case Is > 70
        MsgBox "良です"
    Case Is >= 60
        MsgBox "可です"
    Case Is >= 0
        MsgBox "不可です"
    Case Is < 0
        MsgBox "0~100の数字を入力してください"
End Select

End Sub










6-1

Sub d()

Range("b17").Select

If ActiveCell.Value > 500 Then

ActiveCell.Font.ColorIndex = 3

ActiveCell.Font.Bold = True

ActiveCell.Underline = xlUnderlineStyleSingle

End If

End Sub