• ベストアンサー

統一しない理由は?

エクセルシート上のコントロールは、OLEObjectsで、 フォーム上のコントロールは、Controlsですよね。 なぜどちらも同じコントロールなのに、一方は、OLEObjectsで一方は、Controlsなのでしょう? 統一しちゃえばいいのい・・・って思いました。

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

  • ベストアンサー
回答No.3

#1さんの発言の意図とは別に、現実、クレームともつかないような質問があるようです。ただし、日本マイクロソフト側にも、本社にも、その窓口は見当たりませんが、開発者メンバーからの声が出ていることがあります。そのご質問も、聞く場所によっては、メンバーには声が届くような気がします。 Excelの開発者は、関数やら、VBAやら、複数のプロジェクト・チームで開発しているので、全体の決定は、チームリーダーが決めますが、外部のモニターといわれる人たちの意見もあって、設計には紆余曲折があるようにも伺っております。私の勝手な想像ですが、開発チームの人なら、その歴史的経緯を語ってくれるような気がします。 >統一しちゃえばいいのい・・・って思いました。 さて、本題ですが、確かに、Excel内のオブジェクトというものは、複合的に使われているので、使い慣れないとややこしいようです。 ただ、開発当初の頃ならともかく、現在まで来ると、総称的なオブジェクト名というものは、返って、扱いにくい部分があります。例えば、昔から使われているShapes(コレクション)オブジェクトは、性質の違うものも含まれているので、オートシェイプ、フリーフォーム、OLE オブジェクト、ピクチャなどの描画のオブジェクトを、一括して削除する時ぐらいにしか用いられません。 OLEObject は、Excel VBA(VB)では後発のオブジェクトで、それに対し、コントロール(Control)は、フォーム(Excel,Wordでは、UserForm)上に配置されるオブジェクトを指すもので、性質が違います。姿・形は似ているものはあるけれども、プロパティが大幅に違うので、とても統一名では扱いきれないのではないかと思います。

EXVNBQQH
質問者

お礼

ご回答ありがとうございます。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

こんばんは。 >どちらも同じコントロールなのに いいえ。それらは同じコントロールでは無いからです。 そりゃまぁ勿論、例えばcheckboxというコントロールそれ自体は同じものですけどね。 まずワークシート上で。 ワークシート上に配置したOLEObjectは、Excelライブラリに含まれるオブジェクトの一つで、OLEリンクされたオブジェクトを格納します。 これにはもちろんcheckboxなどのActiveXコントロールも格納できますが、同じように例えば「WORDオブジェクト」だとかのように、エクセル上の操作で言えば挿入のオブジェクトで挿入できる(あるいは他のアプリケーションからコピーし、形式を選んで貼り付けで「なんたらオブジェクト」で貼っても同じ)アプリケーションオブジェクトもまた格納できます。 一方UserForm上では。 ユーザーフォームに配置するたとえばcheckbox等は、MSFormsライブラリに格納されているコントロールです。 このように、ワークシート上ではcheckbox等のactiveXコントロールを、ワークシート上で使える「OLEオブジェクト」というコンテナの中に格納して利用しています。

EXVNBQQH
質問者

お礼

ご回答ありがとうございます。

回答No.1

「そうしたほうがいいんじゃないですか?」 ってMSのサポートに直談判してみては如何でしょうか。 ここで愚痴ってもしかたないですよ。

EXVNBQQH
質問者

お礼

ご回答ありがとうございます。

関連するQ&A