Okno InputBox w Excel VBA

1. Okno InputBox – wprowadzanie danych

Dobrze, że dotarłeś już do tej części kursu. Po oknie MsgBox poznasz teraz okno do wprowadzania danych do naszego kodu VB. 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 InputExample()
Range("A1") = InputBox("Uzupełnij komórkę A1")
End Sub

Jak widzimy, 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 InputExample1()
Cells(1, 1) = InputBox("Uzupełnij komórkę A1")
End Sub

2. Okno InputBox – dodatkowe argumenty

Poniżej pełna postać funkcji InputBox zawierającej wszystkie argumenty. Jedynym obowiązkowym argumentem, 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.

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 – Jak korzystać z okna funkcji InputBox?

Wyobraźmy sobie, że chcemy napisać prosty program, który po wprowadzeniu imienia w okienku Input 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 " & StrName & vbCrLf & "Miłego dnia!") 'prezentujemy komunikat
End Sub

Jak widzimy, łą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. Poniżej warunki:

  • Utwórzmy okno Input 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 InputExample2()

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
Kurs Excel VBA - Funkcja InputBox
Kurs Excel VBA – Funkcja InputBox

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 program wykorzystujący Msg i Input, 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 e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

11 komentarzy “Okno InputBox w Excel VBA”