- ベストアンサー
エクセル VBA 四角形吹き出しの吹き出し先端の位置を数値で指定する方
エクセル VBA 四角形吹き出しの吹き出し先端の位置を数値で指定する方法を教えて下さい エクセルVBAで四角形吹き出し(msoShapeRectangularCallout)を挿入しています。 ActiveSheet.Shapes.AddShape(msoShapeRectangularCallout, left, top, width, height) で全体の導入X位置、Y位置、四角形部の幅、高さは指定可能ですが、吹き出し先端のxy位置も数値で指定したく、どなたか御教示下さい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんにちは。 こういう場合は、「マクロの記録」により、手動で「吹き出し」を作成したとき の操作をマクロ化してみて、そのマクロコードを解析してみるのが手っ取り 早いと思います。 こちらでマクロの記録を採ったところ、Shapeオブジェクト内の以下の2点の プロパティにより、吹き出しの先端位置を設定できるようです。 Adjustments.Item(1) ・・・ 吹き出し先端の相対幅 Adjustments.Item(2) ・・・ 吹き出し先端の相対高さ Item(1)は、吹き出し本体の幅(AddShapeで吹き出しを作成する際の 指定幅)を基準に、その相対幅で横位置(X方向)を指定するようです。 <例> Item(1) = 0.5 とした場合は、吹き出し本体の左端位置(X方向)に、 【吹き出し本体の幅の0.5倍(半分)の長さ】を足した分の位置が、 先端の横位置(X方向)となるようです。 この値にマイナス値を指定すると、吹き出し本体の左端位置より 左側(マイナス方向)の相対位置に設定されるようです。 Item(2)は、吹き出し本体の高さ(AddShapeで吹き出しを作成する際の 指定高さ)を基準に、その相対高さで縦位置(Y方向)を指定するよう です。 <例> Item(2) = 1.5 とした場合は、吹き出し本体の上端位置(Y方向)に、 【吹き出し本体の高さの1.5倍の長さ】を足した分の位置が、先端の 縦位置(Y方向)となるようです。 この値にマイナス値を指定すると、吹き出し本体の上端位置より 上側(マイナス方向)の相対位置に設定されるようです。 以下は、吹き出しを作成するサンプルマクロです。(※リンク先参照) 宜しければ試してみて下さい。 ※当方は、Excel2000で試してみました。 ■サンプルマクロ http://ideone.com/ydaky 添付画像は、上記マクロ実行後のシート画面です。 ※貼れていなかったり、見辛かった場合はすみません。 以上です。
お礼
回答ありがとうございます! 無事変更することができました!! Adjustments.Item()は吹き出し以外のオートシェイプにも使えるようですね。 大変助かりました!!!