
No.6ベストアンサー
- 回答日時:
>「同じ範囲内で宣言が重複しています」という「コンパイルエラー」がでました。
#5の方の言われる通りです。
変数の宣言は、普通最初にします。
宣言する前に使っているので、
自動的に宣言したことになり、
その後で、Staticの宣言があるので、
2度宣言していると解釈されます。
#4のサンプルは、ちょっと不親切だったかもしれません。
すみません。m(_ _)m
> #4のサンプルは、ちょっと不親切だったかもしれません。
> すみません。m(_ _)m
とんでもない!
そんなことも知らないわたしがお馬鹿なんですよ。
ありがとうございました。
以下でうまく行きました。
ただ、Sub aaa()からでないとSub 番号てすと(Optional reset As Boolean = False)が動かせないのですが(マクロの一覧に無くて)、どうしてでしょう?
何度も質問してすみません。
Sub 番号てすと(Optional reset As Boolean = False)
Static g As Integer
If (reset) Then g = 0: Exit Sub
MsgBox "今のG= " & g
g = g + 1
MsgBox "次のG= " & g
End Sub
Sub zzzzzzzz()
Call 番号てすと(reset:=True)
End Sub
Sub aaa()
Call 番号てすと
End Sub
No.7
- 回答日時:
>Sub aaa()からでないとSub 番号てすと(Optional reset As Boolean = False)が動かせないのですが(マクロの一覧に無くて)、どうしてでしょう?
マクロの一覧には引数のあるSub(プロシジャー:手続き)は、表示されない様です。
一覧から選ぶだけなので、引数が指定できないからだと思います。(ちょっと余計なお世話なところもありますけど)
なので、現在やられているように、間接的に呼び出すようにして、メニューに表示するようにするしかないと思います。
No.5
- 回答日時:
順序が違いますね。
Sub 番号てすと(Optional reset As Boolean = False)
Static g As Integer ←最初に置く
If (reset) Then g = 0
MsgBox "今のG= " & g
g = g + 1
MsgBox "次のG= " & g
End Sub
ありがとうございました。
こんどは大丈夫でした。
でも、Sub 番号てすと(Optional reset As Boolean = False)
が、マクロの一覧に出てこないのはどうしてでしょう?
No.4
- 回答日時:
関数の中に確保したstaticな変数は、関数の中だけで有効なので、外からリセットすることはできません。
なので、関数呼び出しの際に、変数の値によってリセットするようにすれば良いかも知れません。
Sub 番号てすと(Optional reset As Boolean = False)
If (reset) Then g = 0
通常の処理
end sub
call 番号てすと
の様に通常どおり呼び出した場合は、普通に実行されます。
call test(reset:=true)
リセットを指定して関数を呼び出すと、gを初期化してから通常の処理を実行します。
この回答への補足
Sub 番号てすと(Optional reset As Boolean = False)
If (reset) Then g = 0
Static g As Integer
MsgBox "今のG= " & g
g = g + 1
MsgBox "次のG= " & g
End Sub
Sub zzzzzzzz()
Call 番号てすと(reset:=True)
End Sub
「同じ範囲内で宣言が重複しています」という「コンパイルエラー」がでました。
No.2
- 回答日時:
それは、Static 変数自体を使うことが違っているからです。
プロシージャ・レベルではなく、モジュールレベルで、変数を置き、
例:
Dim g As Integer
Sub 番号てすと()
MsgBox "今のG= " & g
g = g + 1
MsgBox "次のG= " & g
End Sub
として、
例えば、
Sub HennsuClear()
g = 0
End Sub
とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
固定電話着信履歴 181 ・・・・...
-
至急お願いいたします! ゆう...
-
823で始まる電話番号
-
不気味な番号
-
電話をかけるのに、違う番号を...
-
if関数を使って割引率をだす
-
モバイルsuicaを持っており、 ...
-
フリーダイヤルのけた数
-
体育の時の4列横隊ってどーやっ...
-
81・・・・・から始まる電話...
-
公衆電話番号
-
水 の化審法、労安法 官報公...
-
エクセル ADO Filterでは一気...
-
受付番号を英語で?
-
覚えやすい番号、良い番号を・・・
-
同じ商品なのに、JANコード...
-
内線番号一覧が分かりづらい
-
TSUTAYAでCDを電話予約したので...
-
一体何を調べているのでしょうか?
-
謎の電話番号
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
823で始まる電話番号
-
固定電話着信履歴 181 ・・・・...
-
至急お願いいたします! ゆう...
-
同じ商品なのに、JANコード...
-
電話をかけるのに、違う番号を...
-
81・・・・・から始まる電話...
-
映画のチケットをスマホで購入...
-
パチンコの抽選入場って、番号...
-
電話番号 +817673467911という...
-
その曲が弾けるようになるまで...
-
フリーダイヤルのけた数
-
if関数を使って割引率をだす
-
エクセル ADO Filterでは一気...
-
不気味な番号
-
携帯番号変える時は、それなり...
-
P/Nとは?
-
1から5までの番号が1つずつ書か...
-
66から始まる番号
-
すべて「ひとつ・・・」ではじ...
-
銀行で番号札は?
おすすめ情報