Centrum skryptów - Microsoft offce

Jak dodać obraz tła do arkusza programu Excel?

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.

Jak dodać obraz tła do arkusza programu Excel?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Jak dodać obraz tła do arkusza programu Excel?

-- GA

Cześć Skrypciarze! Odpowiedź

Cześć, GA. Nie wiem czy już o tym pisałem, ale po podróży do Włoch zacząłem poważnie rozmyślać nad swoimi nawykami żywieniowymi i postanowiłem zmienić to i owo. Codziennie rano pałaszuję więc cały pojemniczek zdrowego jogurtu odtłuszczonego tuż przed porannym pączkiem (jest dowiedzione przecież, że jogurty zwalczają ryzyko utycia po pączku). Dziś jednak stwierdziłem, że czas leczyć się chyba na głowę, nie na opasłe brzuszysko, ponieważ po otwarciu jogurtu moim oczom ukazał się następujący napis: Spożyć przed (teraz zostawię odstęp, taki odstęp ponoć zawsze buduje napięcie w czytelniku):

06-4902

No i kompletnie zgłupiałem... nie wiem zupełnie, jak to zinterpretować. Bo na gołe oko widać, że zakupiony przeze mnie produkt musi zostać spożyty jeszcze przed...no właśnie... rokiem 4902? Zostaje mi więc dokładnie 2 895 lat na spożycie tego odtłuszczonego cuda. Jogurt ważny przez 2 895 lat? Bezcenne.

Nie będę się nad tym jednak zastanawiał zbyt długo, bo GA dał mi pod rozwagę znacznie ciekawszą kwestię, mianowicie dodawanie tła do arkusza programu Excel. Po przemyśleniu wpadłem na poniższe:

Uwaga: Możemy zagwarantować, ze powyższy skrypt ma przynajmniej 2 895-letni termin przydatności do spożycia (użycia?). Kolejny raz więc to samo pytanie możesz zadać mi, GA, dopiero po 4902.

W sumie to dość fajne pytanie, bo nie zdawaliśmy sobie nawet sprawy, że można umieścić takie tło w arkuszu programu Excel. Wiedzieliśmy natomiast, że tło takie można dodać do wykresu. Fakt, że można to zrobić również z arkuszem zadziwił nas tak samo jak data przydatności do spożycia mojego jogurtu. Jeszcze bardziej jednak zszokował nas fakt, że aby to zrobić, wystarczy zaledwie kilka wierszy kodu.

Zaczynamy więc od utworzenia wystąpienia obiektu Excel.Application i ustawiamy jego właściwość Visible na True; Uzyskujemy tym samym uruchomione i widoczne na ekranie wystąpienie programu Microsoft Excel. Następnie używamy poniższych wierszy kodu, aby dodać nowy skoroszyt do wystąpienia Excel i łączymy go z pierwszym arkuszem w skoroszycie:

Od tego momentu wstawienie obrazu tła to betka nad betkami. Wystarczy przywołać metodę SetBackgroundPicture, podając jako jedyny parametr ścieżkę do pożądanego pliku z obrazem.

Wystarczy tylko tyle? No w sumie, bez owijania w bawełnę, wystarczy:

Przypominamy, że tym sposobem umieścimy żądany obrazek jako tło arkusza. Jeżeli jednak chcemy wkleić jakiś obraz do arkusza, nie czyniąc go tłem, używamy następującego kodu:

Odnosimy się tu do kolekcji Pictures i wywołujemy metodę Insert; która dodaje plik z obrazem (C:\Scripts\Test.jpg) do arkusza. Zgodnie z ustawieniami domyślnymi, lewy górny róg naszego obrazu zostaje umieszczony w komórce A1. Można to oczywiście zmieniać. Jeżeli będziemy mieli kaprys umieścić lewy górny róg naszego obrazu w komórce B10, poniższy skrypt robi to za nas, uaktywniając najpierw komórkę B10 (objExcel.Range("B10").Activate), a następnie wklejając obrazek:

Office Excel 2007: Skrypt będzie oczywiście działał równie dobrze w programie Excel 2007. Jedyną różnicą jest to, że aktywna komórka nie wpływa na pozycję grafiki. Poprzedni skrypt, w którym ustawiono B10 jako komórkę aktywną, sprawi tylko, że komórka B10 zostanie uaktywniona. Pozycja grafiki będzie taka sama, jak w przypadku, gdy aktywna była komórka A1. Jeżeli chcemy żeby nasza grafika była w jakimś konkretnym miejscu, musimy posłużyć się metodą AddPicture obiektu Shapes:

Pierwszym parametrem w AddPicture jest oczywiście ścieżka obrazu. Drugi i trzeci parametr określa nam położenie obrazu, ostatni zaś, w tym przypadku 0,0,100,200 – to po prostu współrzędne, w obrębie których obraz zostanie umieszczony oraz jego rozmiar. Więcej informacji na ten temat znajdziecie na Excel Developer Reference (j.ang.).

Powinno chyba wystarczyć, GA, napisałem więcej niż to, o co pytałeś. Pamiętaj tylko, żeby sprawdzić, czy nie zajdzie tu jakaś zmiana w roku 4092, bo Excel 4092 może wnieść jakieś zmiany. Teraz muszę już kończyć, bo za kilka minut mój pączek straci swoją przydatność do spożycia...

 Do początku strony Do początku strony

Centrum skryptów - Microsoft offce