Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

Twoja przeglądarka nie jest obsługiwana

Aby używać tej witryny, musisz zaktualizować przeglądarkę.

Zaktualizuj przeglądarkę do najnowszej wersji programu Internet Explorer

Jak używać zmiennych w podprocedur programu Excel w programie Visual Basic dla aplikacji

WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.

Anglojęzyczna wersja tego artykułu to:843144
WPROWADZENIE
W tym artykule opisano sposób używania zmiennych w programie Microsoft Programu Excel w programie Microsoft Visual Basic for podprocedur Aplikacje.

Powrót do u góry
Więcej informacji

Zmienne w procedurę typu sub

Rozbudowanych funkcji języków programowania jest możliwość tak, aby zawartość zmiennej można przechowywać coś w zmiennej lub można zmienić później w procedurze. W tym dokumencie omówiono następujące Użycie zmiennych w języku Visual Basic:
  • W jaki sposób są zadeklarowane zmienne.
  • Procedury i projekty, które można użyć Zmienna.
  • Okres istnienia zmiennej.
Powrót do początku

Zadeklaruj zmienną w makrze

Najprostszy sposób deklarowania zmiennej w makrze jest użycie Dim Instrukcja. Następujący wiersz deklarowana jako dwie zmienne, x i y, Liczby całkowite:
Dim x As Integer, y As Integer
X i y, określone jako liczby całkowite, sprawi, że języka Visual Basic do odłogowania wystarczającej ilości pamięci dla zmiennej liczby całkowitej (2 bajty x a y) oraz że informacje są przechowywane w x lub y jest liczbą całkowitą między -32768 do 32767.

Uwaga W przypadku więcej niż jednej zmiennej za pomocą pojedynczego Dim oświadczenie, należy określić typ danych dla każdego Zmienna.

Jeśli nie określisz typu danych dla każdej zmiennej w Poniższy kod języka Visual Basic tylko zmiennej y jest skonfigurowana jako liczba całkowita Zmienna. Zmienna x będzie typ wariantu:
Dim x, y As Integer
Aby uzyskać dodatkowe informacje zobacz "typ danych Variant" sekcja.

Aby wykonać test zmiennej, wykonaj następujące kroki:
  1. Zapisz i zamknij wszystkie otwarte skoroszyty, a następnie otwórz nowy skoroszyt.
  2. Uruchom Edytor Visual Basic (naciśnij klawisze ALT + F11).
  3. Na Wstaw menu, kliknij przyciskModuł.
  4. Wpisz następujący kod:
    Sub Variable_Test()Dim x As Integer, y As Integerx = 10y = 100MsgBox "the value of x is " & x & _Chr(13) & "the value of y is " & yEnd Sub
  5. Uruchom Variable_Test makro. Wyświetlany jest następujący komunikat:
    wartość x jest 10
    wartość y wynosi 100
  6. Kliknij przycisk OK.
  7. W Variable_Test Makro zmień następujący wiersz:
    x = 10

    Aby:
    x = "error"
  8. Uruchom Variable_Test makro.
Zostanie wyświetlony błąd w czasie wykonywania, ponieważ nie jest "błąd" Liczba całkowita i próbuje przypisać wartość ta zmienna typu Liczba całkowita x.

Powrót do początku

Podsumowanie typów danych

W poniższej tabeli wymieniono popularne typy zmiennych danych:

Typ danychLimit rozmiaru dla składowaniaDopuszczalny zakres
Wartość logiczna 2 bajty Wartość PRAWDA lub FAŁSZ
Liczba całkowita 2 bajty -od 32 768 do 32 767.
Długie 4 bajty 648 do 2 147 483 647
Podwójne 8 bajtów -1, 79769313486232E308 do -4, 94065645841247E-324 dla wartości ujemnych; 4, 94065645841247E-324 do 1, 79769313486232E308 dla wartości dodatnich
Waluta 8 bajtów -922,337,203,685,477.5808 do 922,337,203,685,477.5807
Data 8 bajtów 1 Stycznia 100 do 31 grudnia 9999
Ciąg Bajty 10 + długość ciągu

Powrót do u góry

Typ danych Variant

