• ベストアンサー

Excel  VBAで 図形を描いてその中に文字を。

教えて下さい。 エクセル2007 VBAで オートシェイプでフローチャートの三角形を描いて、 その中に「検索」などの文字を表示させることが必要になってきました。 どのように記述すればいいのですか? >ActiveSheet.Shapes.AddShape msoShapeIsoscelesTriangle, 560, 60, 70, 80 これで三角形は描画できますが、その中に文字を記入させるにはどうすればいいのかを教えて下さい。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

banzaiA
質問者

お礼

早速のご回答ありがとうございます! できました! これで次へ進むことができそうです。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

残念ながら、Excel2007では記録されなくなりました。 Word2007なら記録されます。 図形を挿入する部分はExcel2007でも使えます。 「テキストの追加」の部分のコードは使えないようです。 ヘルプで、TextFrameプロパティを確認してください。 Textを追加するコードが掲載されています。

banzaiA
質問者

お礼

ありがとうございます 確認してみます

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

そのままマクロの自動記録で、テキストを記入して、生成されたコードを見ればわかるはずです。 ついでに・・・ >フローチャートの三角形~ msoShapeIsoscelesTriangleは基本図形の三角形ではありませんか?

banzaiA
質問者

補足

早速のご回答ありがとうございます。 ああ、基本図形の三角形でしたか? ご指摘の自動記録では、オートシェイプの図形作成表示の一連の作業は記録されなかったのです。なぜでしょうか?

関連するQ&A