アフィリエイト広告を利用しています
メニュー
Java関連
C言語
Python
RaspberryPi
Windows10
Word
Excel
PowerPoint
Access
AutoCAD
Jw_cad
Photoshop
Illustrator
その他


最新記事
<< 2017年07月 >>
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
カテゴリアーカイブ
日別アーカイブ
↓エンジニア特化型のQ&Aサイト『テラテイル』。メールアドレスのみで登録ができます。 困ったときに助けてもらえるかも!

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2017年07月12日

オブジェクト式がわからない【Excel VBA】







VBAを理解するための第一歩はオブジェクト式
つまりオブジェクトとは?メソッドとプロパティとは?
を理解するところから始まります。
・・・・・・が!

わからない!!
どーしてもわからないんです!
オブジェクトとは、ブック、シート、セルなど。
メソッドは動作
プロパティは値を設定するもの。
大まかにはわかりました。
基礎の本も読みました。
実際にマクロもつくりました。

でも!!
なんかモヤモヤする!
Javaなどのメソッドやプロパティと、なにかが違う。

よくよく考えるとハテナだらけでした。
ここでつまづいているのは私だけでしょうか・・・?

疑問その1
ワークシート、ブック、セルがオブジェクトなら
ActivesheetやActivecellもオブジェクトのはず
なのに ActivesheetやActivecellやSelection はプロパティらしい
よくよく調べるとRangeもCellsもWorksheetsでさえも・・!

疑問その2
プロパティにも引数や戻り値がある 
Range("A1") ってプロパティらしいのに引数がある。
(いや引数じゃなくて配列?コレクション??)
そのうえ、Rangeオブジェクトを返すらしい
引数と戻り値があるとすると、
プロパティとメソッドとの区別がつかなくなると思うんだけど??


疑問その3
そもそも区別をどこまで理解しなければいけないのか
プロパティであってもメソッドであっても、
戻り値があるかないかだけを知っていれば済む話なのか
・・・半分理解をあきらめたギモンです(^^;)


考えれば考えるほどよくわからなくなっていくオブジェクト式・・・!
恐るべし。。。


とりあえず疑問1について
悩んだ結果、ある答えがひらめきました!

まず、プロパティには2パターンあるということ
・よくある説明どおり、属性として値をセットするもの
・オブジェクトとして扱われる(オブジェクトを返す)もの
わからないのは、2番目のオブジェクトを返すプロパティでした。

で、ひらめいたこととは。
『プロパティにはオブジェクトのアドレスが格納されている』のでは!? 
ということです。
アドレスが格納されている、つまりポインタと考えると
プロパティとして定義されているのも納得だし
オブジェクトとして扱われているのも納得できます!!

オブジェクト返すといわれて戻り値を連想して、
プロパティに戻り値があるのに違和感を感じていたのですが
ポインタなら戻り値ではないですね!

疑問2も半分くらい解消されました。
真偽のほどは定かではありませんので参考まで・・・!

のこる疑問も解消すべく
少しずつ勉強してきたいと思います。







posted by Milky at 00:53 | TrackBack(0) | Excel VBA
プロフィール
Milkyさんの画像
Milky
職業訓練校のPC講師⇒ITインストラクターをやっています。 パソコン関連で、知りたいこと・調べたこと・教えたこと・わからないことなど 整理しながらまとめていきたいと思います。
プロフィール
検索
タグクラウド
最新コメント
コメント用 by こむ (05/12)
ファン
×

この広告は30日以上新しい記事の更新がないブログに表示されております。