Jeśli nie zostanie określony typ danych, Deklarując zmienną, lub nie we wszystkich zadeklarować zmienną, kodu języka Visual Basic automatycznie określa Typ danych Variant dla tej zmiennej. Poniżej przedstawiono zalety Zmienne zadeklarowane jako typ danych to:
  • Zmienne mogą zawierać ciąg, datę, godzinę, wartość logiczna, lub wartości liczbowe.
  • Zmienne można konwertować wartości, które zawierają automatycznie.
Wadą jest to, że zmienne wariantu wymaga co najmniej 16 Liczba bajtów pamięci. 16 bajtów pamięci mogą być znaczne w bardzo dużych procedur lub w modułach złożonych.

Aby zobaczyć, jak działa Variable_Test makra, wykonaj następujące kroki:
  1. Zmień kod w Variable_Test makra:
    Sub Variable_Test()Dim x, yx = "string"y = 1.23MsgBox "the value of x is " & x & _Chr(13) & "the value of y is " & yEnd Sub
  2. Uruchom Variable_Test makro.
Nie zostanie wyświetlony błąd, ponieważ można przypisać nic Zmienne wariantu x i y.

Uwaga Można również pozostawić się następujący wiersz i będzie makra nadal działają jako zmienne x i y są traktowane jako wariant typy danych:
Dim x, y

Powrót do początku

Zakres zmiennej

Deklarując zmienną mogą lub nie mogą być widoczne przez inne makra w tym samym module, w innych modułach lub w innych projektach. To dostępność zmiennej w modułach nosi nazwę zakresu. Trzy typy zakres są procedury, prywatnego moduł poziom i publicznych poziom modułu. Zakres zależy od tego, jak i gdzie zadeklarowana zmienna lub zmienne.

Powrót do u góry

Zakres poziom procedury

Zmienna o zasięgu na poziomie procedury nie jest widoczny poza Procedura w przypadku gdy jest zadeklarowany. Jeśli zostanie ustawiona wartość zmiennej, która ma zakres poziom procedury, że zawartość zmiennej nie będą widoczne dla innych makra.

Aby sprawdzić, czy jest zmiennej o zakresie poziom procedury widoczne na zewnątrz procedury, jeżeli zadeklarowano, wykonaj następujące kroki:
  1. Włóż nowy moduł do projektu.
  2. Do tego modułu, należy wpisać oba następujące makra:
    Sub Macro1()Dim x As Integerx = 10MsgBox "x, as seen by Macro1 is " & x'the next line runs Macro2Macro2End SubSub Macro2()MsgBox "x, as seen by Macro2 is " & xEnd Sub
  3. Uruchom Makro1.

    Wyświetlany jest następujący komunikat:
    x, jak widziane przez Makro1 wynosi 10
  4. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x, jak widziane przez Macro2 jest
  5. Kliknij przycisk OK.
Macro2 nie wyświetla wartości dla zmiennej x, ponieważ zmienna x jest lokalne Makro1.

Powrót do u góry

Prywatne i publiczne zasięgu na poziomie modułu

Można zdefiniować zmienne w sekcji deklaracji modułu (w górnej części modułu przede wszystkim sub procedury) i ustaw zakres sieci za pomocą zmiennej Publiczne wyciąg, Dim oświadczenie, lub Prywatne Instrukcja. Jeśli umieścisz Publiczne sprawozdania z przodu zmienna będzie zmienna dostępne dla wszystkich makr wszystkie moduły w projekcie. Jeśli umieścisz albo Dim oświadczenie lub Prywatne Instrukcja z przodu zmienna zmienna jest dostępna tylko do makr w module, gdzie jest zostały zgłoszone.

