sobota, 22 czerwca 2013

Trochę z innej beczki, ale może ktoś będzie potrzebował opisu instrukcji COPY z Command Line Windowsa

Dzisiaj omówimy jak używać instrukcji copy i jak używać help

Nawias kwadratowy w opisach oznacza, że cos jest opcjonalne
plus w opisach oznacza, że może być tego dowolna ilość


najprostsze wywołanie to:
copy skąd dokąd
czyli np.
copy c:\1.txt D:\2.txt
Taka komenda kopiuje plik 1.txt z dysku C. i wrzuca go pod nazwą 2.txt na dysk D:

pomoc na temat polecenia copy podaje:
Copies one or more files to another location.

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

source Specifies the file or files to be copied.
/A Indicates an ASCII text file.
/B Indicates a binary file.
/D Allow the destination file to be created decrypted destination Specifies the directory and/or filename for the new file(s).
/V Verifies that new files are written correctly.
/N Uses short filename, if available, when copying a file with a non-8dot3 name.
/Y Suppresses prompting to confirm you want to overwrite an existing destination file.
/-Y Causes prompting to confirm you want to overwrite an existing destination file.
/Z Copies networked files in restartable mode.
/L If the source is a symbolic link, copy the link to the target instead of the actual file the source link points to.

To append files, specify a single file for destination, but multiple files
for source (using wildcards or file1+file2+file3 format).

niedziela, 16 czerwca 2013

Wysyłanie maila z Excela przy użyciu VBA. cz1

Pierwszy merytoryczny post:)

Na początku muszę powiedzieć, że jest kilka sposobów wysyłania maili z poziomu VBA.

Tutaj omówimy 2:
  • Pierwszy to użycie mechanizmu Excela i domyślnego klienta pocztowego.
    Minusem tego rozwiązania jest to, że mail który wysyłamy jest zawsze z załącznikiem ( w tym załączniku jest jakiś plik Excela). I niestety nie można dodać treści maila

  • Drugim sposobem jest wywołanie odpowiedniego polecenia Windowsa za pomocą VBA.
    Tutaj niestety nie wyślemy załącznika, ale za to mamy wpływ na treść i temat
  • Sposób trzeci to użycie programu MS Outlook.
    Tym sposobem możemy zrobić wszystko, a minusem jest niestety posiadanie takowego programu.

W tym poście zajmiemy się pierwszymi dwoma

Przykład 1.
Chcemy napisać makro, który wyśle nam cały plik pod konkretny adres mailowy.

Sprawa jest prosta, wystarczy napisać:


Powyższy kod wysyła maila pod wskazany adres o temacie "Bardzo ważny plik".
Treść maila jest pusta, a w załączniku znajduje się plik w którym jest napisane makro.

Jeśli chcemy wysłać inny plik, to:

ten kod wyśle aktywny skoroszyt (plik)

a ten kod wyśle plik o nazwie Warszawa.xls pod wskazany adres:

Uwaga, aby odwołać się do skoroszytu poprzez obiekt Workbook plik musi być wcześniej otwarty, a po wysłaniu najlepiej go zamknąć.


Parametr
false
metody Close mówi, żeby nie zapisywać zmian.
true
wymusiłoby zapisanie zmian
A metoda bez argumentu sprawi, że Excel zapyta użytkownika czy zapisać zmiany.

Przykład 2.
Wysyłamy jeden arkusz na adres "jakis_adres@gmail.com"


Przyjmijmy, że arkusz do wysłania nosi nazwę kalkulator i znajduje się on w pliku Warszawa.xls który to plik jest otwarty.
W tym przypadku musimy skopiować arkusz "kalkulator" do nowego pliku.
Wysłać mailem nowy plik
zamknąć nowy plik bez zapisywania

Przykład 3.
Tak jak w przykładzie 2, ale chcemy, żeby plik nazywał się "raport.xls"

Musimy zapisać plik na dysku. (Użyję do tego katalogu C:\tmp\)
wysłać maila
skasować plik


Przykład 4

Wysyłanie maila bez załącznika

Na górze modułu umieszczamy import z biblioteki shell32.dll
Dokumentację tej funkcji możecie znaleźć tutaj ShellExecute


Korzystamy z mechanizmu, który został wymyślony w celu łatwego umieszczenia hiperłącza do wysłania maila.

%0a to kod ASCII nr 10, który umieści zrobi nam enter(linuksowy) w miejscu gdzie go urzyjemy
czyli "Nie ma załącznika" wyświetli się w drugiej linii

Zaczynamy.

Witam.
Raz dwa trzy...
raz dwa trzy..
próba posta...

Chyba działa:)

Witam wszystkich na swoim blogu o Excelu, Accessie i programowaniu w VBA.
Zobaczymy jak często uda się opublikować ambitny ( lub mniej ambitny tekst).

Kilka słów o mnie.
Na co dzień prowadzę szkolenia z programowania w VBA, JAVA, C++, Python, SCALA.
Oprócz tego piszę programy w wyżej wymienionych językach.
Zapraszam do współpracy.