- ベストアンサー
オートシェイプの大量生産自動化
たとえば500人の席次表をつくるとします。 オートシェイプにて500のボックスに名前をひとつずついれていくことになると思いますが、それはなんとも大変な作業かと。 たとえば、名前の一覧がエクセルであるとして、 それを使って自動的にオートシェイプを生み出すなんてことは可能なものでしょうか? 教えていただけると大変助かります!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
↓のマクロはいかがでしょうか? 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
その他の回答 (2)
- sainokuniob
- ベストアンサー率48% (12/25)
No.1の方に補足 Word で差し込み印刷を使用して宛名ラベルを作成する方法 参考URL
- k-josui
- ベストアンサー率24% (3220/13026)
Wordですよね? オートシェイプでなく表にして、差し込み印刷でExcelデータを差し込めば簡単でしょう。
お礼
回答ありがとうございました。 すいません、どうしてもオートシェイプでやりたっかので・・・
お礼
ありがとうございました。どちらにせよ、自動で作れたのでよかったです。
補足
早々に回答いただいたのにすいませんでした。 そもそもマクロがよくわからないなか、ちょっと調べて、今しがた コピペさせていただき起動しましたらできました! 感動です。 よくをいえば、 ボックスのサイズを指定するとか オートシェイプの色や線を指定することは可能なのでしょうか・・・