Okno InputBox w Excel VBA

Tomasz Kenig/ Styczeń 8, 2017/ Kurs Excel VBA/ 2 comments

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.

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:

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.

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!

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:

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.

2 Comments

  1. Witam 🙂
    Sub BoxExample()
    Dim StrName As String
    StrName = InputBox(“Wprowadź swoje imię”)
    MsgBox (“Witaj ” & vbCrLf & “Miłego dnia!”)
    End Sub
    czy tu jest jakiś błąd ???. mam zamiar sobie przypomnieć VBA i czegoś się sam dla siebie nauczyć, zatem jeśli porównuje przykłady widzę błąd, ale specjalistą nie jestem.
    Powinno być:
    Sub BoxExample()
    Dim StrName As String
    StrName = InputBox(“Wprowadź swoje imię”)
    MsgBox (“Witaj ” StrName & vbCrLf & “Miłego dnia!”)
    End Sub
    Ciepło Pozdrawiam 🙂
    Kurs Bardzo mi się podoba 🙂 Jak dla mnie Bomba 🙂

    1. Czarek, dzięki za info. Kod już poprawiony

Dodaj komentarz