いつもお世話になっています。
私は普段あまり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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
VBの質問#if 0 then ってどう言う意味?
Excel(エクセル)
-
5
FriendとPublicの違い。。。
Visual Basic(VBA)
-
6
VB6.0のIsNull関数に相当するもの
Visual Basic(VBA)
-
7
VB.NET でのLaod/unLoad について
Visual Basic(VBA)
-
8
【VB6.0】 あるフォームから他のフォームへ値を受け渡したい
Visual Basic(VBA)
-
9
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
10
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
11
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
12
ExcelVBAの使い方 ¥の使い方おしえてください。
Visual Basic(VBA)
-
13
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
14
VS 2008(VB.NET)
Visual Basic(VBA)
-
15
VB6のデバッグ
Visual Basic(VBA)
-
16
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
VBA 同じ名前のオブジェクトを...
-
VBAのWindowオブジェクトとWork...
-
JAVAからHTMLへ値を返す方法
-
ワイルドカード<?>と型パラメー...
-
ASP.net 教えてください!!(...
-
COMコンポーネントって何?
-
ビジュアルC++でボタンの有...
-
ResultSet での問題
-
エクリプス コンテンツアシスト...
-
C#でフォームのオブジェクト名...
-
VBAからノーツを起動
-
error C2712: オブジェクト ア...
-
Excelファイルをgrep検索したい
-
フォルダーの中のファイル名を...
-
EXCEL VBAにて動的にCheckBOXを...
-
オブジェクト名をforループ内で...
-
Javaの問題なんですが、(this==...
-
時間帯判定をする。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
EXCEL VBAにて動的にCheckBOXを...
-
ワイルドカード<?>と型パラメー...
-
C#でフォームのオブジェクト名...
-
VBAのWindowオブジェクトとWork...
-
vb.net オブジェクト指向につい...
-
COMコンポーネントって何?
-
オブジェクトレベルとメタレベル
-
ビジュアルC++でボタンの有...
-
時間帯判定をする。
-
LISTBOXの内容が更新されま...
-
VBA 同じ名前のオブジェクトを...
-
オブジェクト名をforループ内で...
-
Object型からDouble型へのキャスト
-
ADO オブジェクトの渡し方
-
bmp画像をjpegやpng画像に圧縮...
-
Vbで通常使用するプリンターを...
-
戻り値がクラスオブジェクト
-
VBAでvlookup関数から、別シー...
おすすめ情報