• ベストアンサー

オブジェクトとコントロールって違うの?

オブジェクトとコントロールの違いは何でしょうか? 例えば、テキストボックスはオブジェクトでもあり、コントロールでもあると思うのですが(ここは合ってますか?)、違いはあるのでしょうか。

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

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.1

オブジェクトとはクラス型またはコントロール型の変数実態のことです。 さて、言っていることの意味がわからないと思います。 たとえば、フォームというものにはキャプションとか言ったプロパティがあります。 こういったものを定義するのがクラスです。 そして、これを実行したときにフォームが現れます。 これはクラス定義されたフォームの変数を作ったのです。 そしてこれがオブジェクトです。 まだわからないと思います。 As Integerなどと書くように、As Form1などと書くことができるのを知っているでしょうか。 これはForm1という変数の型があるということを示しています。 こうやって、変数の方であるものをクラス、変数そのものをオブジェクトと思えばよいでしょう。 つまり、プロジェクトにForm1を追加すると、Form1という変数の型とForm1という変数が追加されることになります。 さて、コントロールです。 コントロールは位置的にはクラスと同じです。 しかし、コントロールはフォーム上に配置されていなければならないので、単独ではその変数であるオブジェクトを作成することはできません。 フォーム上に配置することによって、そのオブジェクトは作成されます。 クラスモジュールを追加すると、そのクラスの定義を作成することができます。 同時に変数であるオブジェクトは作成されたりはしません。 オブジェクト変数を作成するためには、 Dim x As New Class1 などと、どこかのモジュール内で変数を宣言する必要があります。 Newを調べてわからなかったら、また質問するか補足してください。 クラスは今のように変数を宣言できますが、 Dim x As New CommandButton などという風に、新しいコマンドボタンを作ることはできません。 よくわかんなくなったらまた質問してくださいな。

violet_07
質問者

お礼

非常に詳しい説明をした頂き感謝します。 オブジェクトとコントロールは違うということがわかり大変有意義でした。今の私のレベルではご説明の内容を理解することはとても無理なので、もっと勉強を進めようと思います。どうもありがとうございました。

