• ベストアンサー

オートシェイプの大量生産自動化

たとえば500人の席次表をつくるとします。 オートシェイプにて500のボックスに名前をひとつずついれていくことになると思いますが、それはなんとも大変な作業かと。 たとえば、名前の一覧がエクセルであるとして、 それを使って自動的にオートシェイプを生み出すなんてことは可能なものでしょうか? 教えていただけると大変助かります!

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

  • ベストアンサー
  • izmlz
  • ベストアンサー率55% (67/120)
回答No.2

↓のマクロはいかがでしょうか? Sub test()  Dim Rng1 As Range  Dim Rng2 As Range  Dim c As Range  Dim myShape As Shape  Dim myLeft As Single, myTop As Single, myWidth As Single, myHeight As Single  Set Rng1 = Range("A1") '名前が入力されている列の最初の行のセルを指定  Set Rng2 = Range(Rng1, Cells(Rows.Count, Rng1.Column).End(xlUp))  Application.ScreenUpdating = False   Rng1.EntireColumn.AutoFit   Rng1.Offset(0, 1).ColumnWidth = Rng1.ColumnWidth   For Each c In Rng2    With c.Offset(0, 1)     myLeft = .Left     myTop = .Top     myWidth = .Width     myHeight = .Height    End With    Set myShape = ActiveSheet.Shapes.AddShape(msoShapeRectangle, myLeft, myTop, myWidth, myHeight)    myShape.TextFrame.Characters.Text = c.Value   Next  Application.ScreenUpdating = True End Sub

参考URL:
http://www2.odn.ne.jp/excel/waza/macro.html
pikachin
質問者

お礼

ありがとうございました。どちらにせよ、自動で作れたのでよかったです。

pikachin
質問者

補足

早々に回答いただいたのにすいませんでした。 そもそもマクロがよくわからないなか、ちょっと調べて、今しがた コピペさせていただき起動しましたらできました! 感動です。 よくをいえば、 ボックスのサイズを指定するとか オートシェイプの色や線を指定することは可能なのでしょうか・・・

その他の回答 (2)

回答No.3

No.1の方に補足 Word で差し込み印刷を使用して宛名ラベルを作成する方法 参考URL

参考URL:
http://support.microsoft.com/kb/294684/ja
  • k-josui
  • ベストアンサー率24% (3220/13026)
回答No.1

Wordですよね? オートシェイプでなく表にして、差し込み印刷でExcelデータを差し込めば簡単でしょう。

pikachin
質問者

お礼

回答ありがとうございました。 すいません、どうしてもオートシェイプでやりたっかので・・・