Okno InputBox w Excel VBA

Kurs Excel VBA - Okno InputBox

Kurs Excel VBA – Okno InputBox

1. Okno InputBox – wprowadzanie danych

Okno InputBox służy do wprowadzania danych do naszego kodu VBA. Podobnie jak okno MsgBox, okno te ma wiele dodatkowych parametrów. Spróbujmy stworzyć prosty program służący do wprowadzenia danych do komórki A1 w naszym arkuszu danych.

Sub InputBoxExample()
Range("A1") = InputBox("Uzupełnij komórkę A1")
End Sub

Jak możemy zauważyć, do wartości komórek naszego arkusza odwołujemy się poprzez podanie ich nazwy w cudzysłowie, stosując polecenie Range(„komórka”). W nawiasach polecenia InputBox wpisujemy komunikat, który wyświetli się przed wprowadzeniem danych przez użytkownika. Komórkę A1 możemy zaadresować także przy użyciu polecenia Cells, jak poniżej:

Sub InputBoxExample1()
Cells(1, 1) = InputBox("Uzupełnij komórkę A1")
End Sub

2. InputBox – dodatkowe informacje

Poniżej pełna postać funkcji InputBox zawierającej wszystkie argumenty. Jedynym obowiązkowym arkumentem, który powinien zostać wypełniony jest argument Prompt, a więc komunikat wyświetlany przed wprowadzeniem wartości do kodu VBA.

Function InputBox(Prompt As String, [Title], [Default], [Left], [Top], [HelpFile], [HelpContextID])

Prompt – jest argumentem obowiązkowym. Jest to tekst wyświetlany w oknie InputBox.

Title – argument nieobowiązkowy. Tytuł okna, tak jak w przypadku okna MsgBox.

Default – Wartość Default, wyświetlająca się zanim wprowadzimy jakiekolwiek dane.

Left – Określa pozycję okna w pixelach od lewej strony

Top – Określa pozycję okna w pixelach od góry

HelpFile – argument nie jest obowiązkowy. Argument określa odniesienie do pliku pomocy. Sam numer pliku pomocy określamy w argumencie Context.

HelpContextId – argument nie jest obowiązkowy. W argumencie odnosimy się za pomocą wartości numerycznej do określonego w poprzednim argumencie HelpFile pliku pomocy.

 

3. Przykłady zastosowania

Wyobraźmy sobie, że chcemy napisać prosty program, który po wprowadzeniu imienia w okienku InputBox wyświetli nam powitanie korzystając z okna MsgBox. Do dzieła!

Sub BoxExample()
Dim StrName As String 'deklarujemy zmienną imię
StrName = InputBox("Wprowadź swoje imię") 'wprowadzamy wartość dla naszej zmiennej z okna InputBox
MsgBox ("Witaj " & vbCrLf &  "Miłego dnia!") 'prezentujemy komunikat
End Sub

Jak możemy zauważyć, łączenie fraz w VBA odbywa się przy użyciu znaku „&”. Zamiennie możemy tu zastosować także znak „+”. Pomiędzy imieniem a powitaniem wstawiliśmy znak Enter wykorzystując do tego element „vbCrLf„.

Kurs Excel VBA - Okno InputBox

Kurs Excel VBA – Okno InputBox

Napiszmy krótki program, w którym użyjemy większości poznanych wcześniej argumentów okna InputBox. Poniżej warunki:

  • Utwórzmy okno InputBox do wprowadzania roku urodzenia
  • Okno z defaultu powinno wskazywać rok 1990
  • Po wprowadzeniu roku urodzenia program powinien za pomocą funkcji Date() i Year() obliczać wiek użytkownika
  • Okno powinno być umiejscowione w lewym górnym rogu ekranu
  • Na zakończenie powinno wyświetlić się okno MsgBox z wiekiem użytkownika i podziękowaniem

Do dzieła:

Sub InputBoxExample2()

Dim strRok As String
strRok = InputBox("Wprowadź swój rok urodzenia", "Okno wprowadzania", 1990, 0, 0)
MsgBox "Twój wiek to: " & Year(Date) - strRok & " lat(a)" & vbCrLf & "Dziękuję za odpowiedź !!!"

End Sub

Plik z przykładami załączam poniżej:
kurs_excel_vba_inputbox

4. Zadania (Rozwiązanie możesz wpisać w komentarzu)

4.1. Stwórz makro wykorzystujące MsgBox i InputBox, wypełniający 4 komórki naszego arkusza od A1 do A4 danymi: Imię, Nazwisko, Wzrost, Wiek. Po zakończeniu powinien wyświetlić się komunikat o zakończeniu wprowadzania danych.

4.2 Usprawnij powyższy program. Po wyświetleniu komunikatu o wprowadzeniu danych wyświetl wszystkie wprowadzone dane przy użyciu jednego okna MsgBox. Spróbuj umiejscowić okno w prawym dolnym rogu ekranu. ustaw także wartości default.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.