関連するQ&A

  • コントロールとオブジェクトは同じ意味でしょうか?

    アクセスを勉強中なのですが 疑問に思う言葉があります。 例えば、フォームに設置したテキストボックスは コントロールでしょか?オブジェクトでしょうか? またフォームはコントロールではなく オブジェクトであってますか? ご教示よろしくお願い致します。

  • ActiveMovie Control Objectを知りませんか?

    VB.NETでActiveMovie Control Objectを使いたいのですが、ツールボックスのカスタマイズからCOMコンポーネントにありません、どなたか、解決方法を教えてください。

  • エクセルのオブジェクト名

    エクセル2003で、コントロールツールのテキストボックスに文字制限などの設定をするのに、プロパティから変更しようと思います。しかし、オブジェクト名がどんな意味をさすのかがわかりません。(AutoLoad,AutoTab,ForeColorなど) どのオブジェクトがどんな意味を持ち、どういう設定ができるのかがわかるサイトなどありましたら教えてください。 お願い致します。

  • エクセル コントロールツールのテキストボックスについて

    こんにちわ。よろしくお願い致します。 エクセルのコントロールツールのテキストボックスの背景を透明にするにはどうしたらいいでしょうか? オブジェクトのBackColorをどのように設定したら、透明になりますか?教えてください。お願い致します。

  • 描画オブジェクトについて

     テキストボックスでいれた文字の下に、写真をいれてその下にテキストボックスで文字を入れています。写真の上に気になる余白があり写真を上に引き上げようとするのですがレイアウトに変化がありません。描画オブジェクトを使っているからでしょうか?描画オブジェクトを解除するにはどうしたらいいでしょうか?

  • VBAでのオブジェクト名の付け方で困っています。

    私が知りたいのはユーザフォームを一度作成した後にオブジェクトを追加したときのオブジェクト名の処理の仕方です。 今、EXCEL VBAでアンケート入力フォームを作成しています。テキストボックスやチェックボックスが全部で70ほどあります。以下のようにControlsコレクションを用いてユーザフォームに入力した文字列などをワークシートに追加しています。 ……<略> For i = 1 To 10 Cells(Row, i).Value = Me.Controls("CheckBox" & i ).Value Next i ……<略> しかし、入力フォームの画面構成を変更して、新たにテキストボックスやチェックボックスを追加すると、例えば、ユーザフォーム上で隣り合ったTextBox1とTextBox2の間にTextBox35が入ってきて以下のようにコードを書き換えねばなりません。 ……<略> Cells(Row, 1).Value = Me.CheckBox1.Value Cells(Row, 2).Value = Me.CheckBox35.Value For i = 2 To 10 Cells(Row, i+1).Value = Me.Controls("CheckBox" & i ).Value Next i ……<略> プロパティからオブジェクト名のひとつひとつを編集してユーザフォームのテキストボックスの表示順にするのも手間ですし……まだ、設計の試行錯誤の段階なのでまだまだテキストボックスやチェックボックスを追加・削除をすると思いますし…… 何か効率のよいオブジェクト名の付け方はないでしょうか? みなさんはどのようにされていますか?

  • 「HTML」で始まるオブジェクトについて 

    例えば、この教えてgooのサイトを Ctrl+Cを押して、エクセルシートに貼り付けて コントロールツールボックスのデザインモードにすると HTMLText1やHTMLHidden1やHTMLSubmit1というオブジェクトを確認できますが これらはエクセルから直接挿入することは可能でしょうか? また貼り付けたオブジェクトの数式バーは =EMBED("Forms.HTML:Text.1","") となっています。 他の質問ですが http://oshiete1.goo.ne.jp/qa4794757.html この方を同じようなことをしています。 要は「HTML」で始まるオブジェクトはサイトから貼り付ける以外でエクセル上に表示させることは不可能なのか知りたいです。 よろしくお願いします。

  • オブジェクトの配置を固定するには?

    お世話になります。 現在Excel2007を使用しています。 今回、あるシミュレーションを行うためのブックを作成しているのですが、ところどころにグラフやテキストボックス、コントロールを配置しています。 この作業を行う中で 1)各々のオブジェクトの書式設定で「ロック」状態にしてあるのですが、シートの保護を行っても各オブジェクトをドラッグして移動することができてしまう 2)作業している最中にテキストボックスが勝手に移動してしまう(シート内で位置がずれてしまったり、フォントサイズが小さくなってしまう 以上の2点について、原因や対処方法などを教えていただければありがたいのです>< 質問内容が解りづらいかもしれませんが、補足等で補わせてください。 よろしくお願いします。

  • 無効なオブジェクトライブラリ

    エクセルVBAにて、ソフトを作製しています。 急に「無効なオブジェクトライブラリです。または定義されていないオブジェクトへの参照を含んでいます」というエラーが出てくるようになり、すべてのプロシージャが実行出来ない状況に陥ってしまします。 そうなってしまったら、全て閉じて最終保存したところまで戻らなければならず、非常にイラつきます。 中身ですが、ユーザーフォームは特に使っておらず、Sheet内のフォームのコマンドボタン、またコントロール/ツールボックスからリストボックスとテキストボックスを使っています。 ソースの中身について ・SQL接続を使っています。 ・開く度にテキストボックスを複数削除し、所定位置に複数生成します。 リストボックスやテキストボックスのサイズ、位置等変更したら、このエラーに陥る傾向があります。 エラーに陥ったソースをエラーになる前のソースに追加しても、特に問題が起こりません。 エラーメッセージのヘルプを開こうとしても、表示されません。 これは一体なにが原因なのでしょうか? 条件がどうしてもつかめません。 参照設定についても特に参照できていないライブラリはありません。 宜しくお願いします。

  • ワード・テキストボックス内オブジェクトのアンカー

    word で テキストボックス内の段落に 画像オブジェクトをアンカーしたいのですが どのように すればいいのでしょうか http://oshiete1.watch.impress.co.jp/qa2418625.html に詳しい説明がありましたが 本文ではなくて テキストボックスに オブジェクトを配置し テキストボックスとも同時に移動するし テキストボックスの中の上位行が増減したりしたときに、適切に自動再配置できるようにしたいのです

専門家に質問してみよう