プロが教える店舗&オフィスのセキュリティ対策術

Excel2010です。
マクロの記録でフリーフォームを作成するマクロを作りました。
角が1つある直線のフリーフォームです。

Sub Macro1()

With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 50, 50)
.AddNodes msoSegmentLine, msoEditingAuto, 100, 150
.AddNodes msoSegmentLine, msoEditingAuto, 150, 150
End With
End Sub


マクロを実行した後、「頂点の編集」で真ん中の頂点を移動すると片側の線が曲線になってしまいました。
マクロを使わず、同じフリーフォームを直接描画して頂点を移動すると曲線にはなりません。
マクロで描画後に毎回「線分を伸ばす」で直線にするのは面倒なので、はじめから曲線にならないようにするには、マクロをどう直せば良いでしょうか?

またマクロでできあがる線は、真ん中の頂点がない直線でもかまいません。
目的はマクロで出来た線に「頂点の追加」で角を数カ所追加することです。
角の位置はその都度変わります。
このブックはExcel2003、2007、2010で使用する予定です。
もしくは、フリーフォームが曲線にならないようにExcelの設定を変えてしまう方法でもかまいません。

どうぞよろしくお願いします。

A 回答 (1件)

「フリーハンド」はVBAだと理解しにくいものの1つです。


いろいろ試して自分で理解し覚えていくしかありません。
手動でもマクロでも頂点を追加してからその点を動かさないと曲線になります。

With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, 170.25, 45)
.AddNodes msoSegmentLine, msoEditingAuto, 171, 165
.ConvertToShape.Select
End With
Selection.ShapeRange.Nodes.Insert 1, msoSegmentCurve, msoEditingAuto, 30, 61.5
    • good
    • 0
この回答へのお礼

どうもありあとうございました。
2010で直線になるようにするとそれが2007では曲線になり、2007でマクロを修正すると2010で曲線になる。。。の状態で悩んでいました。
示していただいたマクロも2007で実行すると曲線になってしまいましたが、ご説明でどうにもならないことと理解しました。
ですがこれを参考にさせていただいて、間に頂点を2つもうける事で直線のまま頂点を編集することができるようになりました。
大変参考になりました。
ありがとうございました。

お礼日時:2012/03/10 23:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています