アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/08/08 05:29

残念ながら、Excel2007では記録されなくなりました。


Word2007なら記録されます。
図形を挿入する部分はExcel2007でも使えます。
「テキストの追加」の部分のコードは使えないようです。

ヘルプで、TextFrameプロパティを確認してください。
Textを追加するコードが掲載されています。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/08/08 05:27

そのままマクロの自動記録で、テキストを記入して、生成されたコードを見ればわかるはずです。



ついでに・・・
>フローチャートの三角形~
msoShapeIsoscelesTriangleは基本図形の三角形ではありませんか?

この回答への補足

早速のご回答ありがとうございます。
ああ、基本図形の三角形でしたか?

ご指摘の自動記録では、オートシェイプの図形作成表示の一連の作業は記録されなかったのです。なぜでしょうか?

補足日時:2009/08/07 22:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!