Centrum skryptów - Microsoft Office

Czy można ustawić program Excel w taki sposób, aby pliki były automatycznie zapisywane co 5 minut?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Czy można ustawić program Excel w taki sposób, aby pliki były automatycznie zapisywane co 5 minut?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Czy można ustawić program Excel w taki sposób, aby pliki były automatycznie zapisywane co 5 minut?

-- KK

Cześć Skrypciarze! Odpowiedź

Cześć, KK. Wiesz co, to dobre pytanie. Jak się okazuje… Ale moment! Trzeba mieć priorytety. Właśnie zaczyna się Zimowa Olimpiada Skrypciarska 2007 (j. ang.); do biegu-gotowi-start! Któż to widział, w taki dzień czytać artykuły Skrypciarzy! Przypominamy, że Olimpiada to wyjątkowa szansa, by stanąć do współzawodnictwa z autorami skryptów z całego świata. Taka okazja trafia się tylko raz do roku. Poza tym, za samo czytanie Skrypciarzy nie dostaje się laleczek doktora Scripto (j. ang.).

Ale zapewne Ty, KK, jesteś jedną z osób, które ukończyły już wszystkie konkurencje. W zeszłym roku, podczas pierwszej w historii Olimpiady Skrypciarskiej, martwiliśmy się o to, że konkurencje są zbyt trudne i przeznaczyliśmy na nie zbyt mało czasu. Okazało się jednak, że nie było się o co martwić – już po kilku godzinach od rozpoczęcia igrzysk otrzymaliśmy ponad 300 pełnych, prawidłowych rozwiązań. I niewątpliwie wielu z Was pisało swoje skrypty z palcem w uchu.

Tak więc nie przejmujemy się: skoro mimo Olimpiady trzeba konfigurować program Excel, nie ma na co czekać:

Set objExcel = CreateObject("Excel.Application")



objExcel.AutoRecover.Enabled = True

objExcel.AutoRecover.Time = 5

Jak widać, skrypt jest bardzo prosty nawet jak na Skrypciarzy (którzy, przypomnijmy, uważali zeszłoroczną Olimpiadę Skrypciarską za supertrudną). Na początek tworzymy wystąpienie obiektu Excel.Application. W naszym skrypcie nie bawimy się w ustawianie właściwości Visible na True. Dlaczego? Otóż konfigurowanie częstości autozapisu zajmie tylko chwilę; głupio byłoby wyświetlić Excel jedynie po to, by od razu zniknął. Jeśli jednak komuś zależy na tym, żeby zobaczyć okno Excel, wystarczy dodać poniższy kod jako drugi wiersz skryptu:

objExcel.Visible = true

Po utworzeniu wystąpienia programu Excel konfigurujemy wartości dwóch właściwości. Najpierw ustawiamy wartość AutoRecover.Enabled na True; upewniamy się w ten sposób, że autozapis będzie włączony. Czy można w taki sam sposób wyłączyć autozapis? Jasne. Wystarczy ustawić właściwość Autorecover.Enabled na False:

objExcel.AutoRecover.Enabled = False

Teraz ustawiamy wartość właściwości AutoRecover.Time na 5, co rzecz jasna sprawia, że pliki będą zapisywane co pięć minut. Co zrobić, aby włączyć automatyczne zapisywanie co 20 minut? Żaden problem – wystarczy użyć tego kodu:

objExcel.AutoRecover.Time = 20

To już właściwie koniec skryptu. Nie musimy nawet wywoływać metody Quit aby zamknąć Excel, a to dlatego, że nie otwieraliśmy w nim żadnego zeszytu. W takim wypadku Excel automatycznie zamyka się po zakończeniu działania skryptu.

Przy okazji – gdybyśmy chcieli sprawdzić, czy skrypt zadziałał, moglibyśmy zrobić to za pomocą poniższego kodu. Pobiera on wartości właściwości Enabled, Time i AutoRecover.Path:

Set objExcel = CreateObject("Excel.Application")



Wscript.Echo "AutoRecover enabled: " & objExcel.AutoRecover.Enabled

Wscript.Echo "AutoRecover interval: " & objExcel.AutoRecover.Time

Wscript.Echo "AutoRecover path: " & objExcel.AutoRecover.Path

Informacje podawane są w takiej postaci:

AutoRecover enabled: True

AutoRecover interval: 10

AutoRecover path: C:\Documents and Settings\kenmyer\Application Data\Microsoft\Excel\

Mamy nadzieję, że to pomoże, KK. Mamy też nadzieję, że ujrzymy Cię jeszcze na Olimpiadzie. Olimpiada jest fajna, współzawodnictwo jest fajne i nagrody są fajne. Tak naprawdę nie ma powodu, aby nie wziąć w niej udziału.

 Do początku strony Do początku strony

Centrum skryptów - Microsoft Office