Excel Programowanie dla profesjonalistów

background image

Excel. Programowanie dla
profesjonalistów. Wydanie II

Autorzy:

Rob Bovey

, Dennis Wallentin,

Stephen Bullen

,

John Green

T³umaczenie: Robert Górczyñski
ISBN: 978-83-246-2544-4
Tytu³ orygina³u:

Professional Excel Development:

The Definitive Guide to Developing Applications Using
Microsoft Excel, VBA, and .NET (2nd Edition)

Format: 172

×245, stron: 1096

Kompendium wiedzy dla programistów Excela!

• Jak wykorzystaæ nowy interfejs Excela 2007?
• Jak sterowaæ innymi aplikacjami z pakietu Microsoft Office?
• Jak u¿ywaæ Windows API?

Dziêki ksi¹¿ce „Excel. Programowanie dla profesjonalistów. Wydanie II” poznasz tajniki
tworzenia aplikacji opartych o Microsoft Excel. Naukê rozpoczniesz od poznania architektury
takich aplikacji. Poznasz te¿ zestaw najlepszych praktyk w programowaniu w VBA.
W kolejnych rozdzia³ach przyswoisz wiedzê na temat projektowania arkuszy, weryfikacji
danych, sterowania paskami poleceñ oraz wspó³pracy z interfejsem typu wst¹¿ka (ang.
Ribbon). Ponadto zdobêdziesz informacje na temat wykorzystania Windows API, obs³ugi
b³êdów, programowania baz danych oraz optymalizacji aplikacji. Wœród wielu innych
zagadnieñ omawianych w tej ksi¹¿ce warto tak¿e zwróciæ uwagê na takie, jak wspó³praca
z us³ugami sieciowymi, sterowanie innymi aplikacjami z pakietu Microsoft Office oraz
techniki przetwarzania danych. Ksi¹¿ka stanowi kompendium wiedzy na temat programowania
w œrodowisku Microsoft Excel, a o jej jakoœci merytorycznej œwiadczy fakt, i¿ trójka jej
autorów zosta³a wyró¿niona przez firmê Microsoft tytu³em MVP (Most Valuable Professional).

• Architektura aplikacji opartych o Microsoft Excel
• Najlepsze praktyki tworzenia aplikacji w Excelu i VBA
• Zasady projektowania arkuszy
• U¿ywanie stylów, nazw zdefiniowanych, formatowañ warunkowych
• Wykorzystanie kontrolek i zastosowanie dodatków funkcyjnych
• U¿ycie modu³ów klas do tworzenia obiektów
• Zarz¹dzanie paskiem poleceñ
• Praca z plikami XML
• Wykorzystanie mo¿liwoœci nowego interfejsu Excela 2007
• U¿ycie Windows API
• Tworzenie formularzy
• Zastosowanie interfejsów oraz ponowne wykorzystanie kodu
• Sytuacje wyj¹tkowe – obs³uga b³êdów
• Debugowanie i optymalizacja kodu VBA
• Zastosowanie asercji
• Wspó³praca z bazami danych i techniki przetwarzania danych
• Tworzenie zaawansowanych wykresów
• Sterowanie innymi aplikacjami z pakietu Microsoft Office
• Wykorzystanie jêzyka VB.NET
• Mo¿liwoœci narzêdzia Visual Studio Tools for Office System

Wykorzystaj Excel jako fundament efektywnych rozwi¹zañ!

background image

S

PIS TRECI

Podzikowania 14
O autorach

13

Rozdzia 1.

Wstp

O ksice

15

Dla kogo przeznaczona jest ta ksika?

15

Twórca programowania excelowego

16

Excel jako platforma do tworzenia aplikacji

18

Struktura 21
Przykady 22
Wersje obsugiwane

23

Rodzaje kroju pisma

24

Na pycie CD

24

Pomoc i wsparcie

25

Witryna internetowa

26

Komentarze czytelników

26

Rozdzia 2.

Architektura aplikacji

Koncepcje 27
Wnioski 38

Rozdzia 3.

Najlepsze praktyki programowania w Excelu i VBA

Konwencje nazw

41

Najlepsze praktyki organizacji i tworzenia struktury aplikacji

53

Najlepsze praktyki okrelajce ogólne zasady

tworzenia oprogramowania

58

Wnioski 78

Rozdzia 4.

Projektowanie arkusza

Zasady projektowania dobrego interfejsu uytkownika

79

Wiersze i kolumny programu: podstawowe techniki

tworzenia interfejsu uytkownika

80

Nazwy definiowane

81

Style 88
Techniki krelenia interfejsów uytkownika

94

Weryfikacja danych

99

background image

6

S

PIS TRECI

Formatowanie warunkowe

103

Uywanie kontrolek w arkuszu

108

Przykad praktyczny

111

Wnioski 116

Rozdzia 5.

Dodatki funkcyjne, ogólne i specjalizowane
dla aplikacji

Cztery etapy rozwoju i dziaania aplikacji

117

Dodatki bdce bibliotekami funkcji

120

Dodatki ogólne

127

Dodatki specjalizowane dla aplikacji

127

Przykad praktyczny

134

Wnioski 146

Rozdzia 6.

Aplikacja dyktatorska

Struktura aplikacji dyktatorskiej

147

Przykad praktyczny

161

Wnioski 168

Rozdzia 7.

Uywanie moduów klas do tworzenia obiektów

Tworzenie obiektów

169

Tworzenie kolekcji

173

Wychwytywanie zdarze

179

Generowanie zdarze

182

Przykad praktyczny

189

Wnioski 195

Rozdzia 8.

Zaawansowane sterowanie paskami polece

Projektowanie paska polece

198

Tablicowe sterowanie paskami polece

199

Zbieranie wszystkiego razem

219

adowanie niestandardowych ikon z plików

227

Podczepianie obsugi zdarze do kontrolek paska polece

231

Przykad praktyczny

240

Wnioski 246

Rozdzia 9.

Wprowadzenie do formatu XML

XML 249
Wnioski 271

Rozdzia 10. Wstka w Office 2007

Podstawowe zaoenia RibbonX

273

Wprowadzenie do formatu pliku Open XML w Office 2007

274

Projektowanie Wstki oraz najlepsze praktyki programowania

278

background image

S

PIS TRECI

7

Dostosowanie opcji Wstki bazujcej na tabeli

288

Zaawansowane rozwizywanie problemów

289

Dalsze pozycje do czytania

297

Portale internetowe

298

Wnioski

299

Rozdzia 11. Tworzenie aplikacji niezalenych od wersji Excela

Pasek polece i Wstka w pojedynczej aplikacji

301

Inne kwestie dotyczce programowania w Excelu 2007

315

Bezpieczestwo w Windows Vista a struktura katalogów

322

Wnioski 326

Rozdzia 12. Zrozumienie i uywanie wywoa Windows API

Ogólny opis

327

Praca z ekranem

333

Praca z oknami

336

Praca z klawiatur

344

Praca z systemem plików i sieci

349

Przykad praktyczny

361

Wnioski 365

Rozdzia 13. Projektowanie formularzy UserForm

i najlepsze praktyki

Zasady 367
Podstawy kontrolek

375

Efekty wizualne

382

Pozycjonowanie i rozmiary formularzy UserForm

390

Kreatory 396
Dynamiczne formularze UserForm

400

Niemodalne formularze UserForm

407

Wyszczególnienie kontrolek

412

Przykad praktyczny

418

Wnioski 419

Rozdzia 14. Interfejsy

Co to jest interfejs?

421

Ponowne uycie kodu

422

Definiowanie wasnych interfejsów

425

Implementacja wasnego interfejsu

426

Uywanie wasnych interfejsów

427

Klasy polimorficzne

429

Polepszanie solidnoci

433

Upraszczanie rozwoju

434

background image

8

S

PIS TRECI

Architektura moduów rozszerzajcych

443

Przykad praktyczny

445

Wnioski 446

Rozdzia 15. Obsuga bdów VBA

Pojcia obsugi bdów

447

Zasada pojedynczego punktu wyjcia

456

Prosta obsuga bdów

457

Zoone projekty obsugi bdów

458

Centralna obsuga bdów

462

Obsuga bdów w klasach i formularzach UserForm

469

Zbieranie wszystkiego razem

470

Przykad praktyczny

476

Wnioski 484

Rozdzia 16. Debugowanie kodów VBA

Podstawowe techniki debugowania kodów VBA

485

Okno Immediate (Ctrl+G)

495

Call Stack — stos wywoa (Ctrl+L)

498

Okno Watch

500

Okno Locals

510

Object Browser — przegldarka obiektowa (F2)

511

Tworzenie dziaajcego otoczenia testowego

514

Stosowanie asercji

517

Debugerskie skróty klawiaturowe,

które powinien zna kady programista

518

Wnioski 520

Rozdzia 17. Optymalizacja wydajnoci VBA

Mierzenie wydajnoci

523

Program narzdziowy PerfMon

524

Mylenie kreatywne

528

Makrooptymalizacja 534
Mikrooptymalizacja 543
Wnioski 550

Rozdzia 18. Programowanie i bazy danych

Wprowadzenie do baz danych

551

Wprowadzenie do SQL

568

Dostp do danych za pomoc ADO

572

Dalsze pozycje do czytania

586

Wnioski 587

background image

S

PIS TRECI

9

Rozdzia 19. Programowanie z uyciem bazy danych Access

i SQL Server

Uwaga dotyczca przykadowej bazy danych Northwind

589

Projektowanie warstwy dostpu do danych

590

Praca z bazami danych Microsoft Access

594

Praca z bazami danych Microsoft SQL Server

603

Rozbudowa bazy danych Access do SQL Server

613

Dalsze pozycje do czytania

618

Przykad praktyczny

619

Wnioski 629

Rozdzia 20. Techniki przetwarzania danych

Struktury danych Excela

631

Funkcje przetwarzania danych

637

Zaawansowane funkcje

648

Wnioski 656

Rozdzia 21. Zaawansowane techniki tworzenia wykresów

Podstawowe techniki

657

Techniki VBA

674

Wnioski 679

Rozdzia 22. Sterowanie innymi aplikacjami Office

Podstawy 681
Modele obiektowe gównych aplikacji Office

695

Dalsze pozycje do czytania

707

Przykad praktyczny

707

Wnioski 708

Rozdzia 23. Poczenie Excela i Visual Basica 6

Witaj wiecie ActiveX DLL

710

Dlaczego uywa VB6 ActiveX DLL w projektach Excel VBA?

725

In-process kontra out-of-process

739

Automatyzacja Excela z VB6 EXE

740

Dodatki COM

748

Dodatek COM Witaj wiecie

748

Projektant dodatków (Add-in Designer)

752

Instalacja 755
Zdarzenia AddinInstance

757

Obsuga paska polece

759

Dlaczego warto uywa dodatku COM?

762

Automatyzacja dodatków

764

Przykady praktyczne

767

Wnioski 779

background image

10

S

PIS TRECI

Rozdzia 24. Excel i VB.NET

Podstawy platformy .NET

782

Visual Basic.NET

783

Usuwanie bdów

807

Uyteczne narzdzia programistyczne

816

Automatyzacja Excela

819

Zasoby w rozwizaniach .NET

826

Pobieranie danych za pomoc ADO.NET

827

Dalsze pozycje do czytania

832

Dodatkowe narzdzia programistyczne

833

Fora 834
Przykad praktyczny — narzdzie raportujce PETRAS

w technologii .NET

834

Wnioski 848

Rozdzia 25. Tworzenie zarzdzanych dodatków COM

za pomoc VB.NET

Wybór narzdzi programistycznych

852

Tworzenie dodatku zarzdzanego COM

853

Budowanie interfejsu uytkownika

870

Tworzenie zarzdzanych dodatków automatyzacji

888

Rczne rejestrowanie i wyrejestrowanie dodatków COM

899

Uywanie klas w VB.NET

900

Uywanie klasycznego ADO w celu eksportu danych do Excela

906

Opakowywanie dodatków COM

910

Blogi zwizane z tematem

919

Dodatkowe narzdzia programistyczne

920

Przykad praktyczny — narzdzie raportujce PETRAS

w technologii .NET

921

Wnioski 929

Rozdzia 26. Tworzenie rozwiza Excela za pomoc Visual Studio

Tools for Office System (VSTO)

Co to jest VSTO?

932

Kiedy powinnimy uywa VSTO?

939

Praca z dodatkami VSTO

941

Praca z szablonami VSTO i rozwizaniami w postaci skoroszytu

961

Implementacja i bezpieczestwo

970

Inne pozycje do czytania

979

Róne portale i blogi

979

Dodatkowe narzdzia programistyczne

980

Wnioski

980

background image

S

PIS TRECI

11

Rozdzia 27. XLL i API C

Dlaczego warto tworzy funkcje arkusza na bazie XLL?

983

Tworzenie projektu XLL w Visual Studio

984

Struktura XLL

989

Typy danych XLOPER i OPER

997

Funkcja Excel4

1002

Powszechnie uywane funkcje API C

1004

XLOPER i zarzdzanie pamici

1005

Rejestrowanie i wyrejestrowywanie wasnych funkcji arkusza

1006

Przykadowa funkcja aplikacji

1009

Debugowanie funkcji arkusza

1011

Róne tematy

1012

Dodatkowe róda informacji

1013

Wnioski 1014

Rozdzia 28. Excel i usugi sieciowe

Usugi sieciowe

1015

Przykad praktyczny

1022

Wnioski 1031

Rozdzia 29. Zapewnianie pomocy, bezpieczestwa,

pakowanie i rozpowszechnianie

Zapewnianie pomocy

1033

Bezpieczestwo 1042
Pakowanie 1046
Rozpowszechnianie 1051
Wnioski 1052

Skorowidz 1055

background image

R O Z D Z I A  1 0 .

W

STKA W

O

FFICE

2007

Od czasu wydania pakietu Office 2007 RibbonX i jego interfejs uytkownika
(Wstka) stay si tematem czstych dyskusji w spoecznoci programi-
stów Office. Jak mona si spodziewa po technologii w wersji 1.0, Rib-
bonX nakada pewne ograniczenia, które uniemoliwiaj wykorzystanie
w peni moliwoci drzemicych w tym interfejsie uytkownika. Jednak
nawet na tak wczesnym etapie powinnimy zrozumie podstawowe zaoenia
nowego interfejsu, aby budowa wasne, doskonale zaprojektowane interfejsy
uytkownika.

Innym wyzwaniem jest równoczesna codzienna praca z paskiem polece

oraz technologiami interfejsu uytkownika RibbonX. Zagadnienie to obej-
muje tworzenie rozwiza, które bd dziaay z obydwoma interfejsami
uytkownika, czyli tzw. aplikacji niezalenych od wersji Excela. W tym roz-
dziale zostan przedstawione najlepsze praktyki w zakresie projektowania
Wstki i programowania RibbonX, natomiast aplikacje dziaajce nieza-
lenie od wersji Excela omówimy w rozdziale 11. Tu zajmiemy si take
pewnymi nieco bardziej skomplikowanymi problemami aplikacji dyktator-
skich. Bazujcy na tabelach proces budowania interfejsu uytkownika paska
polece jest szeroko akceptowany i uznawany za standard. Oznacza to, e do
tego celu powinnimy równie uywa technologii RibbonX i ten temat
te bdzie poruszony w rozdziale.

W pakiecie Office 2007 wprowadzono nowy format zapisu plików o naz-

wie Office Open XML (OOXML lub po prostu Open XML). Oferuje on
struktur szkieletow dla RibbonX — format OOXML i RibbonX s ze sob
cile powizane. Nowy format zapisu plików pozwala take na tworzenie
dokumentów Office i manipulowanie nimi bez uywania któregokolwiek
z programów wchodzcych w skad pakietu Office. W rozdziale przedstawimy
take krótkie wprowadzenie do formatu plików Open XML.

Podstawowe zaoenia RibbonX

Przez ponad dekad paski polece byy jedyn technologi interfejsu uyt-
kownika, której obsug musielimy si zajmowa. Wraz z wprowadzeniem
RibbonX otrzymujemy now technologi oraz nowe zaoenia stanowice
podstaw interfejsu uytkownika, które cznie maj ogromny wpyw na

background image

274

R

OZDZIA

10. W

STKA W

O

FFICE

2007

nasz sposób pracy. Na pierwszy rzut oka nauka i manipulowanie RibbonX
moe wydawa si wyzwaniem. Jednak z naszego dowiadczenia wynika, e
prawdziwym wyzwaniem jest równoczesna codzienna praca zarówno z pas-
kami polece, jak i RibbonX.

RibbonX, w porównaniu do pasków polece, ma wady i zalety. Chocia jest

w swojej pierwszej wersji, jego podstawy zostay ju ustalone i cechy charak-
terystyczne technologii RibbonX mona podsumowa w nastpujcy sposób.

Q

Opcje pozwalajce na dostosowanie do wasnych potrzeb okrelamy
w trakcie projektowania interfejsu. S zdefiniowane za pomoc XML
i przechowywane jako oddzielna cz formatu pliku XML. Jednak wik-
szo atrybutów kontrolek moe by zmodyfikowana w trakcie dziaania
aplikacji przy uyciu VBA (np. wczony/wyczony, etykieta, widocz-
no itd.).

Q

Po otworzeniu skoroszytu zawierajcego dostosowane do wasnych potrzeb
opcje Wstki Excel automatycznie odczytuje definicj XML Wstki,
a nastpnie przystpuje do tworzenia Wstki okrelonej przez wy-
mienione opcje. Do zainicjalizowania tego procesu nie jest wymagany a-
den kod VBA. W rzeczywistoci nawet nie ma sposobu, aby uniemoliwi
inicjalizacj tego procesu.

Q

Kiedy skoroszyt zostanie otwarty i jest aktywny, dostosowane do wa-
snych potrzeb opcje Wstki zostaj zastosowane i s widoczne. Po za-
mkniciu skoroszytu dostosowane do wasnych potrzeb opcje Wstki
s automatycznie usuwane.

Q

Po wczytaniu dodatku dowolnego rodzaju jego dostosowane do wasnych
potrzeb opcje Wstki zostaj zastosowane i widoczne s we wszystkich
otwartych skoroszytach.

Q

Na wasnej Wstce wszystkie wbudowane kontrolki Wstki mog by
wczone, nadpisane, wykonane lub zapytane o nagówek, grafik itd.

Wprowadzenie do formatu pliku Open XML w Office 2007