Aby zobaczyć Różnica między Publiczne Instrukcja i Dim oświadczenie, wykonaj następujące kroki:
  1. Zapisz i zamknij wszystkie otwarte skoroszyty, a następnie otwórz nowy skoroszyt.
  2. Uruchom Edytor Visual Basic.
  3. Wstawianie modułu do projektu.
  4. Wpisz następujący kod do modułu, to:
    Public x As IntegerSub Macro_1a()x = 10MsgBox xMacro_1bEnd SubSub Macro_1b()x = x * 2MsgBox xMacro2End Sub
  5. Włóż inny moduł do projektu.
  6. Wpisz następujący kod do modułu, to:
    Sub Macro2()x = x * 3MsgBox xEnd Sub
  7. Uruchom Macro_1a makra w pierwszego modułu.

    Zadeklarowana zmienna x "Publiczne x jako całkowitą", wszystkie trzy makra w projekcie mają dostęp do wartość x. Pierwsze pole komunikat wyświetla wartość 10. Drugi komunikat pole wyświetla wartość 20 (ponieważ x jest mnożona przez 2 w Macro_1b). Trzecie pole komunikat wyświetla wartość 60 (ponieważ wartość x została zmieniona na 20 cali Macro_1b a następnie został mnożony przez 3 Macro2).
  8. Zmienić wiersz deklaracji w module pierwszy od:
    Public x As Integer

    Aby:
    Dim x As Integer
  9. Uruchom Macro_1a makro.

    Zmienna x zadeklarowany jako "Dim x jako Liczba całkowita", tylko makra pierwszego modułu mają dostęp do wartości x. Tak pierwsze pole komunikat wyświetla wartość 10, wyświetla okno komunikatu drugiego wartość 20, (ponieważ x jest mnożona przez 2 w Macro_1b) i trzecim polu komunikat wyświetla wartość 0 (ponieważ Macro2 nie widać wartości x i niezainicjowaną wartość zero używane przez Makro 2).
  10. Zmienić wiersz deklaracji w module pierwszy od:
    Dim x As Integer

    Aby:
    Private x As Integer
  11. Uruchom Macro_1a makro.
Te same pola wiadomości są wyświetlane przy użyciu Prywatne Instrukcja zakresu, jak za pomocą Dim Instrukcja. Zmienna x ma ten sam zakres prywatnego do Moduł, gdzie został zadeklarowany.

Uwaga Jeśli mają zakres zmiennej, zostać ograniczony do Moduł, w przypadku gdy jest on zadeklarowany jako, użyj Prywatne Instrukcja zamiast Dim Instrukcja. Oba osiągnąć ten sam efekt, ale jest zakres wyraźniejsze podczas czytania kodu, jeśli używasz Prywatne Instrukcja.

Powrót do u góry

Okres istnienia zmiennej

Czas, w którym zmiennej zachowuje swoją wartość jest znany jako jego okres istnienia. Wartość zmiennej z czasem zmieniać jego użytkowania, ale będzie on Zachowaj wartości. Również, gdy zmienna traci zakresu, nie ma ono wartość.

Powrót do początku

Inicjowanie wartości zmiennej

Po uruchomieniu makra, wszystkie zmienne zostały zainicjowane do wartość. Zmienna numeryczna jest ustawiana na zero, to ciąg o zmiennej długości zainicjowany na ciąg znaków o zerowej długości (""), i podać ciąg znaków o stałej długości Kod ASCII 0. Można zainicjować zmiennych typu Variant są puste. Puste zmienna jest reprezentowany przez zero w kontekście numeryczne i ciąg znaków o zerowej długości ("") w kontekście ciąg.

Powrót do u góry

Zmienne na poziomie procedury

Jeśli masz Zmienna zadeklarowana w makrze przy użyciu Dim oświadczenie, zmiennej zachowuje swoją wartość tak długo, jak makro jest uruchomiony. Jeśli to makro, wywołuje inne makra, wartość zmiennej jest zachowane (nie są dostępne inne makra chociaż) jak długie one inne makra są również uruchomiona.

Wykazanie zmiennymi jak poziom procedury Praca, wykonaj następujące kroki:
  1. Włóż nowy moduł do projektu.
  2. Do tego modułu, należy wpisać oba następujące makra:
    Sub Macro1()'set x as a procedure level variableDim x As Integer   MsgBox "the initialized value of x is " & xx = 10MsgBox "x is " & x'the next line runs Macro2Macro2MsgBox "x is still " & xEnd SubSub Macro2()MsgBox "x, as seen by Macro2 is " & xEnd Sub
  3. Uruchom Makro1.

    Wyświetlany jest następujący komunikat:
    zainicjowana wartość x 0
  4. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x jest 10
  5. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x, jak widziane przez Macro2 jest
  6. Kliknij przycisk OK.

    Macro2 nie wyświetla wartości dla zmiennej x, ponieważ zmienna x jest lokalne Makro1. Wyświetlany jest następujący komunikat:
    x jest nadal 10
  7. Kliknij przycisk OK.
  8. Uruchom Makro1.
Odbierania tej wiadomości, które są opisane w krokach 3 do 6, ponieważ jak najszybciej Makro1 zatrzymane w kroku 6, wartość zmiennej x zostało utracone. Dlatego po ponownym uruchomieniu Makro1 w kroku 7 Pierwsza wiadomość będzie wyświetlana wartość x jako zero ( zainicjowana wartość).

Powrót do u góry

Słowa kluczowego static

Jeśli zmienna poziom procedury jest zadeklarowana za pomocą statycznego słowo kluczowe, zmienna zachowuje jej wartość, dopóki projekt nie zostanie zresetowane. W związku z tym, Jeśli zmienna statyczna przy następnym wywołaniu procedury, statyczna zmienna jest ustawiana na ostatnią wartość.

Aby zobaczyć jak Works słowa kluczowego static, wykonaj następujące kroki:
  1. Zmień kod w Makro1 Aby:
    Sub Macro1()'set x as a procedure level variableStatic x As Integer   MsgBox "the initialized value of x is " & xx = x + 10MsgBox "x is " & xEnd Sub
  2. Uruchom Makro1.

    Wyświetlany jest następujący komunikat:
    zainicjowana wartość x 0
  3. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x jest 10
  4. Kliknij przycisk OK.
  5. Uruchom Makro1.

    Wyświetlany jest następujący komunikat:
    zainicjowana wartość x 10
  6. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x jest 20
  7. Kliknij przycisk OK.
Wartości, które pojawiają się w wiadomości są różne drugi czas, ponieważ zmienna x jest zadeklarowana jako zmienna statyczna i zmiennej zachowuje swoją wartość po uruchomieniu Makro1 po raz pierwszy.

Uwaga Jeśli zmienna poziom modułu, jego okres istnienia jest taka sama jak jakby zmiennej statycznej poziom procedury.

Aby zweryfikować istnienia poziom modułu zmiennej wykonaj następujące kroki:
  1. Zmień kod w module, który zawiera Makro1 do następującego:
    Dim x As Integer  'create a module-level variableSub Macro1()   MsgBox "the initialized value of x is " & xx = x + 10MsgBox "x is " & xEnd Sub
  2. Uruchom Makro1.

    Wyświetlany jest następujący komunikat:
    zainicjowana wartość x 0
  3. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x jest 10
  4. Kliknij przycisk OK.
  5. Uruchom Makro1.

    Wyświetlany jest następujący komunikat:
    zainicjowana wartość x 10
  6. Kliknij przycisk OK.

    Otrzymujesz następujący komunikat:
    x jest 20
  7. Kliknij przycisk OK.
Wartości, które pojawiają się w wiadomości są różne drugi czas, ponieważ zmienna x jest zadeklarowana jako zmienna statyczna i zachowuje jej wartość po uruchomieniu Makro1 po raz pierwszy.

Wstecz do góry

Resetowanie projektu, aby zresetować zmiennych

Jeżeli chcesz przywrócić wartości dla zmiennej statycznej lub Kliknij zmienną, poziom modułu Resetuj przycisk Standard pasek narzędzi lub kliknij Resetuj na Uruchom menu.

W takim Makro1 Projekt, a następnie uruchom ponownie Makro1, wartości zmiennej x jest inicjowana z powrotem na zero, a pierwszy komunikat:
zainicjowana wartość x 0
Aby uzyskać więcej informacji kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
843145Opis podprocedur programu Excel w programie Visual Basic for Applications (Tablice)
AD procedury VBA zmiennych var xl2007 xl2003 xl2000 xl2002 xl

Ostrzeżenie: ten artykuł przetłumaczono automatycznie

Właściwości

Identyfikator artykułu: 843144 — ostatni przegląd: 09/20/2011 10:09:00 — zmiana: 3.0

  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • kbvba kbprogramming kbinfo kbmt KB843144 KbMtpl
Opinia