| 
    
     |  | ▼どじょりん さん: 
 >1.sheet(削除一覧)の販売数欄に、台帳の在庫数が入力されている
 >  →台帳シートのA列の販売数を転記したい
 
 ごめんなさい。アップされたレイアウトをよく見ていませんでした。
 ところで、罫線ですが、元シートの罫線と同じスタイルということですか?
 とりあえず、以下は元シートの罫線が、あっても無視して、新たに、適当なものをセットしています。
 
 Private Sub CommandButton1_Click()
 Dim wkCol As Long
 Dim x As Long
 Dim y As Long
 
 If WorksheetFunction.Count(Columns("A")) = 0 Then
 MsgBox "削除すべきデータがありません"
 Exit Sub
 End If
 
 Application.ScreenUpdating = False
 
 'まず空白以外を抽出
 wkCol = Range("A2").CurrentRegion.Columns.Count + 2 '作業列番号
 Cells(1, wkCol).Value = Range("A2").Value      '販売数タイトル
 Cells(2, wkCol).Value = "<>"            '抽出条件 空白以外
 
 Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
 CriteriaRange:=Cells(1, wkCol).Resize(2), CopyToRange:=Cells(1, wkCol + 2), Unique:=False
 With Cells(1, wkCol + 2).CurrentRegion
 y = .Rows.Count - 1 '抽出データ行数
 x = .Columns.Count '一覧列数
 End With
 
 With Worksheets("削除一覧")
 .Rows(2).Resize(y).Insert
 With .Range("A2").Resize(y, x)                '★追加
 .Value = Cells(2, wkCol + 2).Resize(y, x).Value     '★変更
 .Borders.LineStyle = xlThin               '★追加
 .Borders.Weight = xlContinuous              '★追加
 End With                           '★追加
 .Range("D2").Resize(x).Value = .Range("A2").Resize(x).Value '★追加
 .Range("A2").Resize(y).Value = Date
 End With
 
 '在庫引落
 y = Range("A" & Rows.Count).End(xlUp).Row
 Range("A3:A" & y).Copy
 Range("D3").PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _
 SkipBlanks:=False, Transpose:=False
 
 Cells(1, wkCol + 2).CurrentRegion.Clear
 Cells(1, wkCol).Value = Range("D2").Value      '在庫数タイトル
 Cells(2, wkCol).Value = ">0"            '抽出条件 在庫 0
 
 Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
 CriteriaRange:=Cells(1, wkCol).Resize(2), CopyToRange:=Cells(1, wkCol + 2), Unique:=False
 
 'リスト置換え
 With Range("A2").CurrentRegion
 .Value = Cells(1, wkCol + 2).Resize(.Rows.Count, .Columns.Count).Value
 .Resize(.Rows.Count - 1, 2).Offset(1).ClearContents   '★追加
 End With
 
 Cells(1, wkCol).CurrentRegion.Clear
 Cells(1, wkCol + 2).CurrentRegion.Clear
 
 Application.ScreenUpdating = True
 
 MsgBox "処理が終わりました"
 End Sub
 
 |  |