Page 201 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼DrawingObjects つん 02/10/14(月) 14:09 ┗Re:DrawingObjects JuJu 02/10/14(月) 22:51 ┗Re:DrawingObjects つん 02/10/14(月) 23:45 ─────────────────────────────────────── ■題名 : DrawingObjects ■名前 : つん <honey@sweetparty.ne.jp> ■日付 : 02/10/14(月) 14:09 -------------------------------------------------------------------------
こんにちは〜 10月とも思えない陽気がですね。暖かすぎて眠い〜 さて、久々に質問させていただきます。 今、ちょっくら他人の書いたコードを読んでいるのですが、 そのなかに、 For Each AAA In Workhseets("Sheet1").DrawingObjects 処理処理 Next AAA というのがありました。 DrawingObjectsって何じゃい?と思ってヘルプで見たのですが、 「隠しオブジェクト」とありました。そして、 新機能:新しい図形の描画レイヤ のところに、DrawingObjectsがリストされておりました。 そこからまた、「新しい図形の描画レイヤ」の、「図形」にリンクがありましたので、それを開くと、「図形で作業する (描画オブジェクト)」に飛んだわけですが、そこによると・・・ 「図形、または描画オブジェクトは、3 つの異なるオブジェクト、Shapes コレクション、ShapeRange コレクション、および Shape オブジェクトで表されます。通常、図形を作成したり、シートのすべての図形を反復する場合は、Shapes コレクションを使用します。単一の図形を書式設定したり、修正する場合は、Shape オブジェクトを使用します。複数の図形を画面上で処理するのと同じ方法で複数の図形を修正する場合は、ShapeRange コレクションを使用します。」 ということ・・・読んでもイマイチピンとこないんですけど、要するに、ShepesコレクションでOK・・・つまり For Each AAA In Workhseets("Sheet1").Shapes 処理処理 Next AAA と書き換えて問題ない・・・ということなのでしょうか? 処理内容も一緒にアップするべきかもしれませんが、なにぶん自分で書いたコードではないので、無断でアップするわけにもいきません。 これだけの情報内でわかることだけで結構ですので、ご教授いただけたら幸いです。 よろしくお願いしますーm(__)m |
つんさん、こんにちはぁ >ということ・・・読んでもイマイチピンとこないんですけど、要するに、ShepesコレクションでOK・・・つまり >For Each AAA In Workhseets("Sheet1").Shapes > 処理処理 >Next AAA >と書き換えて問題ない・・・ということなのでしょうか? ではありません。 Excelでは、シート上のオブジェクトはShapesから参照することができますが、 DrawingObjectsとは参照するものが違います。 (ShapesはShape、DrawingObjectsはDrawingObjectを参照します) ShapeオブジェクトからはDrawingObjectオブジェクトを参照するときは Shape.DrawingObject のようにします。 たとえば、 For Each AAA In Worksheets("Sheet1").DrawingObjects With AAA 処理 Wnd With Next AAA は、 For Each AAA In Worksheets("Sheet1").Shapes With AAA.DrawingObject 処理 Wnd With Next AAA で同じ動きになります。 (条件によっては違うことがあります) 逆は、DrawingObject.ShapeRange(1) (これも条件によっては違うことがあります) 参照するものが違うので、目的によって使い分ける必要があります。 なので、その元のコードが何をしたかったかによりますよ。 Shapeを参照したいときは、Shapes DrawingObjectを参照したいときは、DrawingObjects OLEObjectを参照したいときは、OLEObjects(おまけ^^;) というように使い分けをします。 続きの処理がわからないので、とりあえずこのぐらいで^^A ではではぁ |
JuJuさん、こんばんは 回答ありがとうございます。 すっかりわかりました♪・・・とは言えないのですが(とほほ・・) 自分が考えていたのは間違いだというのはよーくわかりました。 >Excelでは、シート上のオブジェクトはShapesから参照することができますが、 >DrawingObjectsとは参照するものが違います。 >(ShapesはShape、DrawingObjectsはDrawingObjectを参照します) いまいち、DrawingObjectってのが何を指すのかよーわからんのです(>_<) >続きの処理がわからないので、とりあえずこのぐらいで^^A そうですね・・・まるまる見ていただけたら、一番いいのですが・・・ なにぶん、自分のコードでないので、それが残念(>_<) ではでは、ありがとうざいました。 |