• ベストアンサー

ExcelVBAのオブジェクトとプロパティについて

ネットだけで独学でVBAの勉強をしています。大雑把ですがオブジェクトとプロパティの認識はこんなものでよろしいのでしょうか。 オブジェクト=モノ(色々なものが集合して出来たモノ) プロパティ=モノが持っている動詞(例えば人間がオブジェクトとするなら、手を上げるなど、動作を言う)

  • mzakom
  • お礼率38% (129/338)

質問者が選んだベストアンサー

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

ExcelVBAでしたら大雑把にいうと オブジェクト = 物体(セルとかボタンとか) プロパティ = オブジェクトの色々な情報(セルの書式とかボタンのキャプションとか) メソッド = オブジェクトに対する動作(コピーとか移動とか) ということになります。

mzakom
質問者

お礼

なるほど。 補足なども含め、理解を深める事が出来たのでBAとさせて頂きます。 回答ありがとうございましたm(_ _)m

その他の回答 (3)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

補足2です オブジェクトは、先に回答したものとは別に、オブジェクト指向で使われるオブジェクトと呼ばれるものもあります。荒っぽい説明ですが、プロシージャやメソッド、プロパティをひとかたまりにしたものをオブジェクトと呼びます。 エクセルのオブジェクト指向は、Googleなどで 「エクセル VBA オブジェクト指向」 とかで検索してみてください。 たとえば、こちらが理解しやすい具体的な例がある説明かもしれません。 http://www.excellenceweb.net/vba/class/what_vba_class.html

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

補足です。詳しく知りたい場合には http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_060.html こちらのページやそのサイトを参照してください。

  • papapa0427
  • ベストアンサー率25% (371/1472)
回答No.1

う~ん、ちょっと違います。 モジュールがオブジェクトの集合体です。 プロパティはオブジェクトが持っている性質です。あなたが言われているのはイベントドブリンです。プロパティの中には画面の色やテキスト情報を持っていたり、イベントドブリンな情報を持っています。 オブジェクトとは処理を行う最少単位のプログラムの事で集合するとモジュールとなります。 オブジェクトにはいろいろな情報が設定されています。動作のみではイベントドブリンの情報でしかありません。画面情報や書式設定など等…。ですね。

mzakom
質問者

お礼

なるほど。これは勉強不足でした。 ありがとうございます。

