エクセルの見積書を1クリックで印刷&デスクトップに自動PDF保存するVBA(AIで作ってみた)

毎回の見積書作成

印刷ボタンを押して、さらに「名前を付けて保存」でPDFを選んで、デスクトップに新しいフォルダを作って… この作業、1回は数秒でも毎日やると本当に面倒ですよね

私のチームでも「もっと楽にならないの?」と不満が出ていました。

そこで、AIに指示を出して

「印刷と同時に、デスクトップに専用フォルダを作ってPDF保存する」

というVBAツールを作ってみました

導入した結果、

メンバーからは「こんなのが欲しかった!」と大絶賛

劇的な時短に成功しました

この記事では、そのVBAコードをそのまま公開します

難しい知識は一切不要です

エクセルにコピーして貼り付けるだけで、誰でもすぐに同じ機能が使えますよ!

Sub SaveAsPDF_to_Desktop()
    Dim ws As Worksheet
    Dim desktopPath As String
    Dim folderPath As String
    Dim fileName As String
    
    ' 現在のシートを設定
    Set ws = ActiveSheet
    
    ' デスクトップのパスを取得
    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    
    ' デスクトップに作るフォルダ名を指定(例:見積書PDF)
    folderPath = desktopPath & "\見積書PDF"
    
    ' フォルダが存在しない場合は新しく作成
    If Dir(folderPath, vbDirectory) = "" Then
        MkDir folderPath
    End If
    
    ' ファイル名をセルから取得(例:A1セルの得意先名 + B1セルの日付)
    ' ※空白の場合は「見積書_日時」にする
    If ws.Range("A1").Value <> "" Then
        fileName = ws.Range("A1").Value & "_" & Format(Now, "yyyymmdd_hhmmss") & ".pdf"
    Else
        fileName = "見積書_" & Format(Now, "yyyymmdd_hhmmss") & ".pdf"
    End If
    
    ' 印刷を実行(1部)
    ws.PrintOut Copies:=1
    
    ' PDFとして保存
    ws.ExportAsFixedFormat Type:=xlTypePDF, fileName:=folderPath & "\" & fileName, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        
    MsgBox "印刷とPDFの保存(デスクトップの見積書PDFフォルダ)が完了しました!", vbInformation, "自動化ツール"
End Sub

やり方として

1,エクセルを開いて「Alt」+「F11」キーを押し、VBAの画面を開きます。

2,上のメニューから「挿入」>「標準モジュール」をクリックします。

3,出てきた白い画面に、上のコードをそのまま貼り付けて閉じれば完成です!

コメント

タイトルとURLをコピーしました