• ベストアンサー

エクセル マクロにてテキストボックスを追加

マクロでテキストボックスを追加したいのですが、追加する位置を指定したいのです。 たとえば、セルのC3の左下の隅をゼロ基準として、右へ1ポイント(単位は何でも良い)上へ3ポイントの位置へテキストボックスの左下(実際はどこでも良い)が来るように貼るにはどうすれば良いでしょうか?

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

  • ベストアンサー
回答No.1

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 51, _ 100#, 50#).Select で、いかがでしょうか。 選択されているセルの左下から、 右に3ポイント 上に51ポイント(1ポイント+テキストボックスの高さ50) の位置にテキストボックスの左下端をセットする例です。

VitaminBB
質問者

お礼

回答ありがとうございます。 ついでにこのテキストボックスに”あ”の字を入れるには、どうすれば良いのでしょうか?

その他の回答 (3)

回答No.4

No3の追加です。 テキストボックスの内容を変更するときに、いちいちマクロを変更するのは 面倒ですので、次のようにされたほうがよいかと思いまして...。 Sub Test1() Dim CMT As String CMT = Range("A1") ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 51, _ 100#, 50#).Select Selection.Characters.Text = CMT End Sub テキストボックスに表示したい文章をセルA1に入力してから実行します。

VitaminBB
質問者

お礼

わざわざありがとう御座いました。

回答No.3

> ついでにこのテキストボックスに”あ”の字を入れるには、 Sub Test1() ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 51, _ 100#, 50#).Select Selection.Characters.Text = "あああああ" End Sub とか....。 文字サイズやテキストボックスの書式など、マクロを自動記録して確認されると よいでしょう。 私もマクロは不得意なほうなので、必要なときは自動記録の結果をツギハギして 作っています。

VitaminBB
質問者

お礼

回答ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

普通はコントロールの位置や大きさはL,T、W、Hで指定するので、左下隅でなく、左上隅を考えた方が単純で分かりやすくなります。 Sub test01() 'ActiveSheet.Shapes.Delete ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ Range("c3").Left + 30, Range("c3").Top + 30, 100#, 50#).Select Selection.Text = "あ" End Sub >テキストボックスに”あ”の字を入れるには Selection.Text = "あ" の部分。

VitaminBB
質問者

お礼

回答ありがとうございます。

関連するQ&A