• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロシージャーの外で宣言した変数の値の破棄の仕)

プロシージャーの外で宣言した変数の値の破棄の仕方

このQ&Aのポイント
  • プロシージャーの外で宣言した変数の値を破棄する方法について教えてください。
  • 値が増え続ける問題を回避するための方法は、変数を初期化するか、値を0にすることです。
  • 変数を初期化する場合、`i = 0`とします。ただし、`Set i = Nothing`とするとエラーが発生します。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

あなたのような書き方はしない。 Dim i As Long Sub test() i = 0    'ふつうはこのように初期化してから始めるね。 i = i + 10 MsgBox i End Sub

BVRRCWI
質問者

お礼

ありがとうございました。

その他の回答 (1)

回答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 とか。

BVRRCWI
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう