|
コードは次の通りです。
出力するシートを表示した状態でフォームをShowしてください。
'↓フォームの初期化イベント
Private Sub UserForm_Initialize()
Dim ActiveSheetName As String
Dim LastRow As Long
Dim ItemList As Variant
ActiveSheetName = ActiveSheet.Name
Application.ScreenUpdating = False
Worksheets("商品リスト").Select
ListBox1.ColumnCount = 2
LastRow = Cells(65536, 1).End(xlUp).Row
ItemList = Range(Cells(2, 1), Cells(LastRow, 2))
ListBox1.List = ItemList
Worksheets(ActiveSheetName).Select
Application.ScreenUpdating = True
End Sub
'↓「追加」ボタンの処理
Private Sub CommandButton追加_Click()
Dim lngSign As Long
lngSign = IIf(CheckBox1.Value, -1, 1)
With ListBox1
If .ListIndex = -1 Then Exit Sub
If CheckBox1.Value And Not (WorksheetFunction.SumIf(Columns(1), .Value, Columns(2)) > 0) Then Exit Sub
Cells(65536, 1).End(xlUp).Offset(1).Resize(, 2).Value _
= Array(.Value, .List(.ListIndex, 1) * lngSign)
End With
End Sub
質問されている内容の直接の回答ではないので、発言にしておきます。
(それ以前にもうここは見てないのかな?)
|
|