Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3601 / 9994 ←次へ | 前へ→

【9652】Re:Access VBAの変数について。
発言  小僧  - 07/7/4(水) 11:22 -

引用なし
パスワード
   ▼ジバク さん、hatenaさん

おはようございます。

変数の有効期間については hatena さんのご提示の通りですが、
Public 変数に関して、一部例外があるので補足です。

MSサポートオンラインより
[VBA] Public 宣言された変数の有効期間

h tp://support.microsoft.com/kb/408871/ja

(こちらの掲示板は直リンクが禁止ですので、補完してください。)


そちらのサイトにも

> Public 変数がアプリケーション終了時まで有効であることを期待する
> VBA マクロの実装は、推奨されません。


とありますが、変数の有効期間は小さく取るのが一般的です。
興味がおありでしたら Google等の検索エンジンで「VB」「スコープ」
をキーワードに検索されてみて下さい。


さて、本題の Set XX = Nothing なのですが、
宣言する、しないに関わらずメモリが解放される事がほとんどですので
(一部例外もありますが)

宣言する意味がない場合が殆んどです。


ただ当方が1プログラマとして思うのは
「時が経てば自動でしまる」という扉を、
開けっ放しで去っていくというのはどうかと思います。(笑)

それが仕様なんだからそのままで良い、
という考え方を否定するつもりはありませんが、

日頃から
・自分が Open したオブジェクトは自分で Close する
・自分が呼び出したオブジェクトは自分で解放する

癖をつけておく事が、他トラブル防止につながるのではないでしょうか。


処理によっては
1.オブジェクトをセットする
2.オブジェクトを Open する
3.何らかの処理
4.オブジェクトを Close する
5.オブジェクトを破棄(Set XX = Nothing)する

という一連の流れの中で、
4、5の動作を行わなかったり、
5の順序を間違ったりして
ファイルそのものを壊してしまう事があります。

Set XX = Nothing をしなかったからだ、とは言えませんが
日頃から変数の宣言や挙動に気をつけてれば
回避する事ができるのではないか、と思います。


長くなりましたが、ご参考までに。

1,062 hits

【9646】Access VBAの変数について。 ジバク 07/7/3(火) 22:40 質問[未読]
【9650】Re:Access VBAの変数について。 hatena 07/7/4(水) 0:00 回答[未読]
【9651】Re:Access VBAの変数について。 ジバク 07/7/4(水) 2:38 お礼[未読]
【9652】Re:Access VBAの変数について。 小僧 07/7/4(水) 11:22 発言[未読]
【9663】Re:Access VBAの変数について。 ジバク 07/7/6(金) 2:14 お礼[未読]

3601 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free