2011年9月12日月曜日

Excel VBA課題(2)

20110907の課題で作成したVBAをベースとして,「商品ID」「会員ID」を入力し、保有ポイントを使用した場合の支払金額と併せて,ポイントを使用しない場合の支払金額付与ポイント数を表示する.

※用意するExcelのシートは3つ「商品」「会員」「入力」
※1ポイント=1円換算※ポイント使用時は、ポイントは付与されない.


※会員種別として,通常会員/ゴールド会員の2つの区分を用意する.
※ゴールド会員は通常会員と比べて付与ポイント数が2倍とする.


sample code
Sub point()

    '1.ワークシート「入力」に入力された文字列を取得
    Dim syouhin As Integer
    syouhin = Worksheets("入力").Range("B1").Value
    
    Dim kaiin As Integer
    kaiin = Worksheets("入力").Range("B2").Value
    
    '2.取得した「商品ID」から「価格」と「ポイント付与率」を取得
    Dim kakaku As Long
    Dim fuyoritsu As Integer
    
    Worksheets("商品").Select
    Worksheets("商品").Range("A2").Select
    
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = syouhin Then
            kakaku = ActiveCell.Offset(0, 2).Value
            fuyoritsu = ActiveCell.Offset(0, 3).Value
        End If
        'MsgBox "価格:" & kakaku & "、ポイント付与率" & fuyoritsu
        ActiveCell.Offset(1, 0).Select
    Loop
    
    '3.取得した「会員ID」から「保有ポイント数」と「会員種別」を取得
    Dim point As Long
    Dim syubetsu As Variant
    
    Worksheets("会員").Select
    Worksheets("会員").Range("A2").Select
    
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = kaiin Then
            point = ActiveCell.Offset(0, 2).Value
            syubetsu = ActiveCell.Offset(0, 3).Value
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    
    '4.取得した「価格」と「保有ポイント数」から「支払金額」を表示
    Dim kingaku As Long
    Worksheets("入力").Select
    kingaku = kakaku - point
    Worksheets("入力").Range("B4").Value = kingaku
    
    Worksheets("入力").Range("B6").Value = kakaku
    If syubetsu = "ゴールド" Then
        fuyoritsu = fuyoritsu * 2
    End If
    Worksheets("入力").Range("B7").Value = kakaku * fuyoritsu / 100
End Sub

download

0 件のコメント: