- 締切済み
座席表作成
エクセルVBA初心者です。 約5000席の座席表に連番で表記したいのですが・・・ まずは横30席、縦54席の連番を一発で出来るのでしょうか? しかも蛇行スタイルなんです。 一列目 1.2.3.4.5.6.7.8.9.10 二列目 20.19.18.17.16.15.14.13.12.11 三列目 21.22.23.24.25.26.27.28.29.30 といったようにしたいです。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
ざっと書くとこんな感じ startRange = "b2" ColsCount = 30 RowsCount = 54 Dim x() As Integer ReDim x(RowsCount, ColsCount) Set orgRange = Range(startRange) For j = 0 To (UBound(x, 1) - 1) / 2 For i = 0 To UBound(x, 2) - 1 x(j * 2, i Mod UBound(x, 2)) = i + 1 + j * UBound(x, 2) * 2 x(1 + j * 2, i Mod UBound(x, 2)) = UBound(x, 2) * 2 - i + j * UBound(x, 2) * 2 Next Next Range(orgRange, orgRange.Offset(UBound(x, 1) - 1, UBound(x, 2) - 1)).Value = x
- nak777r
- ベストアンサー率36% (49/136)
おっと、一発ででしたね aNo.3 の操作を、マクロの記憶 で記憶してください。
- nak777r
- ベストアンサー率36% (49/136)
[A1]セルに 1 を記述 [B1]セルに =A1+1 を記述 [A2]セルに =A1+59 を記述 [B2]セルに =A2-1 を記述 [A3]セルに =A2+1 を記述 [B3]セルに =A3+1 を記述 [B1][B2][B3]の3つのセルをまとめて選んで、右下の■をつまんで右にAD列迄動かします 2行目、3行目の2行をまとめて選んで 同じ用に■をつまんで下に 求める行まで(5000席なのか 30*54=1620席なのかしりませんが) 動かします。 最後に 計算式が埋め込まれているので、 全てのセルを選択してコピー そのまま、形式を選択して貼り付け で 値 を選んでOK
お礼
ありがとうございました。 実際にやってできました。 助かりました。
- sakusaker7
- ベストアンサー率62% (800/1280)
できるかできないか,ということならできる。 あなたが本当に求めているのはそれをしてくれるコードを書いてください ってことでしょ? 「蛇行スタイル」だからわからないのか そもそもVBAでどうやって連番を振るのかが わからない。どっち?
補足
質問下手ですいません。 VBAで連番を振ることをしたいので、コードを教えて下さい。 よろしくお願いします。
- yambejp
- ベストアンサー率51% (3827/7415)
たとえば A1が1,B1が2・・・AD1が30 A2が60,B2が59・・・・AD2が31 みたいにセルに埋めたいの? 前回の質問からしても情報がたりなくて回答がしにくい
お礼
質問下手ですいません。 yambejpさんが言ってくださっていることです。 セルに埋めたいだけです。
お礼
ありがとうございます。 実行してみます。