Excel VBA Zapisz jako

Jeśli często korzystasz z programu Microsoft Excel, musisz użyć w nim funkcji Zapisz jako, która pozwala zapisać aktualnie otwarty skoroszyt pod inną nazwą lub w innym formacie (obsługa makr programu Excel, CSV, PDF itp.). Za pomocą tej metody możesz również zapisać plik w innym folderze. Czy można jednak używać tej samej funkcji w VBA? Odpowiedź jest absolutna Tak! Mamy również funkcję Zapisz jako w VBA, która pomaga nam wykonywać wszystkie wyżej wymienione zadania wraz z pewnymi dodatkowymi korzyściami (oczywiście automatyzacja rzeczy jest jedną z korzyści). W tym artykule przyjrzymy się różnym przykładom funkcji VBA SAVE AS.

Formuła dla funkcji Zapisz jako w Excel VBA

Spójrzmy poniżej wzoru na funkcję Zapisz jako w VBA.

Gdzie,

  • Nazwa_pliku - nazwa skoroszytu, który ma zostać zapisany.
  • FileFormat - Format pliku, w którym należy zapisać plik (np. Pdf, CSV itp.)
  • Hasło - hasło do ochrony skoroszytu (skoroszyt nie może być dostępny bez hasła)
  • WriteResPassword - Wpisz hasło rezerwacji do skoroszytu.
  • ReadOnlyRecommended - rozpoznaje, czy skoroszyt jest zapisywany w formacie tylko do odczytu, czy nie.
  • CreateBackup - określa, czy plik kopii zapasowej dla skoroszytu jest tworzony, czy nie.
  • AccessMode - rozpoznaje tryb dostępu do skoroszytu.
  • ConflictResolution - rozpoznaje konflikty, które pojawiają się, gdy skoroszyt jest udostępniany i jest używany przez więcej niż jednego użytkownika.
  • AddToMru - sprawdza, czy skoroszyt jest dodawany w ramach ostatnio używanego pliku, czy nie.
  • Lokalny - sprawdza, czy skoroszyt jest zapisany zgodnie z prawami programu Excel (język lokalny) lub zgodnie z prawami VBA (amerykański - angielski).

Cicho! Wiele argumentów, prawda? Ale co, jeśli ci powiem, wszystkie te argumenty są opcjonalne i można je pominąć podczas korzystania z funkcji VBA SAVE AS. Prawdą jest jednak, że są to argumenty, które sprawiają, że VBA SaveAs jest bardziej elastyczną funkcją w użyciu. „Wyrażenie” na początku składni jest niczym innym jak wyrażeniem, przeciwko któremu można użyć tej funkcji. Podobnie jak skoroszyt jest wyrażeniem, przeciwko któremu można użyć SaveAs.

Przykłady zapisywania pliku Excel za pomocą funkcji Zapisz jako VBA

Poniżej znajdują się różne przykłady zapisywania pliku programu Excel za pomocą funkcji VBA Save As.

Możesz pobrać ten szablon VBA Save As Excel tutaj - VBA Save As Excel Template

Przykład # 1 - Jak zapisać kopię skoroszytu pod inną nazwą?

Zobaczmy, jak możemy zapisać bieżący skoroszyt pod inną nazwą.

Wykonaj poniższe kroki, aby użyć funkcji Zapisz jako w programie Excel VBA:

Krok 1: Dodaj nowy moduł w Visual Basic Editor (VBE). Przejdź do Wstaw, a następnie wybierz Moduł.

Krok 2: Zdefiniuj nową podprocedurę, która może przechowywać makro.

Kod:

 Sub SaveAs_Ex1 () End Sub 

Krok 3: Zdefiniuj nową zmienną, która może przechowywać nazwę pliku, pod którym ma zostać zapisany plik.

Kod:

 Sub SaveAs_Ex1 () Dim newName As String End Sub 

Krok 4: Teraz użyj operatora przypisania, aby przypisać nazwę do tej zmiennej, za pomocą której można zapisać bieżący plik jako.

Kod:

 Sub SaveAs_Ex1 () Dim newName As String newName = "Example1" End Sub 

Krok 5: Teraz użyj funkcji SaveAs z argumentem FileName, aby zapisać plik o nazwie „Przykład1”.

Kod:

 Sub SaveAs_Ex1 () Dim newName As String newName = "Przykład1" ActiveWorkbook.SaveAs Nazwa pliku: = newName End Sub 

Krok 6: To jest to, teraz uruchom ten kod, naciskając F5 lub ręcznie za pomocą przycisku Uruchom i zobacz wynik.

Widać, że plik o nazwie „ Przykład1 ” jest zapisywany w Dokumentach .

Jeśli mogłeś to zanotować, plik jest zapisywany jako plik z włączoną obsługą makr, ponieważ oryginalny plik, na którym użyłem funkcji SaveAs, jest plikiem z włączoną obsługą makr. Oznacza to, że ta funkcja w VBA automatycznie sprawdza format poprzedniego pliku i zapisuje go w tym samym formacie. Domyślnie plik zostanie zapisany w Dokumentach na tym komputerze . Ta domyślna lokalizacja może być podana jawnie w momencie definiowania nazwy arkusza.

Przykład 2 - Zapisywanie skoroszytu z nazwą podaną przez użytkownika

Czy zamiast wstępnie zdefiniować nazwę, można napisać kod, który pozwala użytkownikowi zapisać arkusz roboczy pod wybraną przez siebie nazwą taką samą, jak funkcja Excel Save As?

Wykonaj poniższe kroki, aby użyć funkcji Zapisz jako w programie Excel VBA.

