hiko-blog

VBA業務改善

MENU

販売利益データ編集 + PDF保存

Option Explicit
Sub sheet初期化()
    Columns("A:H").Select
    Selection.ClearContents
    Range("A1").Select
End Sub

Sub 売上編集結果()
'出品した商品 販売利益データのデータから編集
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim targetRow As Long
    
    '編集結果シート初期化
    Sheets("編集結果.").Select
    Rows("2:2").Select
    Selection.Delete Shift:=xlUp
    
    ' データが格納されているシートを設定
    Set sourceSheet = ThisWorkbook.Sheets("Data.")
    ' 編集結果を格納するシートを設定
    Set targetSheet = ThisWorkbook.Sheets("編集結果.")
    
    ' 最終行を取得
    lastRow = sourceSheet.Cells(sourceSheet.Rows.Count, 1).End(xlUp).Row
    ' 転記先の最初の行を設定
    targetRow = 2
    
    ' ループを使用して商品名2と金額を別シートに転記
    For i = 1 To lastRow Step 3
        If sourceSheet.Cells(i, 1).Value <> "" And sourceSheet.Cells(i + 1, 1).Value <> "" Then
              
           ' 商品名2を編集結果のシートに転記
            targetSheet.Cells(targetRow, 1).Value = sourceSheet.Cells(i + 1, 1).Value ' 商品名2を転記
        Dim R As Long 'Dataシートの列 A1~H8
        For R = 2 To 9
            targetSheet.Cells(targetRow, R).Value = sourceSheet.Cells(i + 2, R - 1).Value ' 金額を転記
        Next R
    
            targetRow = targetRow + 1 ' 転記先の行を更新
        End If
    Next i
    
    ' 販売利益の合計を編集結果シートに挿入
    targetSheet.Cells(targetRow, 1).Value = "販売利益の合計"
    targetSheet.Cells(targetRow, 7).Value = WorksheetFunction.Sum(Range("G2:G" & targetRow))
    Range("A1").Select
End Sub

Sub PDF保存()
    Dim targetSheet As Worksheet
    Dim pdfFilePath As String
    Dim currentDate As String

    ' 編集結果のシートを設定
    Set targetSheet = ThisWorkbook.Sheets("編集結果.")
    
    ' 現在の日付を取得
    currentDate = Format(Date, "YYYYMMDD") ' 日付フォーマットを設定して取得
    
    ' PDFの保存先ファイルパスを指定(拡張子 .pdf を含む)
    pdfFilePath = "D:\Mercari\Save\メルカリ売上_" & currentDate & ".pdf" ' ファイル名に日付を組み込む
    
    ' 編集結果のシートをPDFに印刷
    targetSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=pdfFilePath, Quality:=xlQualityStandard
    
    ' メッセージボックスを表示して保存が完了したことを通知
    MsgBox "PDFが保存されました。", vbInformation
End Sub