XML po raz pierwszy wprowadzony zosta w pakiecie Office 2002. Od tej
chwili Microsoft nieustannie rozbudowuje i ulepsza modu XML bdcy
czci pakietu Office. Wraz z wydaniem Office 2007 otrzymujemy nowy
format pliku cakowicie bazujcy na XML, czyli format Open XML. Format
ten zapewnia moliwo pracy z dokumentami Office oraz ich treci bez
koniecznoci uywania którejkolwiek z aplikacji wchodzcych w skad pakietu
Office. Dziki temu zwiksza si liczba rozwiza alternatywnych sucych
do generowania dokumentów Office po stronie serwera. Znacznemu uatwie-
niu ulega równie proces wymiany danych midzy rónymi systemami oraz
dokumentami Office.

background image

W

PROWADZENIE DO FORMATU PLIKU

O

PEN

XML

W

O

FFICE

2007

275

Kady dokument Office bazujcy na Open XML jest przechowywany

w archiwum ZIP. Wspomniane archiwum stanowi rodzaj pojemnika zawie-
rajcego zarówno dane uytkownika w formacie XML, jak i inne pliki wraz
z informacjami o stylu, obrazami itd. Kiedy dokument jest zapisany w forma-
cie Open XML, jego zawarto zostaje skompresowana, co skutkuje mniejsz
wielkoci pliku, w porównaniu do pliku w formacie binarnym. Microsoft
twierdzi, e wielko pliku mona zredukowa nawet o 75%, cho wedug
naszych obserwacji typowa wielko redukcji mieci si w okolicach 60 – 65%.

Poniewa dokument Open XML skada si z kilku elementów umiesz-

czonych razem w archiwum ZIP, dokumenty Office w tym formacie s
znacznie odporniejsze na uszkodzenia ni zapisane w formacie binarnym.
W ten sposób zmniejsza si ryzyko utraty informacji ze wzgldu na zniszczone
bd uszkodzone pliki.

Powszechnie spotykanym wymaganiem jest, aby tworzone rozwizania

wspódziaay z rónymi wersjami Excela. Rodzi to pytania o format pliku,
który powinien zosta zastosowany. Rozwizaniem zapewniajcym najwiksz
elastyczno podczas wymiany danych pozostaje format .xls (w Excelu 2007
nosi nazw Skoroszyt programu Excel 97 – 2003). Jednak moliwe jest uycie
formatu pliku Open XML w starszych wersjach pakietu Office, o ile kompu-
tery docelowe maj zainstalowany Pakiet zgodnoci formatu plików pakietu
Microsoft Office dla programów Word, Excel i PowerPoint 2007
. Pakiet jest
dostpny bezpatnie na witrynie internetowej firmy Microsoft

1

. Warto zwró-

ci uwag, e Office 2000 moe konwertowa pliki Open XML na format
binarny tylko za porednictwem Eksploratora Windows.

Struktura formatu pliku Open XML

Format pliku Open XML moe zosta opisany jako struktura skadajca si
z bloków stanowicych elementy skadowe (czyli poszczególne czci) oraz
pocze (zwizków) wykorzystywanych do skomponowania, zapakowania,
rozpowszechniania i generowania zawartoci dokumentu. Jdrem formatu
pliku s schematy XML oraz archiwum ZIP. Podczas zapisu dokumentu Office
w formacie Open XML nastpuje utworzenie archiwum ZIP zawierajcego
nastpujce komponenty.

Q

Czci — wikszo elementów „czci” to pliki XML opisujce dane apli-
kacji i metadane. Moduowo pozostaje najwaniejsz cech charakte-
rystyczn formatu pliku, poniewa pozwala na zlokalizowanie okrelonej
czci i bezporedni prac z dan czci.

1

Pakiet mona pobra ze strony http://www.microsoft.com/downloads/details.aspx?FamilyID=
941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=pl
przyp. tum.

background image

276

R

OZDZIA

10. W

STKA W

O

FFICE

2007

Q

Elementy rodzaju treci — opisuj, jakiego rodzaju pliki s przechowy-
wane w dokumencie. Przykadowo

image/png

oznacza plik graficzny

w formacie PNG. Informacja ta pozwala aplikacjom na okrelenie zawar-
toci dowolnej czci pakietu i prawidowe przetworzenie jej zawartoci.

Q

Zwizki — opisuj, jak zbiór elementów dokumentu razem tworzy posta
dokumentu. Podczas gdy „czci” tworz tre pliku, zwizki opisuj spo-
sób, w jaki czci ze sob wspópracuj.

Przeanalizujmy samodzielnie zawarto pliku Excela. Do tej operacji

potrzebny bdzie program obsugujcy archiwa ZIP, np. WinZip bd 7-Zip.
Pierwszym krokiem jest utworzenie pliku Excela, umieszczenie w nim
wykresu, a nastpnie zapisanie pliku pod nazw PED.xlsm. Do kolejnego
kroku konieczne bdzie uycie narzdzia Office 2007 Custom UI Editor,
które mona pobra bezpatnie z witryny Microsoft

2

. Otwórz plik w narzdziu

Custom UI Editor i do skoroszytu dodaj wasne opcje RibbonX przedsta-
wione w listingu 10.1.

L

ISTING

10.1.

Proste dostosowanie opcji w RibbonX

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">

<ribbon startFromScratch="false">

<tabs>

<tab id="customTab" label="Wasna karta">

<group id="customGroup" label="Wasna grupa">

<button id="customButton" label="Wasny przycisk"

imageMso="HappyFace" size="large"

onAction="Callback" />

</group>

</tab>

</tabs>

</ribbon>

</customUI>

Na kocu otwórz plik PED.xlsm w programie obsugujcym archiwa

ZIP. Zawarto pliku powinna by podobna do pokazanej na rysunku 10.1.
Niektóre programy obsugujce archiwa ZIP mog wymaga tymczasowej
zmiany rozszerzenia pliku skoroszytu na .zip, aby otworzenie archiwum byo
moliwe.

2

Narzdzie jest dostpne na stronie http://openxmldeveloper.org/articles/CustomUIeditor.aspx
przyp. tum.

background image

W

PROWADZENIE DO FORMATU PLIKU

O

PEN

XML

W

O

FFICE

2007

277

R

YSUNEK

10.1.

Zawarto archiwum ZIP, pliki w formacie Open XML

Jak pokazano na rysunku 10.1, archiwum pliku Excela moe skada si

z duej liczby katalogów i plików XML. Umoliwia to prac z poszczegól-
nymi czciami pliku, ale omówienie wszystkich elementów archiwum wykra-
cza poza zakres tematyczny tego rozdziau. Plik Excela (PED.xlsm) oraz archi-
wum ZIP (PED.zip) umieszczono w katalogu \Koncepcje\Rozdzial10 na pycie
CD doczonej do ksiki.

WSKAZÓWKA

Jeeli masz dostp do oprogramowania Visual Studio 2008

Professional lub nowszej wersji oraz zainstalowany bezpatny pakiet Microsoft Visual
Tools for the Office System Power Tools, moesz przeglda i edytowa opcje Wstki
wewntrz plików Excela, uywajc do tego celu narzdzia Open XML Editor.

Po dodaniu do skoroszytu lub dodatku opcji dostosowujcych Wstk do wa-
snych potrzeb wewntrz struktury pliku Open XML zostaje utworzony kata-
log o nazwie customUI. W nim znajduje si plik XML o nazwie customUI.xml
przechowujcy wszystkie informacje potrzebne do dostosowania Wstki do
wasnych potrzeb. Podczas uaktualniania opcji Wstki plik customUI.xml jest

background image

278

R

OZDZIA

10. W

STKA W

O

FFICE

2007

odpowiednio aktualizowany. Wszystkie opcje dostosowania Wstki mody-
fikowane za pomoc narzdzia Custom UI Editor maj wpyw na odpowiedni
fragment customUI w pliku Excela. W dalszej czci rozdziau omówimy
dostosowywanie przy uyciu VBA opcji Wstki bazujcych na tabelach.

Projektowanie Wstki
oraz najlepsze praktyki programowania

Projektowanie Ribbon

Wiele ogólnych zalece dotyczcych podej do programowania i przedsta-
wionych w rozdziale 8. moe by równie zastosowanych podczas projek-
towania Wstki. W czasie pisania tej ksiki Excel 2007 jest dostpny do-
piero od dwóch lat i nadal ma stosunkowo niewielki udzia w rynku.
Wskutek tego w spoecznoci programistów Excela dopiero powstaj najlep-
sze praktyki z zakresu pracy ze Wstk.

Przedstawione poniej zalecenia zostay sformuowane na podstawie

naszych dowiadcze zdobytych podczas tworzenia rzeczywistych aplikacji
i powinny by traktowane jedynie jako wstp do najlepszych praktyk pro-
jektowania i programowania Wstki. Zawsze wtedy, kiedy wykorzystywa-
ny jest graficzny interfejs uytkownika, najlepsze podejcie to zachowanie
prostoty i przejrzystoci.

Projektowanie w celu obsugi procesów roboczych

Najwikszym wyzwaniem podczas projektowania wasnej Wstki jest
utworzenie takiego interfejsu, który faktycznie bdzie wspomaga procesy
robocze. Oznacza to, e musimy zidentyfikowa wszystkie procesy robocze
danego rozwizania i zaimplementowa je w projekcie Wstki. Trzeba tak-
e okreli elementy dla kadego procesu roboczego, w którym maj by
one zaimplementowane w postaci hierarchicznej struktury.

W teorii osignicie wymienionych celów projektowych moe by pro-

ste, jednak w praktyce podczas projektowania Wstki zwykle bdziemy
zmuszeni do stosowania kompromisów. Warto spojrze na przykadowy pro-
jekt Wstki, który utworzylimy dla rozwizania sucego do monitorowa-
nia wydatków budetowych w rónych dziaach, projektach i dla odmiennych
klientów (rysunek 10.2).

R

YSUNEK

10.2.

Projekt Wstki

background image

P

ROJEKTOWANIE

R

IBBON

279

W powyszym projekcie zidentyfikowalimy cztery gówne poziome procesy
robocze, które nastpnie zostay podzielone na cztery oddzielne grupy na
Wstce. Oto one.

1.

Data Selection, który okrela parametry identyfikujce dane dane.

2.

Data Acquisition pozwala na wskazanie róda danych, które bdzie uyte

do pobierania danych.

3.

Reports okrela dane raporty i pozwala na ich utworzenie.

4.

Distribution and Publishing wysya raport do ustalonej liczby odbior-

ców lub publikuje raport za pomoc usugi Microsoft Office SharePoint
Service (MOSS).

Na rysunku 10.2 pokazano równie, e wewntrz kadego procesu roboczego
zidentyfikowalimy elementy niezbdne do zaimplementowania w pionowej
hierarchicznej strukturze.

Uywanie karty Dodatki

Z naszego dowiadczenia wynika, e karta Dodatki jest lokalizacj zalecan
dla interfejsu uytkownika dodatków ogólnych. Stosowanie karty Dodatki dla
prostych interfejsów narzdzi pozwala na ograniczenie liczby wywietlanych
kart i ogólne oczyszczenie interfejsu uytkownika Excela.

Karta Dodatki powinna by uywana, gdy dodatek wymaga wywietle-

nia tylko kilku kontrolek. Poniewa dodatki tworzce jedynie pasek narz-
dziowy na podstawie interfejsu uytkownika s automatycznie umieszczane
pod kart Dodatki, zachowujemy kontrol nad tym, czy poszczególne dodatki
mog by umieszczone w wymienionym miejscu. Wiele narzdzi firm zew-
ntrznych, np. SnagIt, przeznaczonych do dziaania w rónych wersjach Excela,
celowo umieszcza pasek narzdziowy pod kart Dodatki.

Wspódzielenie wasnych kart i grup
przez wiele dodatków

W wikszoci przypadków tworzymy konkretne rozwizania, z których kade
dodaje na Wstce wasne karty, grupy i kontrolki. Jednak w pewnych sy-
tuacjach chcemy sprawi, by elementy te byy wspódzielone przez róne
dodatki. Przykadowo moemy mie dodatek gówny tworzcy podstawow
kart, grup i struktur menu, do których inne powizane dodatki bd do-
daway wasne elementy. Na rysunku 10.3 pokazano dodatek zawierajcy
kart, która ma by wspódzielona przez róne dodatki.

Kiedy zostanie wczytany powizany z nim dodatek, wykorzysta wspó-

dzielon kart do umieszczenia wasnej grupy kontrolek, co pokazano na
rysunku 10.4.

background image

280

R

OZDZIA

10. W

STKA W

O

FFICE

2007

R

YSUNEK

10.3.

Wspódzielona karta

R

YSUNEK

10.4.

Kontrolki innego dodatku dodane do wspódzielonej karty

Taka moliwo moe by uytecznym podejciem podczas tworzenia roz-
wiza o duym stopniu skalowalnoci. Kluczowym atrybutem wymaganym
do utworzenia wspódzielonej karty i zarzdzania ni jest atrybut namespace.
Za kadym razem gdy tworzymy wasn Wstk, uywamy przestrzeni nazw.
Pierwszy wiersz we wszystkich plikach XML Wstki zawiera odniesienie do
przestrzeni nazw http://schemas.microsoft.com/of ce/2006/01/customui,
tak jak przedstawiono poniej:

<customUI xmlns="http://schemas.microsoft.com/office/2006/
´01/customui">

Prefiks

xmlns

jest skrótem od XML NameSpace (przestrze nazw XML).

Firma Microsoft zdecydowaa si na uywanie adresów URL jako identyfi-
katorów przestrzeni nazw we wszystkich definicjach XML Wstki. Prze-
strze nazw pozwala na dostosowanie opcji Wstki we wszystkich pro-
gramach Office. W kolejnym przykadzie utworzymy wasn przestrze
nazw pozwalajc na identyfikacj i dodawanie kontrolek z wielu plików do
wasnej karty. Ten rodzaj rozwizania nosi nazw karty wspódzielonej.

Rozwizanie wspódzielce kart wymaga przynajmniej dwóch plików

Excela. W omawianym przykadzie uyjemy dwóch dodatków. Pierwszy
bdzie dziaa w charakterze gospodarza dla karty wspódzielonej, natomiast
drugi umieci na karcie grup wasnych kontrolek. Na pocztek musimy
utworzy dodatek o nazwie Shared Tab.xlam i umieci w nim definicj
XML Wstki przedstawion w listingu 10.2.

Na pocztku kodu przedstawionego w listingu 10.2 tworzymy now

przestrze nazw

nsPED

. Do wasnej karty dodalimy równie nowy atrybut

idQ

, który oznacza Qualified ID. Warto atrybutu

idQ

karty poprzedzimy

background image

P

ROJEKTOWANIE

R

IBBON

281

L

ISTING

10.2.

Definicja XML Wstki w pierwszym dodatku dla Shared Tab

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:nsPED="PED Namespace">
<ribbon startFromScratch="false">
<tabs>
<tab idQ="nsPED:rxtabPED" label="Narzdzia PED" visible="1">
<group id="rxgrpBasic" label="Narzdzia podstawowe" visible="1">
<button id="rxbtnImportData"
label="Import danych"
screentip="Import danych."
imageMso="DatabaseAccessBackEnd"
size="large"

tag="Import_Data"
onAction="Shared_Basic_Tools_Click"/>
<button id="rxbtnDataReport"
label="Raport danych"
screentip="Utworzenie raportu danych."
imageMso="ImportExcel"
size="large"
tag="Data_Report"
onAction="Shared_Basic_Tools_Click"/>
<button id="rxbtnChartReport"
label="Wykres na podstawie raportu"
screentip="Utworzenie wykresu na podstawie raportu."
imageMso="PivotChartType"
size="large"
tag="Chart_Report"
onAction="Shared_Basic_Tools_Click"/>
</group>
</tab>
</tabs>
</ribbon>

</customUI>

prefiksem z naszej przestrzeni nazw

nsPed

. Poprzez okrelenie w ten sposób

wartoci atrybutu

idQ

umoliwiamy odwoanie si do danego obiektu karty

z poziomu dowolnego pliku uywajcego naszej przestrzeni nazw. Pokazane
tutaj podejcie podczas tworzenia karty wspódzielonej moe by równie
zastosowane na wspódzielonych grupach bd kontrolkach.

Nastpnym krokiem jest dodanie do moduu kodu w dodatku globalnej

procedury wywoania zwrotnego, któr przedstawiono w listingu 10.3. Pro-
cedura wywoania zwrotnego

Shared_Basic_Tools_Click

uywa atrybutu

tag

wywoujcej kontrolki w celu okrelenia przycisku, który spowodowa

wywoanie zwrotne.

L

ISTING

10.3.

Procedura wywoania zwrotnego w pierwszym dodatku

Option Explicit
Sub Shared_Basic_Tools_click(control As IRibbonControl)
Const sMESSAGE As String = "Chcesz "
Dim sActivity As String

background image

282

R

OZDZIA

10. W

STKA W

O

FFICE

2007

Select Case control.Tag
Case "Import_Data": sActivity = "zaimportowa dane."
Case "Data_Report": sActivity = "utworzy raport danych."
Case "Chart_Report": sActivity = "utworzy wykres na podstawie

´raportu."

End Select
MsgBox sMESSAGE & sActivity
End Sub

Po wczytaniu dodatku Shared Tab.xlam nastpi utworzenie karty Narzdzia
PED
pokazanej na rysunku 10.3. Aby zilustrowa wspódzielon natur tej
karty, utworzymy drugi dodatek i nadamy mu nazw Add Group Shared
Tab.xlam
. Nastpnie do drugiego dodatku dodamy plik definicji XML
Wstki przedstawiony w listingu 10.4.

L

ISTING

10.4.

Definicja XML Wstki w drugim dodatku dla Shared Tab

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:nsPED="PED Namespace">
<ribbon startFromScratch="false">
<tabs>
<tab idQ="nsPED:rxtabPED" label="Narzdzia PED" visible="1">
<group id="rxgrpDistribution" label="Dystrybucja">
<button id="rxbtnEmailTeam"

label="Wylij e-mail do zespou"
screentip="Wylij e-mail do zespou."
imageMso="AttachItem"
size="large"
tag="Email_Team"
onAction="Shared_Distribution_Click"/>
<button id="rxbtnEmailManager"
label="Wylij e-mail do menedera"
screentip="Wylij e-mail do menedera."
imageMso="FileManageMenu"
size="large"
tag="Email_Manager"
onAction="Shared_Distribution_Click"/>
<button id="rxbtnPublishMoss"
label="Opublikuj poprzez MOSS"
screentip="Opublikuj poprzez MOSS."
imageMso="ExportSharePointList"
size="large"
tag="Publish_MOSS"
onAction="Shared_Distribution_Click"/>

</group>
</tab>
</tabs>
</ribbon>
</customUI>

Porównujc definicj XML Wstki przedstawion w listingu 10.4 z defini-
cj przedstawion w listingu 10.3, zauwaamy, e wspódziel t sam prze-
strze nazw

nsPED

oraz uywaj tego samego atrybutu

idQ

i nazw etykiety

background image

P

ROJEKTOWANIE