Krok 1: Zdefiniuj nową podprocedurę w ramach nowo wstawionego modułu, który może przechowywać makro.

Kod:

 Sub SaveAs_Ex2 () End Sub 

Krok 2: Zdefiniuj nową zmienną, która może przechowywać wartość nazwy zdefiniowanej przez użytkownika.

Kod:

 Sub ZapiszAs_Ex2 () Dim nazwa arkusza kalkulacyjnego jako wariant zakończenia Sub 

Ponieważ zmienna ta jest definiowana jako Wariant, ten typ danych sprawia, że ​​konwencje nazewnictwa są wszechstronne. Na przykład użytkownik może dodać dodatkowy znak specjalny (dozwolony w konwencjach nazewnictwa) lub może również dodać daty pod nazwą pliku.

Krok 3: Teraz, przy pomocy operatora przypisania i kombinacji funkcji o nazwie application.GetSaveAsFilename, wykonaj instrukcję, która pozwoli systemowi przyjąć nazwę zdefiniowaną przez użytkownika. Zobacz, jak udało się to osiągnąć na zrzucie ekranu poniżej.

Kod:

 Sub ZapiszAs_Ex2 () Dim nazwa arkusza kalkulacyjnego jako wariantowa nazwa arkusza kalkulacyjnego = Application.GetSaveAsFilename End Sub 

Krok 4: Użyj warunkowego JEŻELI, aby upewnić się, że nazwa wprowadzana przez użytkownika jest poprawna zgodnie z konwencjami nazewnictwa.

Kod:

 Sub ZapiszAs_Ex2 () Dim Nazwa arkusza kalkulacyjnego jako wariant Nazwa arkusza kalkulacyjnego = Application.GetSaveAsFilename Jeśli nazwa arkusza kalkulacyjnego False to koniec Sub 

Ten warunek sprawdza, czy nazwa podana przez użytkownika w celu zapisania arkusza roboczego prawidłowo spełnia konwencje nazewnictwa ustawione dla nazewnictwa pliku, czy nie.

Krok 5: Zapisz oświadczenie, które zostanie ocenione pod kątem danego warunku JEŻELI.

Kod:

 Sub ZapiszAs_Ex2 () Dim Nazwa arkusza kalkulacyjnego jako wariant Nazwa arkusza kalkulacyjnego = Application.GetSaveAsFilename Jeśli nazwa arkusza kalkulacyjnego False Następnie ActiveWorkbook.SaveAs Nazwa pliku: = Arkusz kalkulacyjny End Sub 

Ten fragment kodu jest oceniany, gdy warunek JEŻELI jest spełniony. Jeśli tak, aktywny skoroszyt zostanie zapisany pod nazwą zdefiniuj w zmiennej Spreadsheet_Name (która zostanie zdefiniowana przez użytkownika)

Krok 6: Zakończ pętlę IF i uruchom ten kod, aby wyświetlić dane wyjściowe.

Kod:

 Sub ZapiszAs_Ex2 () Dim Nazwa arkusza kalkulacyjnego jako wariant Nazwa arkusza kalkulacyjnego = Application.GetSaveAsFilename Jeśli nazwa arkusza kalkulacyjnego False Następnie ActiveWorkbook.SaveAs Nazwa pliku: = Nazwa arkusza kalkulacyjnego End If End Sub 

Krok 7: Jak tylko uruchomisz ten kod, pojawi się okno dialogowe Zapisz jako, które pozwoli Ci wpisać wybraną nazwę i zapisać plik.

Przykład # 3 - Jak zapisać jako plik do pliku PDF za pomocą funkcji Excel VBA SaveAs?

Załóżmy, że masz dane podane poniżej w arkuszu programu Excel i musisz je przekonwertować na format PDF.

Wykonaj poniższe kroki, aby przekonwertować ten plik do formatu PDF za pomocą funkcji VBA Save As:

Krok 1: Zdefiniuj nową podprocedurę do przechowywania makra.

Kod:

 Sub SaveAs_PDF_Ex3 () End Sub 

Krok 2: Teraz użyj następującego kodu, aby zapisać ten plik jako plik PDF.

Kod:

 Sub SaveAs_PDF_Ex3 () ActiveSheet.SaveAs Nazwa pliku: = "Vba Save as.pdf" End Sub 

Krok 3: Uruchom ten kod, a zobaczysz plik pdf wygenerowany w obszarze Ten komputer> Dokumenty.

W tym kodzie ActiveSheet.SaveAs umożliwia zapisanie pliku o tej samej nazwie. Ponieważ dodaliśmy rozszerzenie jako .pdf na końcu pliku, zostaje ono wyeksportowane do pliku PDF. Możesz zobaczyć obraz powyżej w celach informacyjnych.

Rzeczy do zapamiętania

  • Domyślną lokalizacją zapisu pliku używanego w VBA SaveAs będzie Ten komputer> Dokumenty. Możesz jednak określić katalog ręcznie podczas definiowania nazwy pliku.
  • Domyślnie plik zapisany przy użyciu VBA SaveAs zostanie zapisany w takim samym formacie jak oryginalny plik. Można go jednak również zdefiniować zgodnie z wymaganiami użytkownika w momencie definiowania zmiennej.

Polecane artykuły

To jest przewodnik po VBA Save As. Tutaj omawiamy, jak zapisać plik za pomocą funkcji Excel VBA Save As wraz z przykładem i szablonem Excel do pobrania. Poniżej znajduje się kilka przydatnych artykułów Excela związanych z VBA -

  1. VBA Exit Sub
  2. Utwórz arkusz kalkulacyjny w programie Excel
  3. Obiekt VBA
  4. Excel Autozapis

Kategoria: