いつもお世話になっています。
私は普段あまりVBを使わないので、素人同然なのですが、たまたま
業務でVBを使う事になったのですが、一つ疑問に思う事があります。
オブジェクトを扱う際に Set ステートメントと言うものがありますが、
この Set ステートメントを付けた時と、付けなかった時で何が違うのでしょうか?
おそらく、メモリの利用方法が違うのかと思いますが、どなたか簡潔にお答え
頂けないでしょうか?
素人考えでは、普通に代入(Setステートメントを使わない)した場合は、
オブジェクトのリファレンスが渡り、Setステートメントを使用した場合は、
内容が渡るのかなぁ。。。
と、おぼろげに考えてはいるのですが。。。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
Setをつけなかった場合Letを付けたのと同じになります。
Setはメモリアドレスを変数にコピーするだけで、実際の内容はコピーされません。
そのため、この動作は4バイトのデータだけをコピーするだけなので、時間はかかりません。
ただし、あらたに代入された変数で内容を変更しようとすると、元のものも変更されてしまいます。
たいしてLetすると、メモリの内容をコピーします。
これは、オブジェクトの容量によって、極端にパフォーマンスが落ちることもあります。
mrt136さんが予想した逆でした。
ご回答ありがとうございました。
なるほど。。。
逆でしたか。。。そうしたら今までのソースを見直した方がいいかも知れませんね。。。
やばい事になっている可能性があるかも。。。
でも、これですっきりしました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 「実行時エラー"13":型が一致しません。」エラーについて 5 2022/05/04 10:46
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- PowerPoint(パワーポイント) Vba 白黒印刷で網掛けが消えることについて教えてください 1 2022/04/28 11:10
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
VBの質問#if 0 then ってどう言う意味?
Excel(エクセル)
-
5
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
6
FriendとPublicの違い。。。
Visual Basic(VBA)
-
7
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
8
ExcelVBAの使い方 ¥の使い方おしえてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でフォームのオブジェクト名...
-
パワーポイントのVBAでテキスト...
-
JAVAからHTMLへ値を返す方法
-
Excelで =EMBED("Acrobat Docu...
-
時間帯判定をする。
-
VBAのWindowオブジェクトとWork...
-
Object型からDouble型へのキャスト
-
VBA 同じ名前のオブジェクトを...
-
COMコンポーネントって何?
-
error C2712: オブジェクト ア...
-
ビジュアルC++でボタンの有...
-
EXCEL VBAにて動的にCheckBOXを...
-
java utf-8 で ファイル出力
-
.getElementById()のエラーにつ...
-
オブジェクト指向とモジュール設計
-
戻り値がクラスオブジェクト
-
ArrayLsitのデータ取得
-
vb.net オブジェクト指向につい...
-
VBAからノーツを起動
-
JXLでセルの色をRGBで指定する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
JAVAからHTMLへ値を返す方法
-
ワイルドカード<?>と型パラメー...
-
C#でフォームのオブジェクト名...
-
VBAのWindowオブジェクトとWork...
-
EXCEL VBAにて動的にCheckBOXを...
-
VBA 同じ名前のオブジェクトを...
-
Object型からDouble型へのキャスト
-
ビジュアルC++でボタンの有...
-
COMコンポーネントって何?
-
LISTBOXの内容が更新されま...
-
Vbで通常使用するプリンターを...
-
多人数のじゃんけんプログラム
-
オブジェクト名をforループ内で...
-
ASP.net 教えてください!!(...
-
JSPのout.printについて
-
時間帯判定をする。
-
error C2712: オブジェクト ア...
-
Accessの連結・非連結オブジェ...
おすすめ情報