2011年9月26日月曜日

Excel VBA課題(5)

第7章ワイン販売管理(完成).xlsをベースに,販売データの入力を終了する際に,都度「end」という文字列を入力しなくても済むようにプログラムを変更せよ.

方針:
1回分の販売データの入力が終わったタイミングでデータ入力の終了・継続を確認するダイアログを表示し,その指示に従って動作を変更するようにする.

場所:
標準モジュール→販売リスト→Sub 入力()

sample code
Sub 入力()
    Dim hiduke As String
    ActiveWindow.NewWindow
    ActiveWindow.NewWindow
    Windows.Arrange xlArrangeStyleTiled
    Windows("第7章ワイン販売管理(完成).xls:2").Activate
    Worksheets("得意先リスト").Select
    Windows("第7章ワイン販売管理(完成).xls:1").Activate
    Worksheets("商品リスト").Select
    Windows("第7章ワイン販売管理(完成).xls:3").Activate
    If Range("C6").Value = "" Then
        Range("C6").Select
    Else
        Range("C5").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
    End If
    
    Dim flag As Integer
    flag = 0
    
    Do While ActiveCell.Offset(0, -1).Value <> ""
        hiduke = InputBox("日付を入力してください")
        If hiduke = "" Then
            Exit Do
        Else
            ActiveCell.FormulaR1C1 = hiduke
            ActiveCell.Offset(0, 1).Range("A1").Select
            ActiveCell.FormulaR1C1 = InputBox("得意先コードを入力してください")
            ActiveCell.Offset(0, 2).Range("A1").Select
            ActiveCell.FormulaR1C1 = InputBox("商品コードを入力してください")
            ActiveCell.Offset(0, 4).Range("A1").Select
            ActiveCell.FormulaR1C1 = InputBox("数量を入力してください")
            ActiveCell.Offset(1, -7).Range("A1").Select
        End If
        
        flag = MsgBox("入力を終了しますか?", vbYesNo + vbQuestion, "終了確認")
        If flag = "6" Then
            Exit Do
        End If
    
    Loop
    Windows("第7章ワイン販売管理(完成).xls:2").Activate
    ActiveWindow.Close
    Windows("第7章ワイン販売管理(完成).xls:1").Activate
    ActiveWindow.Close
    ActiveWindow.WindowState = xlMaximized
End Sub

0 件のコメント: