- ベストアンサー
選択したセルにピッタリ合うオートシェイプの挿入
よろしくお願いいたします。 下記のコードは行方向では選択したセルとピッタリに四角のオートシェイプが挿入できるのですが、列方向では常に1行です。 横方向も選んだ範囲だけ広がるようにするにはどう変えたらよいでしょうか。 Set shrect = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ Selection.Left, Selection.Top, Selection.Offset(0, 1).Left - Selection.Left, _ Selection.Height)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>ところで、もう一つお願いしてもよろしいでしょうか。 ツイデの質問で答えられるほど単純ではありません。 貼り付けた図の上に任意なテキストを入力可能な部品を。 とのことですので テキストボックスを貼り付けることとなりましょう。 だとすると、 その高さ、幅、位置、背景色、文字フォントのサイズなどを どのように決めればいいのかがが明示されないと コードを示すことが困難です。 これらを明らかにして、再質問してください。 識者が回答してくれる思います。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
#1のご回答と内容は、同じだが、 Sub test01() t = Cells(2, "B").Top l = Cells(2, "B").Left w = Cells(2, "B").Width + Cells(2, "C").Width + Cells(2, "D").Width h = Cells(2, "B").Height '-- Set shrect = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ l, t, w, h) End Sub のようにすれば、幅は如何様にもなるのでは。 上記ではB,C、D列3列の幅の合計例。連続した整数個の列幅にするもの。 l, t, w, h)の順序を間違えないように。 それか、名前付き引数で指定するとか。
お礼
お忙しいところご教示いただきありがとうございます。 参考にさせていただきます。
- HohoPapa
- ベストアンサー率65% (455/693)
以下はいかがでしょうか? Set shrect = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ Selection.Left, Selection.Top, Selection.Width, _ Selection.Height)
お礼
どうもありがとうございました。答えを聞くと。。。簡単にできるものなのですね。もっと勉強しなきゃって思います。 ところで、もう一つお願いしてもよろしいでしょうか。 この四角の中に文字を記入したいのですが、四角を挿入後すぐにタイプして文字が四角の中に入るようにするにはどうすればいいでしょうか。
お礼
失礼しました。 別に質問させていただきます。ありがとうございます。