- ベストアンサー
Excel VBAで 図形を描いてその中に文字を。
教えて下さい。 エクセル2007 VBAで オートシェイプでフローチャートの三角形を描いて、 その中に「検索」などの文字を表示させることが必要になってきました。 どのように記述すればいいのですか? >ActiveSheet.Shapes.AddShape msoShapeIsoscelesTriangle, 560, 60, 70, 80 これで三角形は描画できますが、その中に文字を記入させるにはどうすればいいのかを教えて下さい。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 セルの右端の上を頂点として作成します。 ただし、左により過ぎると、「位置エラー」で、作画できません。 記録マクロでは、Character.Text が出てくるので、それは、TextFrame です。2007では、デフォルトで、塗りつぶしなどになりますから、書式設定をして、それを規定値にしてあげれば、よいかと思います。 '------------------------------------------- Sub TestMacro1() Dim sMsg As String Dim dL As Double '左 Dim dT As Double '上 Dim dW As Double '幅 Dim dH As Double '高さ sMsg = Application.InputBox("シェイプに入れる文字をいれてください。", Type:=2) If sMsg = "False" Or sMsg = "" Then Exit Sub With ActiveCell dL = 0: dT = 0: dW = 110: dH = 95 If .Offset(, 1).Left - (dW / 2) < 0 Then MsgBox "位置エラー", 48: Exit Sub dL = .Offset(, 1).Left - (dW / 2): dT = .Top: dW = 110 End With With ActiveSheet.Shapes.AddShape(msoShapeIsoscelesTriangle, dL, dT, dW, dH) .DrawingObject.Text = sMsg '位置合わせは、スペースをいれでもよい。例: =" " & sMsg End With End Sub
その他の回答 (2)
- xls88
- ベストアンサー率56% (669/1189)
残念ながら、Excel2007では記録されなくなりました。 Word2007なら記録されます。 図形を挿入する部分はExcel2007でも使えます。 「テキストの追加」の部分のコードは使えないようです。 ヘルプで、TextFrameプロパティを確認してください。 Textを追加するコードが掲載されています。
お礼
ありがとうございます 確認してみます
- fujillin
- ベストアンサー率61% (1594/2576)
そのままマクロの自動記録で、テキストを記入して、生成されたコードを見ればわかるはずです。 ついでに・・・ >フローチャートの三角形~ msoShapeIsoscelesTriangleは基本図形の三角形ではありませんか?
補足
早速のご回答ありがとうございます。 ああ、基本図形の三角形でしたか? ご指摘の自動記録では、オートシェイプの図形作成表示の一連の作業は記録されなかったのです。なぜでしょうか?
お礼
早速のご回答ありがとうございます! できました! これで次へ進むことができそうです。