2008年2月23日土曜日

第82回目 図形作成システムの完成度を求めて(その5)

○第82回目 図形作成システムの完成度を求めて(その5)

 今回は、前回取り上げたうちの3と4を取り上げます。
 3.図形のサイズ等を合わせる
 4.図形の種類の変更(四角形から円へ変更など)

 まずは、下の4から、
 これは、図形の作成を原型に使います。図形の変更のコマンドはどうなるのでしょうか。この一点にかかっています。
 見当がつかないので、2003でマクロの記録をとって、2007に移植します。
 結果は、
  ActiveSheet.Shapes("Rectangle 147").Select
Selection.ShapeRange.AutoShapeType = msoShapeRoundedRectangle
 となりました。
 ということで、図形を指定した後に、
Selection.ShapeRange.AutoShapeType = の後に、図形の種類を書いておけばいいことになります。
この考えをもとに、コピーした図形の作成を直してください。
(図形の指定は前回のものを使えば、飛び飛びに処理が出来ます)

 3.図形のサイズ等を合わせる
は、二つの図形番号が必要です。一つは元になる図形番号です。残りは、変えたい図形群です。
図形の番号を指定するわけですので、それぞれ区分してわかるようにしてください。元の番号は、オリジナルから、orgをつけておきました。
 決めなくてはいけないのは、何をコピーするかです。
 筆者は、大きさのほかに、文字のフォント情報、文字の位置情報、図形の色としました。
 まず、元となる図形の必要情報を取っておきます。
ActiveSheet.Shapes(no_org).Select
hig = Selection.ShapeRange.Height
wid = Selection.ShapeRange.Width
fo_na = Selection.Font.Name
fo_sty = Selection.Font.FontStyle
iro = Selection.ShapeRange.Fill.ForeColor.SchemeColor
ichi1 = Selection.VerticalAlignment
ichi2 = Selection.HorizontalAlignment

 そして、コピーしたい図形に適用します。
'サイズ等の変更
Selection.ShapeRange.Height = hig
Selection.ShapeRange.Width = wid
With Selection.Font
.Name = fo_na
.FontStyle = fo_sty
End With
Selection.ShapeRange.Fill.ForeColor.SchemeColor = iro
Selection.VerticalAlignment = ichi1
Selection.HorizontalAlignment = ichi2
 という感じになるでしょうか。

 これらのプロパティにかかるコマンドは、取得と設定の二つの役割りが、イコールの前後に何があるかによって定まります。一つ知れば、二つわかるというパターンのものです。

 この機能と飛び飛び指定の機能を使うと作業が格段に短縮化されます。

 飛び飛びの機能はあらゆる番号指定のパターンをカバーしていますので、非常に作業の省力化に役立ちます。
 飛び飛びの昨日を考慮すべきものは、未来系も含めて、

 図形の移動_整列もどき、図形のサイズの変更、図形の削除

 図形ライン_コネクタの修飾、ラインの太さ、矢印の向き
 図形_色の選択、図形の順序、図形の外枠の設定_消去
 図形の整列、文字の変更、文字の配置、図形のグループ化及び解除
 図形のサイズ等を合わせる
図形の種類の変更

となります。

0 件のコメント: