• 締切済み

教えてくださいな。新年会座席表の作り方

新年会の座席表を作ることになりました。参加人数は100名弱を予定しております。まず円を描き、その周りに会社名・名前を書きます。現在、powerpointで円卓を9個描いた段階です。出欠表はエクセルで作っており、いちいちコピー・ペーストでテキストボックスに貼り付けるという行為を100回近くやらねばならないのでしょうか?なにかいい方法はないでしょうか?

みんなの回答

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

#2のご回答に触発されて、下記をやってみました。 A1:A10に 内田 研 山田 鱒二 矢田 恵子 植田 秀雄 大川 邦夫 栗田 夏見 中田 正治 マーシャル 本田 通 横沼 健二 とあるとします。 行高、列幅は適当にします。 VBEに Sub Test21() Dim sh As Shape ActiveSheet.DrawingObjects.Delete For i = 1 To 10 With ActiveSheet.Cells(i, 2) .Activate Set sh = ActiveSheet.Shapes.AddShape _ (msoShapeRectangle, .Left, .Top, .Width * 2, .Height) sh.Select Selection.Characters.Text = Cells(i, "A") End With Next i End Sub を貼り付け、実行します。 これで四角の中に 氏名が入ります。 これらを十字型矢印マウスポインタを出して、適当な位置にD&Dしてみてください。 名前を入れる手間が少し省けます。 ーーーーーーーーーーーーーーーー または A列、C列に 内田 研 H2 山田 鱒二 F2 矢田 恵子 D4 植田 秀雄 J4 大川 邦夫 D6 栗田 夏見 J6 中田 正治 E8 マーシャル I8 本田 通 G10 横沼 健二 D4 と入れて Sub Test21() Dim sh As Shape ActiveSheet.DrawingObjects.Delete For i = 1 To 10 L = Range(Cells(i, "C")).Left T = Range(Cells(i, "C")).Top With ActiveSheet.Cells(i, "B") .Activate Set sh = ActiveSheet.Shapes.AddShape _ (msoShapeRectangle, L, T, .Width, .Height) sh.Select Selection.Characters.Text = Cells(i, "A") End With Next i End Sub を実行すると 、もしC列のセル番地の設定がうまく行われると、自動的に円形的に配置されます。(すみません上例は手抜きで円形的になってません) お遊びのような範囲のVBAですのでご笑納ください。 ひょっとすると使えるかも。 実際テスト済みということで、自信ありになってます。 マクロの記録をとれば、VBAに詳しくなくても、フォントやその他 いじくれば、自分のしたいように、改造できるかもしれない。 円もマクロの記録を使えばVBAでシート上に円が掛けます。 msoShapeRectangleーー>msoShapeOvalです。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

円卓ですよね。それなら円グラフを使えばいいのでは? A列:会社名・氏名 B列:すべて1と入力 上記で1卓分のデータで円グラフを作成して、データ系列の書式にて パターン:輪郭と領域の色を1色に固定 データラベル:分類名にチェック これで勝手に配置してくれます。これを9卓分設定して作成すればいいのでは?

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

例えば、、、 Excelで下記のマクロを実行するとアクティブシートにオートシェイプを100個作ります。 それぞれのオートシェイプにはセルへのリンクが貼ってあり A1~A100 に何か文字を入れると表示されます。 後は適当な所に配置すれば完了です。 Sub Test1() Dim sh As Shape For i = 1 To 100  With ActiveSheet.Cells(i, 2)   .Activate   Set sh = ActiveSheet.Shapes.AddShape _    (msoShapeRectangle, .Left, .Top, .Width * 2, .Height)   sh.Select   ExecuteExcel4Macro _    "FORMULA(""=" & .Offset(0, -1).Address(ReferenceStyle:=xlR1C1) & """)"  End With Next i End Sub

  • fjnobu
  • ベストアンサー率21% (491/2332)
回答No.1

1個コピーで2個それをコピーで4個もう一回コピーで8個、最初の1個のコピーで9個 これを同様に、11組を作るにはコピーを3回+2個+1個以上で11個 コピーは10回で済みます。