VISIOで自動で図形を描画するVBAを作成しております。
テキストからのデータの取得、
取得したデータにしたがっての、
長方形の作図、線の作成は出来ました。
この発展系として、
取得した座標を使っての図形の描画(例:三角形、中が塗れるやつ)が
上手くできません。
VISIOで普通に線を書くと、線をつなげて書いて、
最後に始点とつなげると、自動で図形になり、中を塗ることが出来るようになります。
ためしに、マクロの自動記録で、↑の作業をマクロ化してみましたが、
1個の三角形を書くマクロが生成され(ShapeのIDが決め打ち)
目的のような使い方は出来ませんでした。
お手数ですが、サンプルコード等ありましたら、お教えください。
No.1ベストアンサー
- 回答日時:
私はVISIOを持っていません(かつて職場で少し使った程度)VBAの経験はありません。
しかしPPTの例をhttp://msdn.microsoft.com/ja-jp/library/aa157690 …
エクセルに書き直すと、三角形作成と内部色を、つける点で旨く行きました。
フリーフォームを使うやり方です。
もし参考になれば。
フリーフォームを使うまでもないとか、少し変えてもうまく行きそうに無ければ、下記を無視してください。
ーー
エクセルの例 三角形を描く
Sub test01()
With ActiveSheet.Shapes.BuildFreeform(EditingType:=msoEditingCorner, X1:=560, Y1:=300)
.AddNodes SegmentType:=msoSegmentLine, EditingType:=msoEditingAuto, _
X1:=380, Y1:=200
.AddNodes SegmentType:=msoSegmentLine, EditingType:=msoEditingAuto, _
X1:=280, Y1:=400
.AddNodes SegmentType:=msoSegmentLine, EditingType:=msoEditingAuto, _
X1:=560, Y1:=300
.ConvertToShape.Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 19
End With
End Sub
ーー
●msoEditingCorner, X1:=560, Y1:=300)
始点が、左から500、上から300 A点
●msoEditingAuto, X1:=380, Y1:=200
第2点、左から380、上から200 B点 左上に上がる
●msoEditingAuto, X1:=280, Y1:=400
第3点、左から280、上から400 C点 左下に下がる
●EditingType:=msoEditingAuto, X1:=560, Y1:=300
始点に帰る。 A点(始点)右上に上がる
これで閉曲線(実はこの場合は直線)になる
これ(閉曲線になって)で内部に色をつけられる。
ーー
残りは内部に色を着けるコード部分。
ーーー
似たコードでPPTとエクセルで出来ているから、VISIOでも少し変えると出来るかも。
ActiveSheetのところは、もちろんVisio向け(ActiveDocument?)に変えてください。
ーーーー
Googleで「VISIO VBA」で照会すれば関連記事が出ますよ。
http://msdn.microsoft.com/ja-jp/office/cc917523. …ほか
http://msdn.microsoft.com/ja-jp/cc936656.aspx#sh …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- ノートパソコン Open Office.orgのDrawで描いた図形の塗りつぶしをしたい 1 2022/03/22 19:24
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- PowerPoint(パワーポイント) 2016EXCEL→2016PowerPointにコピペすると図形がゆがみます 5 2022/03/31 11:44
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- その他(教育・科学・学問) グーグルスプレッドシートの図形描画のバグ?「保存して終了」ボタンが突然消失 2 2022/04/05 13:11
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
ExcelのVBA。public変数の値が...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
サクラエディタ・マクロ → VSCo...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
エクセルに張り付けた写真のフ...
-
エクセルのマクロについて教え...
-
ユーザーフォームを起動しなが...
-
エクセルのマクロについて教え...
-
VBA アドインについて お詳しい...
-
VBA初心者 Ctrl+での操作、ボタ...
-
特定文字のある行の前に空白行...
-
2つのマクロでチェックボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報