In Microsoft Excel mi capita spesso di voler salvare il foglio su cui sto lavorando in formato PDF.
Da Excel 2010 in avanti esiste una funzione nativa per effettuare questa operazione: è sufficiente cliccare su FILE -> Esporta -> Crea documento PDF/XPS
… ma a noi non è sufficiente, vogliamo rendere la cosa ancora più immediata!
Il trucco che utilizzo di solito è il seguente:
1 – Salvo il file Excel in modo che possa contenere macro
Questo è facile.
Nella finestra di dialogo “Salva con nome”, oltre ad inserire il nome a nostra scelta, dall’elenco a discesa “Salva come:” occorrerà selezionare la voce “Cartella di lavoro con attivazione macro di Excel”
2 – Creo un nuovo modulo VBA
Occorre aprire l’editor di VBA incluso nell’installazione standard di Excel premendo contemporaneamente la combinazione di tasti Alt+F11.
Nella maschera che ci si propone selezioniamo il progetto VBA relativo alla cartella in uso e usando il tasto destro del mouse inseriamo un nuovo modulo standard:
Nel nuovo modulo così creato inseriamo il seguente codice:
Sub SalvaInPDF()
Dim ws As Worksheet
Dim strIndirizzo As String
Dim myFile As Variant
Dim strFile As String
On Error GoTo errHandler
Set ws = ActiveSheet
'apre la finestra di dialogo per il salvataggio dei file
'la cartella di default è la stessa della cartella di excel
strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
& "_" _
& Format(Now(), "yyyy-mm-dd\_hh-mm") _
& ".pdf"
strFile = ThisWorkbook.Path & "\" & strFile
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Seleziona la cartella e inserisci il nome del file da salvare")
If myFile <> False Then
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
MsgBox "Il file PDF è stato salvato."
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Non ho potuto salvare il file PDF"
Resume exitHandler
End Sub
Il codice apre la finestra di dialogo per il salvataggio, impostata in automatico sulla stessa cartella del nostro file Excel, e ci permette di dare un nome al file PDF (di default presenterà il nome del foglio di lavoro, la data e l’ora di salvataggio).
Possiamo a questo punto chiudere l’editor di VBA tornando al nostro file Excel
3 – Creo un pulsante per il salvataggio
Sul nostro foglio di Excel a questo punto inseriamo un pulsante che invierà il comando di salvataggio.
Andiamo sulla scheda SVILUPPO della barra multifunzione e, nel gruppo “Controlli” inseriamo il pulsante
Trasciniamo il mouse su un qualsiasi punto del foglio di lavoro e nella finestra di dialogo che ci si apre selezioniamo la macro che abbiamo appena creato e premiamo il pulsante “OK”
Possiamo a questo punto, se vogliamo, personalizzare il testo che appare sul pulsante premendovi sopra il tasto destro del mouse e cliccando sulla voce “Modifica testo”, indicando ad esempio “Salva in PDF”.
Ed ecco il nostro pulsante pienamente funzionante!!