[[20100601103610]] 『オートシェイプの設定』(しまぶ〜) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートシェイプの設定』(しまぶ〜)
 今、自分の所にあるパソコンで、Excel2007とExcel2003
 があります。Excel2003で作ったものをExcel2007で開い
 て印刷をするとオートシェイプで作った四角形などは、
 印刷位置が必ずずれてしまいます。
 今、2007でずれないようにするため、オートシェイプの
 書式設定内にあるプロパティのセルに合わせて移動やサ
 イズの変更をしないにチェックをいれると何とか問題は
 改善されるのですが、それをマクロで一発で解決したく
 マクロの記録で記録してみたのですが、これをまだオー
 トシェイプを増やしてもボタン一つで解決できるように
 したいのです。下記の数字だけを変更すればなんとかな
 るのでしょうか?また、変更するにしても途中の番号も
 入っていて下手にいじることが出来ません。
 どうすればいいのかどなたか教えてもらえませんか?
Private Sub CommandButton2_Click()
    ActiveSheet.Shapes("Rectangle 334").Select
    ActiveSheet.Shapes.Range(Array("Rectangle 334", "Rectangle 339")).Select
    ActiveSheet.Shapes.Range(Array("Rectangle 334", "Rectangle 339", _
        "Rectangle 348")).Select
    ActiveSheet.Shapes.Range(Array("Rectangle 334", "Rectangle 339", _
        "Rectangle 348", "Rectangle 337")).Select
    ActiveWindow.SmallScroll Down:=6
    ActiveSheet.Shapes.Range(Array("Rectangle 334", "Rectangle 339", _
        "Rectangle 348", "Rectangle 337" _
    , "Rectangle 338")).Select
    ActiveSheet.Shapes.Range(Array("Rectangle 334", "Rectangle 339", _
        "Rectangle 348", "Rectangle 337" _
    , "Rectangle 338", "Rectangle 349")).Select
    With Selection
        .Placement = xlFreeFloating
        .PrintObject = True
    End With
End Sub
 ちなみに、今あるオートシェイプの四角形の番号は6つあり、334、337、338
 339、348、349です。

 Private Sub CommandButton2_Click()
    With ActiveSheet.DrawingObjects
       .Placement = xlFreeFloating
       .PrintObject = True
    End With
 End Sub

 こういうことですか?

 ichinose


 ありがとうございます。そういうことです。
 イメージ通りでした。
 すみません。自分なりに勉強したいのですが、
 DrawingObjectsとは、すべてのオートシェイプ
 のことを指す単語なのですか?それともまだ他
 にも意味があるのですか?
 よろしくお願いします。
 (しまぶ〜)


 >DrawingObjectsとは、すべてのオートシェイプのことを指す単語なのですか?
 DrawingObjectsとオートシェイプは、次元が異なる名称です。
 もっとも私もExcelを使い始めたのがExcel2000からなので古いことはあまり知らないのですが・・・。
 DrawingObjectsというのは、Excel95以前には、
 シート上のすべての図形を扱えるオブジェクトでした。
 Excel97から、図形を扱うオブジェクトとして、Shape
 (コレクションをShapes、DrawingObjectsに匹敵するコレクション)
 というクラスが登場します。
 DrawingObjectsとshapes、同じように図形を扱うオブジェクトですが、別のオブジェクトです。
 このShapeというオブジェクトの種類の一つにオートシェイプ
 (アプリケーションにあらかじめ用意されている図形のこと。
 長方形や円などの基本図形、さまざまな線種、コネクタ、ブロック矢印、
 フローチャート、星とリボン、吹き出しなどがある)
 というものがあるのです。typeというプロパティで識別できます。

 どこかでも書きましたが、

 シート上に見えている図形の集まり=DrawingObjects
 シート上に見えている図形の集まり=Shapes

 ではありません、ここを理解してください。オブジェクトは、図形そのものではありません。

 DrawingObjectsもShapesも図形を操作するインターフェースにすぎません。

 Excel97からは、図形を操作する新しいインターフェース(Shapes)が出来たのですから、
 これを使えばよいのです。
 が、
 新しい機能も追加されているのですが、バグもあって、
 図形を操作するのに中々Shapes単独では、実現できないこともあるということが
 分かってきました。そこでShapesでは出きないことを古いインターフェースである
 DrawingObjectsを使って行うようにして、うまく使い分けているのが現状です。

 よって、DrawingObjectsもShapesもすべての図形を含んでいる と言えると思います。

 ichinose


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.