dポイントプレゼントキャンペーン実施中!

エクセル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

といったようにしたいです。

A 回答 (5件)

ざっと書くとこんな感じ



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
    • good
    • 0
この回答へのお礼

ありがとうございます。

実行してみます。

お礼日時:2008/03/15 10:20

おっと、一発ででしたね



aNo.3 の操作を、マクロの記憶
で記憶してください。
    • good
    • 0

[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
    • good
    • 0
この回答へのお礼

ありがとうございました。

実際にやってできました。

助かりました。

お礼日時:2008/03/14 19:15

できるかできないか,ということならできる。



あなたが本当に求めているのはそれをしてくれるコードを書いてください
ってことでしょ?

「蛇行スタイル」だからわからないのか
そもそもVBAでどうやって連番を振るのかが
わからない。どっち?

この回答への補足

質問下手ですいません。

VBAで連番を振ることをしたいので、コードを教えて下さい。

よろしくお願いします。

補足日時:2008/03/14 18:47
    • good
    • 0

たとえば


A1が1,B1が2・・・AD1が30
A2が60,B2が59・・・・AD2が31
みたいにセルに埋めたいの?

前回の質問からしても情報がたりなくて回答がしにくい
    • good
    • 0
この回答へのお礼

質問下手ですいません。

yambejpさんが言ってくださっていることです。

セルに埋めたいだけです。

お礼日時:2008/03/14 18:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!