関連するQ&A

  • VBAのRange()ってオブジェクトですか、プロパティですか、メソッドですか?

    最近VBAを勉強しはじめました。 基本的なことだとは思いますが、なかなかネットで検索していても頭が混乱してしまうので、こちらで質問させてください。 Range("A1")という記述は、VBAでは何を意味しているのでしょうか? Range("A1")というのは、Rangeオブジェクトそのものではないらしいことはわかったのですが、そこから先はなんだかチンプンカンプンで。 色々、見ていると、 オブジェクトを返すメソッド?? オブジェクトを返すプロパティ?? 四苦八苦しながら、結果的に動くプログラムは書けることは書けるのですが、どうにも、自分が何やっているのかわからないのは気持ちが悪くて。 あと、気になる言葉でアクセッサってのが見つかりました。 もはや、何をどう質問していいのかすらわからないレベルです。 VBAについて、少しずつ、体系的に学びたいと思ってます。 この本を読むとわかりやすいとかそんなアドバイスでもいただけたら、とても助かります。

  • オブジェクトがわからない

    オブジェクトが設計図やそのによって作られた物であるというのはわかったのですが、 下記のように深くなると初心者には難しくてわかりません。 初心者にもわかるように解説していただけるとありがたいです。 >>> オブジェクトとは、単に名前がついた入れ物の集合ではありません。オブジェクト自体が1つのモノであり、中に含まれる要素は、このモノの特性や動作を表すために存在します。要は、(連想配列ではなく)「オブジェクト」という言葉を使う場合には、主役は個々の要素ではなく、オブジェクト(モノ)そのものであるといったらよいでしょうか。 JS本格入門より

  • VBAのオブジェクト、プロパティ、メソッドの集まった本あるでしょうか

    Excel,AccessのVBAを学んでいますが、オブジェクト、プロパティ、メソッドの数がハンパなく沢山あります。ネットでもいろいろ情報がありますが、本でオブジェクト、プロパティ、メソッドが網羅されているものがあれば欲しいと思っています。アマゾンで探してみましたが、いまいちどの本が網羅されているのかわかりません。何かよい本があったらご教授くださいませ。マイクロソフトのページではちょっとわかりにくいので、第三者が書いた本が欲しいなと思っています。

  • VBA Worksheetsはプロパティなの?

    (株)C&R研究所発行 Excel VBA逆引きハンドブック 著者 蒲生睦男 234ページを引用します。 ----- ワークシートを参照するには「Worksheets」プロパティを使います。「Worksheets」プロパティは、指定されたブックのすべてのワークシートを表す「Sheets」コレクションを返します。 ----- 私は今までWorksheetsはコレクションだと思ってました。つまりワークシートの集合であると。違うのですか?さらにプロパティはオブジェクトの性質を表わすもので、例えばCellのプロパティであればValue, Colour等です。では、Worksheetsは何のプロパティなのでしょうか?Workbookのプロパティですか?もしそうなら、他にはどんなプロパティがあるのですか?さらに上記引用で「返す」とありますが、返すってなんですか?ファンクションプロシージャの戻り値を返す、みたいな表現はありますがここでの「返す」の意味がよくわかりません。 私の現状認識は以下のものです。どこか誤ってますか? Worksheetsはワークシートの集合体つまりコレクションであり、ワークシートオブジェクトでもある。オブジェクトであるので、性質を表わすプロパティではない。 VBAの構文で Workbook.Worksheet.Range のような表現はよく使いますが、ひょっとして後ろにくっつくのは全部プロパティなのですか?ちょっとよくわかりません。

  • 【ExcelVBA】シートのCodeNameプロパティからオブジェクトを取得する方法

    いつも勉強させていただいてます。 業務でExcelVBAを使用していますが、ワークシートのCodeNameプロパティ値からワークシートオブジェクトを取得する方法はありますでしょうか。 以下、詳細です。 ・環境:Excel2003 ・概要    ワークシートのオブジェクト名:"shtFormat"    シート名:"フォーマット"  ガントチャートを作成するVBAなのですが、上記のシートをコピーして、実際に処理に使用するシートを作成します。  作成後も、ユーザフォームや別のデータ操作用ワークシートのイベントから操作するため、コピーしたシートを特定する情報を内部で保持しようと考えています。  そこで、CodeNameプロパティ値を保持しようと考えておりますが、CodeNameプロパティ値(文字列)からワークシート型のオブジェクトを取得する方法が分かりません。 ※ Nameプロパティはシート名を変更した際に使用できなくなり、断念しました。 ※Indexプロパティはシートの並び順によって値が変わるため、断念しました。 以上です。 宜しくお願い致します。

  • 「標準のプロパティ」について、

    http://officetanaka.net/excel/vba/beginner/08.htm を読んだのですが、 ヘルプやオブジェクトブラウザで どのプロパティが標準のプロパティか確認することはできないのでしょうか? 添付画像のようにオブジェクトブラウザでは確認できませんでした。 「rangeオブジェクトは標準のプロパティは、valueだ」と 頭で覚えるしかないのでしょうか?

  • 【javascript】プロパティ?オブジェクト?

    皆様あけましておめでとうございます!! 新年早々質問させていただけたらと思います。 ただいまオライリーのjavascriptのサイ本第六版を読みながら勉強してるのですが、 以下の部分がどうしても理解できません・・・ range.methods = { includes: function(x) { return this.from <= x && x <= this.to; }, foreach: function(f) { for(var x = Math.ceil(this.from); x <= this.to; x++) f(x); }, toString: function() { return "(" + this.from + "..." + this.to + ")"; } }; var r = range(1,3); // Create a range object r.includes(2); // => true: 2 is in the range r.foreach(console.log); // Prints 1 2 3 console.log(r); // Prints (1...3) 本にmethodsプロパティにinculedsやforeachを格納すると書いてあります。 2行目:includesや3行目foreachはプロパティでプロパティに関数を設定することでr.inculdes(2)で関数として呼び出しているんですよね!? なので2行目:includesや3行目foreachはプロパティという認識で間違いないでしょうか? ということはプロパティのなかにプロパティをを設定してるという形になるのでしょうか? どうもしっくりこなくて悩んでおります。 よろしくお願いします。

  • オブジェクト、プロパティ、メソッドの関係

    環境:OS.Win2000、Excel2000VBA プロパティやメソッドの呼び出し方法に疑問があります。 ExcelのVBAで以下の動作は確認しています。(例1) Dim xlApp As Application Dim xlBook As Worksheet '置換 xlApp.ActiveCell.Replace what:="A", replacement:="B", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=False '検索 Set Oret = xlBook.Application.Cells.Find(what:="A", After:=ActiveCell, _ LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False) 疑問に思っているのは「xlApp.ActiveCell.Replace」の”Replaceメソッド”を オブジェクトブラウザで調べるとRangeオブジェクトと、WorksheetFunctionオブ ジェクトにしか含まれないように受け取れます。またヘルプの「対象」を見ても Replaceが含まれているのは二つしかありません。ようするに以下の二通りでし か使えないように思えるのです。 Dim A As Range Dim B As WorksheetFunction A.Replace ~ B.Replace ~ しかし実際には(例1)のようにApplicationオブジェクトでも”Replaceメ ソッド”を使えます。”Replace関数”を見てみても引数を見ると”Replace メソッド”です。いまひとつ理解が浅いため目的の動作をさせるのにどのオ ブジェクトからメソッドを呼べば良いのか分かりません。基本的な事なのか もしれませんが、ぜひご回答くださいよろしくお願いします。

  • コントロールのプロパティー値をコードで変更したい

    アクティブXコントロールのオブジェクトのプロパティーを手作業で変更するのではなくて、 マクロのコードで変更できればいいと思うのですが、コードの書き方がさっぱりわかりません。 私がやりたことは 下の画像にあるバーコードのコントロールのValueプロパティの値をVBAのコードで指定したい ということです。 一体、どんな書き方をすればいいんでしょうか? できればズバリのコードをそのまま提示して欲しいです。

  • ExcelVBAのCutCopyModeについて

    ExcelVBAのCutCopyModeについての質問です。 VBAで使用されるプロパティについて調べていましたところ、CutCopyModeについて「コピー状態を削除する為のプロパティ」との記載がありました。 こちらのプロパティを使ってコピーを削除する理由をご教示頂きたいです。 通常のExcelだとコピーをした後別の部分をコピーをしたら上書きされる為、削除の必要は無いと思うのですが、何故VBAだと削除が必要になるのでしょうか? 実際にコードを組めれば自力で確認出来ると思うのですが、先日勉強を始めた所でまだコードを組むまでに至っていません。 その為、単語を変えて何度か調べたのですが理由が出て来ないので気になっています。 個人的には「動作の軽量化」「エラー防止」「コピーが上書きされない」のどれかが理由ではないかと睨んでいますが果たして合っているのかどうか… 知識をお持ちの方、よろしければご回答をお願いいたします。

専門家に質問してみよう