R

IBBON

283

karty wspódzielonej. Jest to wymagane do wspódzielenia karty przez wiele
plików. Na kocu drugi dodatek uzupenimy globaln procedur wywoania
zwrotnego, któr przedstawiono w listingu 10.5.

L

ISTING

10.5.

Procedura wywoania zwrotnego w drugim dodatku

Option Explicit
Sub Shared_Distribution_Click(control As IRibbonControl)
Const sMESSAGE As String = "Chcesz "
Dim sActivity As String
Select Case control.Tag
Case "Email_Team": sActivity = "wysa raport do czonków zespou."
Case "Email_Manager": sActivity = "wysa raport menederowi."

Case "Publish_MOSS": sActivity = "opublikowa raport poprzez MOSS."
End Select
MsgBox sMESSAGE & sActivity
End Sub

Po wczytaniu dodatków kontrolki Wstki utworzone przez obydwa dodat-

ki zostan wywietlone na tej samej karcie wspódzielonej Narzdzia
PED
, któr pokazano na rysunku 10.4. Oba utworzone dodatki mona take
wczyta niezalenie. Kady z nich ma moliwo utworzenia karty wspó-
dzielonej i umieszczenia na niej kontrolek. Jednak to prowadzi do maego
bdu.

Poniewa na naszej karcie wspódzielonej brakuje rodzimego mechani-

zmu kontroli sekwencji grup, kolejno wywietlania na niej grup bdzie
zaleaa od kolejnoci otwierania dodatków korzystajcych z tej karty wspó-
dzielonej. Najlepszym rozwizaniem tego problemu bdzie uycie pliku gów-
nego kontrolujcego kolejno wczytywania powizanych z nim plików.

Dodatek utworzony w tym przykadzie zosta zamieszczony w katalogu

\Koncepcje\Rozdzial10 na pycie CD doczonej do ksiki.

Atrybut keytip

Spotkalimy si ju z pewnymi imponujcymi rozwizaniami Wstki, w któ-
rych nie dostarczono adnych atrybutów keytip. To powane ograniczenie.
Nacinicie klawisza Alt powoduje przejcie klawiatury do trybu nawigacji.
W tym trybie uytkownicy mog bardzo atwo porusza si po Wstce, po
prostu naciskajc klawisze na klawiaturze.

Najwikszym problemem z atrybutem

keytip

nie jest proces jego doda-

wania do definicji XML Wstki — to bardzo atwe zadanie. Problemem
jest okrelenie odpowiednich klawiszy do wykorzystania. Tak wiele kombi-
nacji klawiszy ju wykorzystano we wbudowanych funkcjach Excela, e
niezbyt duo pozostao do wyboru. W aplikacjach dyktatorskich bdzie to
znacznie mniejszy problem, ale w dodatkach ogólnych i skoroszytach
znalezienie dobrego rozwizania moe by do trudne.

background image

284

R

OZDZIA

10. W

STKA W

O

FFICE

2007

Zarzdzanie wasnymi obrazami kontrolek

Pakiet Office 2007 jest dostarczany z du iloci wbudowanych obrazów,
które mona wykorzysta we wasnych kontrolkach. Dlatego te przed pod-
jciem decyzji o uyciu wasnych obrazów warto przejrze te, które dostar-
czono w standardzie. Stosowanie wbudowanych obrazów pomaga równie
w zachowaniu znanego wygldu interfejsu uytkownika. Zamiast np. uywa
wasnego obrazu dla przycisku Drukuj, naley skorzysta z dostarczonego
standardowo przez aplikacj. Stosowanie wielu wasnych obrazów moe mie
negatywny wpyw na wydajno aplikacji.

Microsoft udostpnia do pobrania plik Excela o nazwie Office2007Icons

Gallery.xlsm. Powoduje on umieszczenie na karcie Deweloper zestawu
kolekcji obrazów, które uatwiaj odszukanie nazw obrazów wbudowanych
w pakiet w celu ich uycia we wasnych interfejsach uytkownika RibbonX.
Inny uyteczny plik do pobrania to 2007OfficeControlIDsExcel2007.exe;
w nim znajdziemy list identyfikatorów dla wszystkich wbudowanych kon-
trolek.

Jeeli postanowisz, e konieczne jest zastosowanie wasnych obrazów,

wówczas zalecanym formatem pliku jest PNG. Silnik graficzny Wstki zo-
sta zaprojektowany do pracy z obrazami w penej palecie kolorów (24 bi-
ty), która maj równie kana alfa okrelajcy przezroczysto kadego pik-
sela. Poniewa format PNG obsuguje kana alfa i pozwala na zachowanie
wzgldnie maej wielkoci plików, bdzie najlepszym wyborem. Zalecana wiel-
ko wasnych ikon to 16 na 16 pikseli (mae) lub 32 na 32 piksele (due).

Za pomoc narzdzia Custom UI Editor mona doda wasne obrazy do

skoroszytów, ale nie mona si do nich odwoa w pliku definicji XML
Wstki. Oznacza to konieczno uycia oddzielnych plików obrazów. W li-
stingu 10.6 przedstawiono definicj XML Wstki korzystajc z obrazów
w formacie PNG za pomoc atrybutu

getImage

.

L

ISTING

10.6.

Definicja XML Wstki dla grafiki w formacie PNG

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="rxtabPED" label="Narzdzia PED" visible="1">
<group id="rxgrpPED" label="Zestaw narzdzi PED" visible="1">
<button id="rxbtnReport"
label="Raport"
screentip="Utwórz raport."
getImage="GetImage"
size="large"
onAction="rxbtnReport_Click"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

background image

P

ROJEKTOWANIE

R

IBBON

285

Procedur wywoania zwrotnego dla atrybutu

getImage

przedstawiono

w listingu 10.7. Jedyny problem z formatem pliku PNG polega na tym, e
musimy mie wasne rozwizanie, aby wczyta obrazy w tym formacie.
Wynika to z faktu, e wbudowana w Excel 2007 funkcja

LoadPicture

nie

obsuguje formatu PNG. W listingu 10.7 uylimy wasnej funkcji

Load

´

PictureGDI

, która pobiera jeden argument — pen ciek dostpu

i nazw pliku PNG przeznaczonego do wczytania.

L

ISTING

10.7.

Wywoanie zwrotne dla atrybutu getImage

Sub GetImage(control As IRibbonControl, ByRef returnedVal)

Set returnedVal = _
LoadPictureGDI(ThisWorkbook.Path & "\Report.png")

End Sub

Przedstawiona powyej funkcja uywa pewnych API GDI+ (Graphics
Device Interface
) do konwersji obrazu PNG na obiekt

IPicture

. Szcze-

góowe omówienie procesu tej konwersji wykracza poza zakres tematyczny
rozdziau. Jednak kod wasnej funkcji wczytujcej obrazy PNG umiecili-
my w skoroszycie Load PNG pictures.xlsm znajdujcym si w katalogu
\Koncepcje\Rozdzial10 na pycie CD doczonej do ksiki.

Uywanie globalnych procedur wywoa zwrotnych

Uycie globalnych procedur wywoa zwrotnych pozwala na jednoczesne
obsuenie wielu obiektów kontrolek. Gdy pojedyncza procedura wywoa
zwrotnych obsuguje wiele powizanych obiektów kontrolek, kod jest bar-
dziej strukturalny, a jego obsuga wymaga mniejszej iloci czasu. W definicji
XML Wstki przedstawionej w listingu 10.8 atrybutom

onAction

wszystkich

trzech przycisków przypisano t sam procedur wywoa zwrotnych o na-
zwie

PED_Click

.

L

ISTING

10.8.

Uywanie jednej procedury wywoania zwrotnego do obsugi kilku obiektów

kontrolek

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="rxtabPED" label="Narzdzia PED" visible="1">
<group id="rxgrpPED" label="Zestaw narzdzi PED" visible="1">
<button id="rxbtnImportData"
label="Import danych"
screentip="Import danych."
imageMso="DatabaseAccessBackEnd"
size="large"

background image

286

R

OZDZIA

10. W

STKA W

O

FFICE

2007

tag="ImportData"
onAction="PED_click" />
<button id="rxbtnDataReport"
label="Utwórz raport"
screentip="Utworzenie raportu na podstawie danych."
imageMso="ImportExcel"
size="large"
tag="DataReport"
onAction="PED_click" />

<button id="rxbtnChartReport"
label="Utwórz wykres"
screentip="Utworzenie wykresu na podstawie raportu."
imageMso="PivotChartType"
size="large"
tag="ChartReport"
onAction="PED_click" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Procedura wywoania zwrotnego

PED_Click

uywa atrybutu

tag

wywou-

jcej kontrolki w celu okrelenia przycisku, który spowodowa wywoanie
procedury. Procedur obsugi przedstawiono w listingu 10.9.

L

ISTING

10.9.

Wspólna procedura wywoania zwrotnego

Sub PED_click(control As IRibbonControl)
Select Case control.Tag
Case "ImportData": Import_Data

Case "DataReport": Create_Data_Report
Case "ChartReport": Create_Chart_Report
End Select
End Sub

Uniewanianie

Uniewanianie jest procesem intensywnie wykorzystujcym zasoby i pod-
czas jego uywania naley zachowa ostrono. Gdy tylko bdzie to mo-
liwe, warto uniewania okrelone kontrolki zamiast caej Wstki, gdy to
drugie podejcie ma bardzo negatywny wpyw na wydajno aplikacji.
Uniewanianie kontrolek nie powoduje ich ponownego wczytania, a jedynie
odwieenie.

Wydaje si, e w wywoaniu

getEnabled

biecej wersji Wstki ist-

nieje bd. Jeeli do dynamicznego wczania lub wyczania okrelonych
kontrolek Wstki uyjesz wywoania zwrotnego

getEnabled

, wywoanie

zwrotne moe nie zosta prawidowo wywoane, o ile nie nastpi uniewa-
nienie caej Wstki zamiast poszczególnych kontrolek.

background image

P

ROJEKTOWANIE

R

IBBON

287

Spójrzmy bliej na proces uniewaniania w definicji XML Wstki i jego

wymagania w VBA. Przede wszystkim potrzebujemy zmiennej VBA, która
przedstawia obiekt

IRibbonUI

. Aby j otrzyma, musimy okreli procedur

wywoania zwrotnego dla atrybutu

onLoad

, co przedstawiono w listingu 10.10.

L

ISTING

10.10.

Definicja XML Wstki suca do uniewaniania przycisku

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="rxRibbonUI_onLoad">
<ribbon>
<tabs>
<tab id="rxtabInvalidate" label="PED">
<group id="rxgrpPed" label="Invalidate">
<button id="rxbtnPED"
getLabel ="rxbtn_GetTime"
screentip="Wywietl godzin."
imageMso="DateAndTimeInsert"
size="large"
onAction="rxbtn_Invalidate_Click"/>
</group>

</tab>
</tabs>
</ribbon>
</customUI>

W powyszym przykadzie podczas kadego kliknicia przycisku odwie-
amy dat i godzin, które s wywietlane przez kontrolk przycisku. Dlatego
te potrzebujemy procedury wywoania zwrotnego uniewaniajcej kon-
trolk przycisku, tak aby byo moliwe odwieenie jej zawartoci. Ponadto
potrzebna jest procedura wywoania zwrotnego suca do wywietlenia
przez kontrolk przycisku biecej daty i godziny. W listingu 10.10 uylimy
atrybutu

getLabel

do pobrania daty i godziny. Natomiast atrybut

onAction

jest wykorzystywany do uniewaniania kontrolki przycisku. Wywoanie zwro-
tne

onLoad

i dwa wywoania zwrotne przycisku zostay przedstawione w lis-

tingu 10.11.

L

ISTING

10.11.

Wywoania zwrotne suce do uniewaniania przycisku

Private m_rxRibbonUI As IRibbonUI

'

Wywoanie zwrotne dla customUI.onLoad.

Sub rxRibbonUI_onLoad(Ribbon As IRibbonUI)
Set m_rxRibbonUI = Ribbon
End Sub

'

Wywoanie zwrotne dla rxbtnPED onAction.

Sub rxbtn_Invalidate_Click(control As IRibbonControl)
m_rxRibbonUI.InvalidateControl control.ID
End Sub

'

Wywoanie zwrotne dla rxbtnPED getLabel.

background image

288

R

OZDZIA

10. W

STKA W

O

FFICE

2007

Sub rxbtn_GetTime(control As IRibbonControl, ByRef returnedValue)
returnedValue = CStr(Now())
End Sub

Przykadowy plik zawierajcy ten kod znajduje si w katalogu \Koncepcje\
Rozdzial10
na pycie CD doczonej do ksiki. Microsoft opublikowa take
dokument poruszajcy temat projektowania Wstki. Mona go znale  po
przeszukaniu witryny Microsoft pod ktem wyraenia 2007 Of ce System
Document: UI Style Guide for Solutions and Add-Ins
.

Dostosowanie opcji Wstki bazujcej na tabeli

Podczas budowania interfejsów uytkownika paska polece proces bazujcy na
tabeli jest faktycznie standardem, zwaszcza w przypadku rozwiza o duym
poziomie skalowalnoci. Moglibymy zaoy, e nie ma powodu, aby takie
samo podejcie zastosowa w trakcie dostosowywania opcji Wstki.

Jednak dwa gówne ograniczenia techniczne uniemoliwiaj tworzenie

Wstki bazujcej na tabeli. Po pierwsze, w VBA nie mamy dostpu do mo-
delu obiektowego w celu manipulowania Wstk. Po drugie, rodowisko
uruchomieniowe VBA nie moe dostarczy XML dla definicji Wstki. Bardzo
uyteczne byoby zobaczenie, e standardowe zdarzenie

GetCustomUI

zostao

dodane do obiektu

Workbook

, a metoda

CreateCustomerUI

— do obiektu

CommandBars

.

Uycie Visual Studio Tools for Office System (VSTO) pozwala na uzyska-

nie dostpu do narzdzia Visual Designer dla Wstki, które w tworzonym
rozwizaniu umoliwia wizualn manipulacj tym interfejsem. Narzdzie to
na podstawie projektu graficznego automatycznie generuje plik definicji
XML Wstki, wywoania zwrotne oraz inne komponenty interfejsu uyt-
kownika. Innymi sowy, VSTO oferuje pen obsug dostosowywania opcji
Wstki, podczas gdy VBA w ogóle nie dostarcza takiego wsparcia.

Wobec takiego stanu rzeczy moemy zakada, e Microsoft zepchn VBA

do roli drugorzdnej. W kolejnym rozdziale przeanalizujemy moliwoci, jakie
obecnie mamy do wykorzystania w poszczególnych plikach Excela podczas
pracy z customUI XML przy uyciu VBA.

Uzyskanie dostpu do elementu customUI XML

Aby uzyska dostp do elementu

customUI

XML w pliku Excela, konieczna

jest tymczasowa zmiana rozszerzenia na .zip, dostosowanie wybranych opcji,
a nastpnie przywrócenie rozszerzeniu jego wartoci pocztkowej. Tymcza-
sowa zmiana rozszerzenia pliku na .zip powoduje, e skadniki XML nowego
formatu pliku staj si widoczne i dostpne z poziomu Eksploratora Windows,
co pokazano na rysunku 10.5. W trakcie rcznego dodawania wasnych opcji

background image

Z

AAWANSOWANE ROZWIZYWANIE PROBLEMÓW

289

na Wstce za pomoc narzdzia Custom UI Editor automatycznie tworzo-
ny jest katalog customUI. Musi on istnie, jeli chcemy, aby wprowadzone
modyfikacje opcji dziaay prawidowo. Jeeli katalog nie bdzie istnia,
musi zosta zbudowany przed utworzeniem i zapisaniem w nim pliku
customUI.xml.

R

YSUNEK

10.5.

Zawarto archiwum ZIP

Wszystkie definicje XML Wstki musz znajdowa si w pliku customU-
I.xml
. Ponadto XML Wstki musi spenia kryteria okrelone w schemacie
definicji XML (XSDXML Schema Definition) opisanym w pliku cu-
stomUI.xsd
. Plik XML to zwyky plik tekstowy z rozszerzeniem .xml za-
miast .txt. Z tego powodu pliki customUI.xml moemy tworzy w taki sam
sposób jak zwyke pliki tekstowe. Jeeli masz wiedz wystarczajc do
pracy z analizatorem skadni XML, np. Microsoft XML, moe to by lepszym
rozwizaniem. Podczas uaktualniania pliku customUI.xml znacznie prost-
sze i szybsze jest nadpisanie biecego pliku zupenie now wersj zamiast
modyfikacji zawartego w nim kodu.

Z technicznego punktu widzenia moliwe jest utworzenie w Excelu narz-

dzia sucego do generowania definicji XML Wstki na podstawie wpisów
w tabeli skoroszytu, podobnie jak podczas budowania bazujcych na tabeli
interfejsów uytkownika paska polece. Znacznie lepszym rozwizaniem b-
dzie opracowanie tego rodzaju narzdzia dla platformy .NET, poniewa oferuje
ona daleko idc obsug pracy z XML oraz ze Wstk.

Zaawansowane rozwizywanie problemów

Wstka jest krytykowana za brak modelu obiektowego w VBA. Jednak
zdecydowanie czciej wskazuje si na fakt, e oferuje elastyczno znacz-
nie mniejsz ni stary interfejs uytkownika paska polece. Wiele polece
jest zbyt gboko zaszytych w interfejsie uytkownika, zatem nie s atwo
dostpne. Z punktu widzenia procesu, polecenia nie s dostpne w logiczny
sposób.

Wasne rozwizania Wstki mog pomóc w pokonaniu niektórych ogra-

nicze. Natomiast inne ograniczenia, takie jak zwizane z uywaniem kon-
trolek dodatkowych, mog by rozwizane tylko przy uyciu platformy .NET
oraz narzdzi firm trzecich. Pozostae ograniczenia, np. brak moliwoci

background image

290

R

OZDZIA

10. W

STKA W

O

FFICE

2007

tworzenia wasnych bd „pywajcych” pasków narzdziowych, wynikaj
z budowy architektury Wstki i nie mog by pokonane. Poniej przed-
stawiono omówienie niektórych kwestii, z którymi programici borykaj si
najczciej, oraz sposoby ich rozwizania.

Tworzenie Wstki dla aplikacji dyktatorskiej

W aplikacji dyktatorskiej cakowicie usuwamy domyln Wstk i zast-
pujemy j wasn. Standardowym podejciem jest ustawienie w pliku definicji
XML Wstki atrybutu

startFromScratch="true"

, co daje interfejs poka-

zany na rysunku 10.6.

R

YSUNEK

10.6.

Podstawowa Wstka dla aplikacji dyktatorskiej

Gówn zalet takiego podejcia pozostaje brak koniecznoci uywania kodu
VBA do ustawienia Wstki po otworzeniu skoroszytu. Kod VBA nie bdzie
take wymagany do przywrócenia ustawie domylnych interfejsu po za-
mkniciu aplikacji. Wszystko jest wykonywane automatycznie podczas
otwierania i zamykania skoroszytu.

Na rysunku 10.6 wida, e Przycisk pakietu Office jest nadal dostpny,

podobnie jak cz podstawowych polece cznie z Paskiem narzdzi
Szybki dostp
(QAT, czyli Quick Access Toolbar). Dwa elementy pozosta-
jce w przycisku Office po uyciu atrybutu

startFromScratch="true"

to przyciski Opcje programu Excel oraz Zako cz program Excel. By moe
w aplikacji dyktatorskiej trzeba bdzie uniemoliwi dostp do wymienionych
funkcji.

Niestety, ukrycie dwóch omawianych kontrolek jest niemoliwe, wic

najlepszym rozwizaniem pozostaje ich zablokowanie. Chocia fizycznie s
umieszczone w menu Office, RibbonX nie pozwala na manipulacj nimi
z poziomu elementu

officeMenu

w definicji XML Wstki. W zamian

trzeba wykorzysta element

command

, co przedstawiono w listingu 10.12.

L

ISTING

10.12.

Definicja XML Wstki suca do wyczenia przycisków Opcje programu

Excel oraz Zakocz program Excel

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
...
<commands>

background image

Z

AAWANSOWANE ROZWIZYWANIE PROBLEMÓW

291

<command idMso="FileExit" enabled="false"/>
<command idMso="ApplicationOptionsDialog" enabled="false"/>
</commands>
...
</customUI>

W przycisku Office nadal pozostaj dostpne opcje Nowy, Otwórz i Zapisz.
Jeeli i one maj zosta ukryte, musimy uy elementu

officeMenu

, tak jak

przedstawiono w listingu 10.13.

L

ISTING

10.13.

Definicja XML Wstki suca do ukrywania polece Nowy, Otwórz i Zapisz

<officeMenu>
<button idMso="FileNew" visible="false" />
<button idMso="FileOpen" visible="false" />
<button idMso="FileSave" visible="false" />
</officeMenu>

Do ukrycia w menu Office pozosta ju tylko element — Niedawno uy-
wane dokumenty
— znany równie jako lista niedawno uywanych plików
(MRU, czyli Most Recently Used). Ukrycia nie moemy przeprowadzi za
pomoc definicji XML Wstki, natomiast w VBA mona tylko wyczyci
list, a nie usun zupenie. Aby wyczyci list podczas uruchomienia apli-
kacji, naley uy pierwszego bloku kodu przedstawionego w listingu
10.14. Podczas zamykania aplikacji trzeba przywróci warto maksymalnej
liczby dostpnych plików. Do tego celu wykorzystamy drugi fragment kodu
przedstawiony w listingu 10.14.

L

ISTING

10.14.

Kod sucy do czyszczenia listy ostatnio uywanych plików

'

Zmienna moduu przechowujca maksymaln liczb ostatnio uywanych plików.

Dim miNumberOfFiles As Integer

'

...

With Application.RecentFiles

'

Pobranie maksymalnej liczby dostpnych plików.

miNumberOfFiles = .Maximum

'

Wyczyszczenie listy.

.Maximum = 0
End With

'

...

'

Przywrócenie maksymalnej liczby ostatnio uywanych plików.

Application.RecentFiles.Maximum = miNumberOfFiles

Po uruchomieniu kodu zmodyfikowany Przycisk pakietu Office bdzie wygl-
da, tak jak pokazano na rysunku 10.7.

background image

292

R

OZDZIA

10. W

STKA W

O

FFICE

2007

R

YSUNEK

10.7.

Menu Office po modyfikacji

Naley pamita, e ustawienie wartoci zero maksymalnej liczbie ostatnio
uywanych plików powoduje trwae wyczyszczenie listy MRU. Wielu uyt-
kowników polega w swojej pracy na tej licie i mog by niezadowoleni, jeli
lista nie zostanie przywrócona. Mamy zatem problem. Lista MRU (jak rów-
nie maksymalna liczba plików znajdujcych si na licie) jest przechowywa-
nia w nastpujcym kluczu rejestru Windows:

HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\File MRU

Z technicznego punktu widzenia, moliwe jest zachowanie, a nastpnie przy-
wrócenie klucza rejestru, aby nie spowodowa zniszczenia listy MRU uyt-
kownika. Jednak do powszechn praktyk, zwaszcza w rodowiskach
korporacyjnych, jest uniemoliwianie programom dostpu do rejestru. Takie
ograniczenie nie pozwala na zbudowanie naprawd solidnego rozwizania
problemu trwaego czyszczenia listy MRU.

Zazwyczaj chcemy równie usun domylne menu kontekstowe wywie-

tlane po klikniciu prawym przyciskiem myszy w skoroszycie. To zadanie
jest bardzo atwe do wykonania za pomoc VBA, co przedstawiono w lis-
tingu 10.15.

L

ISTING

10.15.

Usunicie w Excelu 2007 menu kontekstowego wywietlanego po klikniciu

prawym przyciskiem myszy

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, _
Cancel As Boolean)

Cancel = True

End Sub

Nastpnie domylne menu kontekstowe zastpujemy wasnym paskiem
polece. W poprzednim zdaniu nie popenilimy pomyki, mówic „o pasku
polece”. Nawet w Excelu 2007 menu kontekstowe nadal jest takim samym
paskiem polece jak we wczeniejszych wersjach Excela.

Wspomniane menu kontekstowe zostao wprawdzie rozbudowane o pewne

funkcje dodatkowe, do których nie mamy dostpu, ale nadal pozostaje pas-

background image

Z

AAWANSOWANE ROZWIZYWANIE PROBLEMÓW

293

kiem polece. W tworzonej aplikacji zastpujemy je wic wasnym paskiem
polece, uywajc poniszego wiersza kodu:

Application.CommandBars("CustomMenu").ShowPopup

Moemy jedynie zgadywa, e Microsoft ma zamiar poczy t cz inter-
fejsu uytkownika Excela z nowym modelem Wstki. Prawdopodobnie
zabrako czasu, aby zrobi to przed wprowadzeniem Excela 2007, ale wszystko
moe si zmieni w przyszych wersjach aplikacji. Po wprowadzeniu powy-
szych zmian pozostao tylko dostosowanie Excela w ten sam sposób, który
przedstawiono w rozdziale 6.

Ukrycie Wstki

W pewnych sytuacjach trzeba cakowicie ukry Wstk. Zadanie to mona
przeprowadzi za pomoc VBA poprzez wykonanie w pierwszej kolejnoci
makra przedstawionego w listingu 10.16. Aby przywróci Wstk, naley
skorzysta z VBA do wykonania drugiego makra XLM przedstawionego w li-
stingu 10.16.

L

ISTING

10.16.

Ukrywanie i odkrywanie Wstki

'

Ukrycie Wstki.

Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", False)"

'

Przywrócenie Wstki.

Application.ExecuteExcel4Macro "Show.Toolbar(""Ribbon"", True)"

Na rysunku 10.8 pokazano wynik uycia powyszej techniki do ukrycia

Wstki.

R

YSUNEK

10.8.

Interfejs uytkownika Excela z cakowicie ukryt Wstk

background image

294

R

OZDZIA

10. W

STKA W

O

FFICE

2007

Dwie implikacje powyszej techniki wymagaj dalszych objanie. Po pierw-
sze, wykonanie wskazanego makra XLM w celu ukrycia Wstki ma
wpyw na wszystkie otwarte skoroszyty w biecej sesji Excela. Po drugie,
technika opiera si na obsudze makr XLM w Excelu. XLM to jzyk makr
uywany do tworzenia makr i aplikacji Excela przed wprowadzeniem VBA.
Mino ju ponad pitnacie lat do oficjalnego zastpienia XLM przez VBA
i zachodzi due prawdopodobiestwo, e Microsoft zakoczy obsug XLM
w jednej z kolejnych wersji pakietu Office. Dlatego te, stosujc powysz
technik, nie mona mie pewnoci, e bdzie dziaaa w kolejnych wersjach
Excela.

Okrelenie wielkoci kontrolek comboBox,
dropDown i editBox

W pewnych sytuacjach trzeba kontrolowa wielko kontrolki

comboBox

oraz

powizanych z ni kontrolek

dropDown

i

editBox

. W tym celu uywamy

atrybutu

sizeString

, ale zamiast liczby, takiej jak

10

lub

20

, podajemy

cig tekstowy zawierajcy maksymaln liczb znaków, które chcemy wywie-
tli. Znaki uyte w tym cigu tekstowym nie s wane, natomiast czcionka
zastosowana w kontrolce wpywa na jej rzeczywist szeroko.

Jeli chcemy ograniczy liczb znaków wprowadzonych w kontrolce,

moemy uy atrybutu

maxLength

wraz z liczb, np.

5

lub

8

. W listingu 10.17

ustawiono szeroko kontrolki

comboBox

na siedem znaków, a maksymaln

liczb znaków na osiem.

L

ISTING

10.17.

Definicja XML Wstki suca do ustawienia wielkoci kontrolki listy rozwijanej

<comboBox id="rxcboName"
label="Name:"
sizeString="xxxxxxx"
maxLength="8"
screentip="Prosz poda imi."
onChange="rxcboName_OnChange"/>

Nawigacja po kartach

W rozwizaniach z du iloci kart w interfejsie uytkownika skoroszytu lub
z ukrytym paskiem kart moe wystpi konieczno dostarczenia wasnej
funkcji sucej do nawigacji po kartach. W omawianym przykadzie mamy
sze kart, z których jedna pozostaje ukryta. Dlatego te musimy utworzy
list arkuszy zawierajc pi widocznych arkuszy.

W omawianym przykadzie uyjemy kontrolki

dropDown

zamiast

combo

´

Box

gównie dlatego, e kontrolka

comboBox

pozwala uytkownikom na

wprowadzanie nowych wpisów w kontrolce, a na to nie moemy si zgodzi.

background image

Z

AAWANSOWANE ROZWIZYWANIE PROBLEMÓW

295

Jednak problem z kontrolk

dropDown

polega na tym, e — w przeciwie-

stwie do

comboBox

— nie podaje nazwy zaznaczonego elementu, a jedynie

jego identyfikator i numer indeksu.

Chocia powinnimy dy do tworzenia w peni dynamicznych aplikacji,

wie si to z kosztem, jakim jest konieczno napisania kodu dla wszelkich
moliwych sytuacji. W rzeczywistych aplikacjach skaniamy si wic do two-
rzenia póstaych aplikacji, gdzie pewne elementy pozostaj stae, natomiast
inne s dynamiczne. W ten sposób zbudowalimy take rozwizanie w oma-
wianym przykadzie. Poniewa dysponujemy ustalon list arkuszy, których
nazwy nie ulegaj zmianie podczas dziaania aplikacji, nie trzeba uniewania
kontrolki

dropDown

w trakcie dziaania programu. Natomiast nazwy skoro-

szytów nie zostay zapisane na stae, co ma uatwi ich przysz obsug.

Arkusz o nazwie Hidden pozostaje ukryty i dlatego zawsze powinien by

wykluczony z listy. Definicja XML Wstki dla omawianego przykadu zostaa
przedstawiona w listingu 10.18. Atrybutu

getItemCount

uylimy w celu

pobrania liczby nazw arkuszy, podczas gdy atrybut

getItemLabel

wypenia

kontrolk

dropDown

list nazw. Stosujc oba atrybuty, zyskujemy nieco bar-

dziej dynamiczne rozwizanie.

L

ISTING

10.18.

Definicja XML Wstki suca do nawigacji midzy arkuszami

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="rxtabPED" label="Nawigacja po arkuszach">
<group id="rxgrpDropDowns" label="Nawigacja">
<dropDown id="rxddSheetNavigation"
label="Przejd do:"
getItemCount="rxdd_ItemCount"
getItemLabel="rxdd_ListItem"
onAction="rxdd_Item_Selected"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Wymagane procedury wywoa zwrotnych zostay przedstawione w listingu
10.19. Wywoanie zwrotne

rxdd_ItemCount

zwraca liczb arkuszy widocz-

nych w skoroszycie. W ten sposób Excel zostaje poinformowany, ile razy
powinien wykona wywoanie zwrotne

rxdd_ListItem

. Wywoanie to

dodaje do kontrolki

dropDown

nazw kadego widocznego arkusza. Podczas

pobierania nazwy zaznaczonego arkusza dodajemy

1

do indeksu listy prze-

kazywanego do VBA. Wynika to z faktu, e wartoci indeksu tablicy kolekcji
arkuszy rozpoczynaj si od jednego, podczas gdy VBA operuje na tablicach,
których numeracja rozpoczyna si od zera.

background image

296

R

OZDZIA

10. W

STKA W

O

FFICE

2007

L

ISTING

10.19.

Wywoania zwrotne do nawigacji midzy arkuszami

Option Explicit

'

Wywoanie zwrotne dla rxddSheetNavigation getItemCount.

Sub rxdd_ItemCount(control As IRibbonControl, ByRef returnedVal)

Dim lCount As Long
Dim wksSheet As Worksheet

Set mwkbNavigation = ThisWorkbook

'

Pobranie liczby widocznych arkuszy.

For Each wksSheet In mwkbNavigation.Worksheets
If wksSheet.Visible = xlSheetVisible Then
lCount = lCount + 1
End If

Next wksSheet

'

Wymiary tablicy arkuszy.

returnedVal = lCount

End Sub

'

Wywoanie zwrotne dla rxddSheetNavigation getItemLabel.

Sub rxdd_ListItem(control As IRibbonControl, index As Integer, _
ByRef returnedVal)

'

Wypenienie kontrolki dropDown nazwami arkuszy.

If mwkbNavigation.Worksheets(index + 1).Visible = _
xlSheetVisible Then

returnedVal = mwkbNavigation.Worksheets(index + 1).Name

End If

End Sub

'

Wywoanie zwrotne dla rxddSheetNavigation onAction.

Sub rxdd_Item_Selected(control As IRibbonControl, id As String, _
index As Integer)

Dim sSheetName As String

'

Pobranie nazwy aktualnie zaznaczonego arkusza.

sSheetName = mwkbNavigation.Worksheets(index + 1).Name

'

Aktywacja zaznaczonej nazwy.

mwkbNavigation.Worksheets(sSheetName).Activate

End Sub

background image

D

ALSZE POZYCJE DO CZYTANIA

297

Po uruchomieniu skoroszytu nastpuje utworzenie nowej karty Nawigacja
po arkuszach
. Uytkownik moe przej do dowolnego arkusza poprzez
wybranie jego nazwy z listy wywietlanej przez kontrolk

dropDown

, co poka-

zano na rysunku 10.9.

R

YSUNEK

10.9.

Nawigacja po arkuszach

Skoroszyt zawierajcy omówiony przykad znajduje si w katalogu

\Koncepcje\Rozdzial10 na pycie CD doczonej do ksiki.

Uywanie szablonów

Stosujc szablony, mona na etapie tworzenia aplikacji zaoszczdzi sporo
czasu. Narzdzie Custom UI Editor znacznie uatwia tworzenie i uywanie
dostosowanych do wasnych potrzeb szablonów XML Wstki.

1.

W narzdziu Custom UI Editor naley utworzy definicj XML Wst-

ki i upewni si, e jest prawidowo zbudowana.

2.

Nastpnie zawarto XML trzeba skopiowa do edytora tekstowego,

takiego jak Notatnik, i zapisa w katalogu \Program Files\Custom UIEditor\
Samples\
jako plik z rozszerzeniem .xml.

Na rysunku 10.10 pokazano wygld menu Sample w narzdziu Custom UI

Editor po dodaniu kilku szablonów. Wybranie szablonu powoduje skopiowa-
nie kodu szablonu XML na kart Custom UI.

Dalsze pozycje do czytania

RibbonX: Customizing the Of ce 2007 Ribbon

Autorzy: Robert Martin, Ken Puls i Teresa Hennig
ISBN 978-0-470-191111-8

background image

298

R

OZDZIA

10. W

STKA W

O

FFICE

2007

R

YSUNEK

10.10.

Wasne szablony w narzdziu Custom UI Editor

Poniewa Wstka jest funkcj dostpn w caym pakiecie Office, wic nie
ma ksiki powiconej jedynie Wstce w Excelu. Ta ksika porusza te-
mat dostosowania Wstki do wasnych potrzeb w aplikacjach Excel, Word
i Access. Zostaa napisana w prosty, atwy do zrozumienia sposób i powinna
by uznana za „bibli” RibbonX.

Portale internetowe

XML in Office Developer Portal

Portal XML in Office Developer na witrynie Microsoftu stanowi dobry
punkt wyjcia do uzyskania wikszej iloci informacji na temat formatu
Open XML. Warto odwiedzi stron http://msdn.microsoft.com/en-us/office/
aa905545.aspx
.

OpenXMLDeveloper.org

Inna dobra witryna powicona Open XML to OpenXMLDeveloper.org dos-
tpna pod adresem http://openxmldeveloper.org/default.aspx.

background image

W

NIOSKI

299

The Office Fluent User Interface Developer Portal

Portal The Office Fluent User Interface Developer na witrynie Microsoftu
oferuje dostp do wyczerpujcych informacji na temat RibbonX. Warto
odwiedzi stron http://msdn.microsoft.com/en-us/office/aa905530.aspx.

Wnioski

W tym rozdziale przedstawiono niektóre z najwaniejszych praktyk stoso-
wanych podczas projektowania i programowania RibbonX. Zaprezentowane
najlepsze praktyki bd ewoluoway wraz z zyskaniem coraz wikszego do-
wiadczenia na tych polach. Na wiele sposobów RibbonX jest now i inte-
resujc technologi, cho obecnie ma pewne powane ograniczenia podczas
pracy z poziomu VBA. Prawdopodobnie najpowaniejszym ograniczeniem
jest brak moliwoci uycia podejcia bazujcego na tabeli, zwaszcza w apli-
kacjach dyktatorskich.


Wyszukiwarka

Podobne podstrony:
Excel Programowanie dla profesjonalistow exprof
Excel Programowanie dla profesjonalistow exprof
Excel Programowanie dla profesjonalistow
Excel Programowanie dla profesjonalistow exprof
Excel Programowanie dla profesjonalistow exprof
Excel Programowanie dla profesjonalistow 2
Excel Programowanie dla profesjonalistow exprof
Excel Programowanie dla profesjonalistow exprof
Excel Programowanie dla profesjonalistow exprof
informatyka wtyczki do wordpressa programowanie dla profesjonalistow brad williams ebook
Podstawa programowa dla gimnazjum

więcej podobnych podstron