Skrypt: zapisz arkusz jako PDF i wyślij mailem
Poniższy skrypt konwertuje skoroszyt do PDF i wysyła go mailem do wskazanego odbiorcy – bez VBA, bez Power Automate, bez żadnych zewnętrznych konektorów. Czyli : office script pdf email
/**
* Ten skrypt zapisuje dane z Excela i wysyła raport mailem
*/
function main(workbook: ExcelScript.Workbook) {
// Tworzymy PDF.
const pdfObject = OfficeScript.convertToPdf();
const pdfFile = { name: "raport.pdf", content: pdfObject }; // Podaj swoją nazwę
// wysyłamy mail z pdf.
OfficeScript.sendMail({
to: "name@email.com", // Podajemy adresata.
subject: "[Demo] Monthly Sales Report", // wpisz temat maila
content: "Cześć, wysyłam raport miesięczny", // tu wpisz treść wiadomości
attachments: [pdfFile]
})
}
Ważne: OfficeScript.convertToPdf() i OfficeScript.sendMail() to metody wbudowane bezpośrednio w Office Scripts od aktualizacji ze stycznia 2026 roku. Nie potrzebujesz do tego Power Automate ani żadnego zewnętrznego łącznika – mail wysyłany jest bezpośrednio z konta Outlook osoby uruchamiającej skrypt.
Czego potrzebujesz, żeby to zadziałało
- Subskrypcji Microsoft 365 – dowolnej: biznesowej, enterprise, E1, F3, lub personal/family w wersji preview
- Excela na Windows, Mac lub w wersji web (skrypt działa na wszystkich)
- Uprawnień administratora tenanta do korzystania z Office Scripts (jeśli pracujesz w firmie – czasem ta funkcja jest domyślnie wyłączona)
Jedna pułapka, o której warto wiedzieć
convertToPdf() konwertuje tylko widoczne arkusze. Jeśli masz w skoroszycie ukryte karty pomocnicze (np. z obliczeniami czy danymi źródłowymi), PDF automatycznie je pominie – w większości przypadków to pożądane zachowanie, ale warto to sprawdzić przed wysyłką, jeśli Twój raport ma konkretną, oczekiwaną zawartość.
Jak dodać przycisk uruchamiający skrypt na arkuszu
Zamiast za każdym razem wchodzić w menu Automate i szukać skryptu na liście, możesz dodać klikalny przycisk bezpośrednio na arkuszu – wygodne rozwiązanie, jeśli z raportu korzysta ktoś mniej techniczny w zespole.
Krok 1: Zapisz skrypt
Otwórz kartę Automate → New Script, wklej powyższy kod, zamień name@email.com na docelowy adres odbiorcy, dostosuj temat i treść maila, a następnie zapisz skrypt pod czytelną nazwą (np. WyślijRaportPDF).
Krok 2: Znajdź skrypt na liście w panelu Automate
Zapisany skrypt pojawi się na liście w panelu Automate po prawej stronie ekranu.
Krok 3: Dodaj przycisk
Kliknij ikonę trzech kropek (…) obok nazwy skryptu i wybierz „Add button” (Dodaj przycisk).
Excel doda przycisk bezpośrednio na arkuszu – mały prostokąt z ikoną skryptu, który możesz swobodnie przeciągnąć w dowolne miejsce i dopasować rozmiar.
Krok 4: Gotowe – kliknij i testuj
Od teraz wystarczy, że ktoś kliknie przycisk na arkuszu, a skrypt uruchomi się automatycznie – konwersja do PDF i wysyłka maila dzieją się w tle, bez wchodzenia w żadne menu.
Ważna uwaga
Przycisk jest przypisany do konkretnego pliku. Jeśli skopiujesz arkusz do nowego skoroszytu albo wyślesz komuś kopię pliku, przycisk trzeba będzie dodać ponownie w nowym pliku – sam kod skryptu możesz jednak wkleić bez zmian.
Podsumowanie
Dzięki OfficeScript.convertToPdf() i OfficeScript.sendMail() możesz zbudować w pełni automatyczny proces raportowania – od kliknięcia przycisku na arkuszu, przez konwersję do PDF, aż po wysyłkę maila – bez ani jednej linijki VBA i bez konfigurowania Power Automate. To rozwiązanie idealne dla cyklicznych raportów (miesięcznych, tygodniowych), które regularnie trafiają do tych samych odbiorców.


