Thread View: pl.comp.bazy-danych.msaccess
6 messages
6 total messages
Started by radociep
Thu, 15 Jan 2015 13:13
Odczyt wartości ze wstążki VBA
Author: radociep
Date: Thu, 15 Jan 2015 13:13
Date: Thu, 15 Jan 2015 13:13
6 lines
1366 bytes
1366 bytes
Mam zdefiniowaną własną wstążkę. Chciałbym za pomocą VBA odczytać wartości z rozwijanej listy (a nawet kilku). Może ktoś wie jak? pozdrawiam RC
Re: Odczyt wartości ze wstążki VBA
Author: IDKrzych
Date: Fri, 16 Jan 2015 04:20
Date: Fri, 16 Jan 2015 04:20
45 lines
2695 bytes
2695 bytes
W dniu 2015-01-15 o 14:13, radociep@gmail.com pisze:
> Mam zdefiniowaną własną wstążkę. Chciałbym za pomocą VBA odczytać wartości z rozwijanej listy (a nawet kilku).
> Może ktoś wie jak?
Na początku w customUI w deklaracji:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="moRibbon_onLoad">
I w VBA tworzysz uchwyt:
Private moRibbon As IRibbonUI
Sub moRibbon_onLoad(ribbon As IRibbonUI)
Set moRibbon = ribbon
End Sub
Przydatne by odświeżać naszą wstążkę poprzez:
moRibbon.Invalidate
Później obsługa takiej np. listy:
<comboBox id="cbLista" label="Lista" getText="getText"
getItemCount="getIlosc" getItemLabel="getItem" onChange="cbWybrano" />
tak np. w VBA:
'ile pozycji
Sub getIlosc(control As IRibbonControl, ByRef returnedVal)
returnedVal = 13
End Sub
'wypelniamy każdą pozycję -> wywołane tyle razy ile zwróci getIlosc
Sub getItem(control As IRibbonControl, Index As Integer, ByRef returnedVal)
returnedVal = "Pozycja " & cstr(Index)
End Sub
'reakcja na wybraną pozycję z listy
Sub cbWybrano(control As IRibbonControl, text As String)
MsgBox("Wybrano: " & text)
End Sub
To tak na szybko i w skrócie.
Pozdrawiam
--
IDKrzych
"Jakkolwiek będzie - będzie inaczej, aniżeli sobie wyobrażamy
- ponieważ między Dobrem a Złem znajdujemy się w życiu i w świecie
wielowymiarowym,
w którym dokumentnie pomieszane jest Przypadkowe z Nieuchronnym."
(S. Lem 1999)
Re: Odczyt wartości ze wstążki VBA
Author: radociep
Date: Fri, 16 Jan 2015 06:57
Date: Fri, 16 Jan 2015 06:57
44 lines
2899 bytes
2899 bytes
OK. Jeżeli dobrze zrozumiałem to odczytam wartość z rozwijanej listy tylko tej, w której dokonuje zmian. A ja potrzebuję jeszcze odczyt wartości z innych list (kontrolek).
> Na początku w customUI w deklaracji:
> <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
> onLoad="moRibbon_onLoad">
>
> I w VBA tworzysz uchwyt:
> Private moRibbon As IRibbonUI
> Sub moRibbon_onLoad(ribbon As IRibbonUI)
> Set moRibbon = ribbon
> End Sub
> Przydatne by odświeżać naszą wstążkę poprzez:
> moRibbon.Invalidate
>
> Później obsługa takiej np. listy:
> <comboBox id="cbLista" label="Lista" getText="getText"
> getItemCount="getIlosc" getItemLabel="getItem" onChange="cbWybrano" />
>
> tak np. w VBA:
> 'ile pozycji
> Sub getIlosc(control As IRibbonControl, ByRef returnedVal)
> returnedVal = 13
> End Sub
> 'wypelniamy każdą pozycję -> wywołane tyle razy ile zwróci getIlosc
> Sub getItem(control As IRibbonControl, Index As Integer, ByRef returnedVal)
> returnedVal = "Pozycja " & cstr(Index)
> End Sub
>
> 'reakcja na wybraną pozycję z listy
> Sub cbWybrano(control As IRibbonControl, text As String)
> MsgBox("Wybrano: " & text)
> End Sub
>
> To tak na szybko i w skrócie.
> Pozdrawiam
> --
> IDKrzych
>
> "Jakkolwiek będzie - będzie inaczej, aniżeli sobie wyobrażamy
> - ponieważ między Dobrem a Złem znajdujemy się w życiu i w świecie
> wielowymiarowym,
> w którym dokumentnie pomieszane jest Przypadkowe z Nieuchronnym."
> (S. Lem 1999)
Re: Odczyt wartości ze wstążki VBA
Author: IDKrzych
Date: Sun, 18 Jan 2015 21:18
Date: Sun, 18 Jan 2015 21:18
37 lines
2551 bytes
2551 bytes
W dniu 2015-01-16 o 07:57, radociep@gmail.com pisze:
> OK. Jeżeli dobrze zrozumiałem to odczytam wartość z rozwijanej listy tylko tej, w której dokonuje zmian. A ja potrzebuję jeszcze odczyt wartości z innych list (kontrolek).
Ale podobnie jest z już zdefiniowanymi w customUI. Ogólna zasada to o
zdefiniowaniu funkcji zwrotnych w kodzie przycisku/listy/kontrolki
wywoływanych przy danej akcji.
np. kod z customUI:
<comboBox id="Combo1" label="Miesiąc" onChange="Combo1_Change">
<item id="Month1" label="Styczeń" />
<item id="Month2" label="Luty"/>
<item id="Month3" label="Marzec"/>
<item id="Month4" label="Kwiecień"/>
<item id="Month5" label="Maj"/>
<item id="Month6" label="Czerwiec"/>
<item id="Month7" label="Lipiec"/>
<item id="Month8" label="Sierpień"/>
<item id="Month9" label="Wrzesień"/>
<item id="Month10" label="Październik"/>
<item id="Month11" label="Listopad"/>
<item id="Month12" label="Grudzień"/>
</comboBox>
i możemy tak wyświetlić miesiąc w kodzie VB:
Sub Combo1_Change(control As IRibbonControl, text As String)
MsgBox text
End Sub
Pozdrawiam
--
IDKrzych
"Jakkolwiek będzie - będzie inaczej, aniżeli sobie wyobrażamy
- ponieważ między Dobrem a Złem znajdujemy się w życiu i w świecie
wielowymiarowym,
w którym dokumentnie pomieszane jest Przypadkowe z Nieuchronnym."
(S. Lem 1999)
Re: Odczyt wartości ze wstążki VBA
Author: radociep
Date: Mon, 19 Jan 2015 08:33
Date: Mon, 19 Jan 2015 08:33
8 lines
1722 bytes
1722 bytes
Hmm.... powiedzmy mam dwie kontrolki na podstawie, których chcę zbudować filtr. W pierwszej są lata (2011, 2012, ...) a w drugiej miesiące (styczeń, luty, ...)
Interesuje mnie np. 'styczeń 2011' albo 'marzec 2013' - dane z kilku kontrolek.
Czy jest jakieś polecenie typu:
Ribbons("Moja wstążka").Combo("Lata").Text
???
Re: Odczyt wartości ze wstążki VBA
Author: IDKrzych
Date: Mon, 19 Jan 2015 14:13
Date: Mon, 19 Jan 2015 14:13
42 lines
2866 bytes
2866 bytes
W dniu 2015-01-19 o 09:33, radociep@gmail.com pisze:
> Hmm.... powiedzmy mam dwie kontrolki na podstawie, których chcę zbudować filtr. W pierwszej są lata (2011, 2012, ...) a w drugiej miesiące (styczeń, luty, ...)
> Interesuje mnie np. 'styczeń 2011' albo 'marzec 2013' - dane z kilku kontrolek.
>
> Czy jest jakieś polecenie typu:
>
> Ribbons("Moja wstążka").Combo("Lata").Text
>
> ???
>
Niestety nie.
Kontrolować wstążkę możesz tylko poprzez wcześniej zdefiniowane (w
kodzie xml wstążki) funkcje/procedury zwrotne, które sama wstążka będzie
wywoływać w zależności od akcji.
Są akcje ustawiające wartości np. etykiety:
getLabel, getText
W reakcji na klikanie, przełącznie oraz wybór z listy:
onAction, onChange
Niestety każdy formant ma inny zestaw możliwych funkcji zwrotnych.
Ale i tak muszą one być wcześniej zdefiniowane w kodzie xml customUI.
P.S. Jest jeszcze szansa, że MS coś usprawnił w ost. edycjach Office,
VBA -> nie szukałem nowych rozwiązań. Jak programowałem własną wstążkę
za Office 2007, 2013 były tylko takie ograniczone możliwości wpływania
na nią i interakcji.
Pamiętam jeszcze jakiś płatne narzędzie zewnętrzne, które miało dawać
większą kontrolę nad wstęgą z poziomu kodu VB -> niestety nie testowałem
i nie pamiętam nazwy :(
Pozdrawiam
--
IDKrzych
"Jakkolwiek będzie - będzie inaczej, aniżeli sobie wyobrażamy
- ponieważ między Dobrem a Złem znajdujemy się w życiu i w świecie
wielowymiarowym,
w którym dokumentnie pomieszane jest Przypadkowe z Nieuchronnym."
(S. Lem 1999)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads