Istnieje jednak specjalna technika, która pozwala na zapełnienie schowka określonym tekstem, a także umożliwia pobranie aktualnych wartości ze schowka o ile dotyczą tekstu (lub wartości liczbowych). Prześledźmy to rozwiązanie w kolejnych krokach zaprezentowanych poniżej.
1. Niezbędne referencje
Metoda ta wymaga ustanowienia referencji do biblioteki 'Microsoft Forms 2.0 Object Library'. W tym celu w edytorze VBA wybieramy kolejno Menu >> Tools >> References >> odszukujemy i zaznaczamy w/w bibliotekę.
Wskazówka! Jeżeli w naszym projekcie utworzony jest choćby jeden UserForm oznaczać to będzie, że odpowiednie referencje zostały ustanowione.
2. Tworzenie instancji obiektu DataObject
Praca ze schowkiem wymagać będzie utworzenia obiektu, który umożliwi przekazywanie wartości. Poniższe linie tworzą tzw. wiązanie wczesne (early binding) do obiektu DataObject.
1 | Dim tmpDO As DataObject |
2 | Set tmpDO = New DataObject |
3. Dodanie tekstu do schowka
To pierwsza sytuacja, w której wykorzystamy uprzednio utworzony obiekt. W pierwszej kolejności zdefiniujemy jaki tekst ma trafić do schowka, ale dopiero kolejna linia procedury skieruje strumień tekstu w tą przestrzeń pamięci.
1 | tmpDO.SetText "Ten tekst trafi do schowka!" |
2 | tmpDO.PutInClipboard |
4. Pobranie wartości ze schowka
Także i w tym przypadku niezbędne będą 2 linie kodu- pierwsza pobiera zawartość schowka do naszego obiektu, a kolejne linie prezentują różne warianty skierowania strumienia tekstu: do okna immediate, do komórki czy też do zakresu komórek.
1 | 'pobranie ze schowka |
2 | tmpDO.GetFromClipboard |
3 |
4 | 'przekazanie do różnych obszarów |
5 | Debug.Print tmpDO.GetText |
6 | Range( "A1" ) = tmpDO.GetText |
7 | Range( "B1:B10" ) = tmpDO.GetText |
5. Uwagi końcowe.
Wykorzystanie obiektu DataObject umożliwia, przynajmniej na chwilę obecną, pracę wyłącznie z tekstem. Zawartość tego obiektu przechowywana jest tak długo jak długo istnieje obiekt. Zawartość przekazana do schowka pozostaje w nim także po wykasowaniu instancji obiektu DataObject.
Brak komentarzy:
Prześlij komentarz