
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の設定を変えてしまう方法でもかまいません。
どうぞよろしくお願いします。
No.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
どうもありあとうございました。
2010で直線になるようにするとそれが2007では曲線になり、2007でマクロを修正すると2010で曲線になる。。。の状態で悩んでいました。
示していただいたマクロも2007で実行すると曲線になってしまいましたが、ご説明でどうにもならないことと理解しました。
ですがこれを参考にさせていただいて、間に頂点を2つもうける事で直線のまま頂点を編集することができるようになりました。
大変参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA、フリーフォームで円を描画したい
Excel(エクセル)
-
Excel VBA で自在に図形を変化させたい
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
6
多角形の内部かどうか判定する方法
その他(プログラミング・Web制作)
-
7
ExcelVBA 図形をクリックした際のイベントを拾うには
Visual Basic(VBA)
-
8
Excel VBAのオートシェイプの名前の取得(?)
Visual Basic(VBA)
-
9
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
10
2画面表示でのVBAのボタン押下後のform表示の位置
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
Excel マクロの編集がグレーに...
-
エクセルでマクロ(Excel 4.0)...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセルの、記録を終了したマ...
-
エクセルマクロで、別のブック...
-
(Excel VBA)シートコピー時マ...
-
Excelのマクロ名の並び順の法則...
-
Excelマクロをバックグラウンド...
-
エクセルの表を複数枚印刷した...
-
Excelマクロで、稼働中のマクロ...
-
LDPlayerのマクロの編集方法を...
-
【マクロ】マクロボタンをクリ...
-
ExcelVBAでShowDatasFormがエラ...
-
コピーしたデータを2行ずつに貼...
-
マクロの保存先を変更するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
エクセルの、記録を終了したマ...
-
LDPlayerのマクロの編集方法を...
-
(Excel VBA)シートコピー時マ...
-
Excelマクロで、稼働中のマクロ...
-
エクセルの表を複数枚印刷した...
-
エクセルで明日の日付を表示す...
-
Excelのマクロ名の並び順の法則...
-
別シートのマクロボタンをマク...
-
Excelマクロをバックグラウンド...
-
エクセルマクロで、別のブック...
-
他のBOOKにマクロを反映させな...
-
EXCELのマクロが他のパソコンで...
おすすめ情報