もくじ

taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、taka(@takabou63)です(^^♪
さて、皆さん、【オブジェクト変数】ってご存知でしょうか?
何それ?という方もいらっしゃるかと思いますが、【オブジェクト変数】はどういうものか?
くらいは覚えておかないと少し凝ったプログラムを組むときに困る場合がありますのでよく覚えておきましょう(^.^)
VBAのオブジェクト変数とは何か?
さて、皆さんは【変数】については理解がある方が多いと思います。変数は格納したデータ型に性質が変わる物ですが。(数値型の場合は数値の性質)
この「オブジェクト変数」は【オブジェクトそのものを格納する変数】というものになるんです( *´艸`)
はい、私の説明が悪いので意味がわからないという方が大半かと思います(;・∀・)
実際見ていただいた方が伝わりやすいと思いますので下記のコードをご覧ください。
Sub sample() Dim cel As Range '変数を宣言 Set cel = Range("B3") '格納 cel.Value = "オブジェクト変数を使用" Set cel = Nothing End Sub
はい、このコードを見てなにか気が付きませんか?
普通の変数を使っう場合【Cells(1,i)】のようにセルの指定の位置を数値で操作したり、値を操作するのが一般的ですが・・・
このコードの場合
【変数(cel)がオブジェクト(セルB3】】のような使い方をしていますよね?
これがオブジェクト変数の特徴です(^^)/ちなみに実行も問題なく行えています


VBAのオブジェクト変数の使い方
さて、なんとなくVBAの【オブジェクト変数】についてイメージはつかめてもらえたでしょうか?(;・∀・)
ここからはこのオブジェクト変数の最低限の使い方についてご紹介していきます!
オブジェクト変数の宣言
【オブジェクト変数】もほかの変数と同じように宣言が必要となります。
Rangeオブジェクトを格納するにはRange型?を宣言します。
主に使われるのが
- Workbook
- Worksheet
- Range
の3っつです。最低限これくらいを覚えておくのがいいかと思います(‘ω’)
さて、ここで一つ疑問が浮かびますよね?
【これ以外のオブジェクトを格納する場合はどうするのか?】
はい、たくさんのオブジェクトの型をすべて把握するのは大変です。なのでデータの型がわからない場合は【object型】を使用します。
オブジェクト変数のデータの型がわからなければ【object型】で宣言
オブジェクト変数の型がわからない場合はobject型を使用します。
このobject型は簡単に言えば、【オブジェクトなら何でも格納できる】型になります。
もちろん、型がわかっている場合は、その型を宣言するほうが可読性が上がるのでそちらの方がいいですが、もしわからない場合はobject型を使用しましょう!
オブジェクト変数にオブジェクトを格納する場合は【Set】を使う
たまーにコードを見てみると【Set】というコードを見たことがあるかと思います。
このSetというのは、【オブジェクト変数にオブジェクトを格納する場合に使用】します。
Set 変数名 = オブジェクト
先ほどのコードで説明すると
Set cel = Range("B3") '格納
この部分です。これは変数【cel】にセルB3を格納することを表すコードというわけです(^.^)
ちなみにSetを使わないと【実行時エラー91】が返されます。


オブジェクト変数を破棄する【Nothing】
さて、通常【End Sub】で終了すると変数の値は破棄されるわけですが、オブジェクト変数については【【Nothing】を使用して変数を破棄しましょうという風習】があります。
Set 変数 = Nothing
この【Nothing】というのは【何も】という意味で、【この変数には何もオブジェクトがないですよ】という値を代入するということにをしています(*_*;
これにつきましては【必要派】と【不要派】がいらっしゃいますが、正直いえば私はどちらでもいいんじゃないかな?と思っております、【EndSub】まで実行されれば勝手に解放されるわけですので(*_*;
まぁ、少なからず【Nothing】が必要とされてしまう場合もありますので、その様な時以外は別に無理に使用しないで問題はないでしょう。
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す