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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Word(ワード) ワード。フリーフォームの使い方が分かりません。 1 2022/10/06 16:18
- 画像編集・動画編集・音楽編集 ワード。頂点の編集。 4 2022/09/28 14:14
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
エクセルVBA、フリーフォームで円を描画したい
Excel(エクセル)
-
Excel VBA で自在に図形を変化させたい
Visual Basic(VBA)
-
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
-
4
エクセルで、オブジェクトの選択を禁止する方法。
Excel(エクセル)
-
5
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
6
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
7
VBAで図形同士をコネクタで繋いでいく方法
Visual Basic(VBA)
-
8
vba Shapes.AddLineの名前取得について教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
エクセルの表を複数枚印刷した...
-
エクセル マクロ名にブック名...
-
マクロ実行ボタンを自動削除したい
-
複数のマクロボタンをまとめて...
-
Excelマクロで、稼働中のマクロ...
-
エクセルで、「いいね」のよう...
-
LDPlayerのマクロの編集方法を...
-
検索はマクロで記録できないの...
-
エクセルで明日の日付を表示す...
-
エクセルの、記録を終了したマ...
-
なぜマクロの記録がなくなって...
-
Excelのマクロ名の並び順の法則...
-
Word、ナビーゲーションウイン...
-
WORDを使って印刷部数分の連番...
-
エクセル2007のセルに入力され...
-
エクセルでマクロ(Excel 4.0)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
エクセル ボタンに設定したマク...
-
エクセルの、記録を終了したマ...
-
エクセルの表を複数枚印刷した...
-
複数のマクロボタンをまとめて...
-
エクセルマクロで、別のブック...
-
Excelマクロで、稼働中のマクロ...
-
エクセルでマクロ(Excel 4.0)...
-
別シートのマクロボタンをマク...
-
(Excel VBA)シートコピー時マ...
-
Excel:マクロを消す方法教えて...
-
マクロ実行ボタンを自動削除したい
-
EXCELのマクロが他のパソコンで...
-
Excelのマクロ名の並び順の法則...
-
マクロをマクロを使ってコピー...
-
Excelマクロをバックグラウンド...
おすすめ情報