- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロシージャーの外で宣言した変数の値の破棄の仕)
プロシージャーの外で宣言した変数の値の破棄の仕方
このQ&Aのポイント
- プロシージャーの外で宣言した変数の値を破棄する方法について教えてください。
- 値が増え続ける問題を回避するための方法は、変数を初期化するか、値を0にすることです。
- 変数を初期化する場合、`i = 0`とします。ただし、`Set i = Nothing`とするとエラーが発生します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あなたのような書き方はしない。 Dim i As Long Sub test() i = 0 'ふつうはこのように初期化してから始めるね。 i = i + 10 MsgBox i End Sub
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.1
Set 変数名 = Nothing という書き方はオブジェクトに対してのみ行う方法であって、 String、Integerなどのいわゆるデータ型には適用できません。 値を破棄したいならば、破棄したいタイミングで0なり空文字なりを 入れます。 オブジェクトではないので、アプリケーションが終了する、もしくは スコープ範囲の関数が終了するまでメモリ解放はありません。 どうもやりたいことを想像するに、そもそもiをグローバル変数宣言 しなければいいのでは、と。 理由があるならどこかでtest()を呼び出した後に初期化出来ますよね。 たとえば Dim i As Integer Dim j As Integer For j = 0 To 10 i = i + j test(i) If j = 5 Then i = 0 End If Next とか。
質問者
お礼
ありがとうございました。
お礼
ありがとうございました。