一寸この掲示板を見ていませんでした。
返事が遅れてすみません。
> エクセルでA4印刷を想定し3分割で100ずつの連番
こちらの環境では、既定のセルのサイズでA4に印刷すると、A1:H39が印刷範囲になるようです。
これを3分割で1〜100といった連番をどこのセルに、どのように入力するのか
ちょっと、理解しかねます。
1枚目、2枚目、3枚目とはそれぞれどのようなセル範囲になるのか?
どのセルどのように連番を入れるのか? 具体的に書いてください。
ここからは、上記の設定は無視して、書きます。
A1〜A100に1〜100、B1B100に301〜400、といった感じなら、
ROW関数でどうにかなりそうなので、こんなことでは無さそうですよね?
飛び飛びなら、VBAの方が容易だと思います。
A1,A4,A7・・・に1〜100と入力するなら、以下のような感じです。
Sub test()
Dim i As Long
For i = 1 To 100
Cells(1 + (i - 1) * 3, 1).Value = i
Next i
End Sub
お書きのアドレスはデータベースアプリ桐の掲示板のようです。
連番入りのチケットを作成するような感じでしょうか?
そうだったら、Wordの差し込み印刷の機能を使うのが楽そうな気がしますが、
A4に300枚のチケットが印刷できそうな気はしません。
何か腑に落ちないです・・・
どのように印刷するのかわかりませんが、
1行のセルに100個の連番を入力する・・・ということにします。
A1から右へ 1〜100
A2から右へ 701〜800
A3から右へ 1401〜1500
A4 101〜200
A5 801〜900
A6 1501〜1600
・・・
A298 9901〜10000
A299 10601〜10700
A300 11301〜11400
と入力するのなら、以下のコードでできます。
(説明はいい加減ですが、ニュアンスはわかると思います)
iが1から100まで1つずつ加算しています。
jは700づつ加算しています。
kの値が最終番号を決めます。今は100で11400が最後になっています。
Sub test()
Dim i As Long, j As Long, k As Long
Dim cn As Long
For k = 1 To 100
For j = 1 To 3
cn = cn + 1
For i = 1 To 100
Cells(cn, i).Value = (j - 1) * 700 + i + (k - 1) * 100
Next i
Next j
Next k
End Sub
(以上です)
もしかして、このような表示が欲しいということですか?
A1セルに 1〜100
A2セルに 701〜800
A3セルに 1401〜1500
A4セルに 101〜200
A5セルに 801〜900
A6セルに 1501〜1600
アップロードしていただいたファイルを見て、
このようなことか? と気づいた次第です。
印刷の設定はそちらで手作業で行うこととして、
以下のようなコードにしました。
関数でできそうですけど頭が回らないので、VBAで・・・
Sub test2()
Dim i As Long, j As Long, k As Long
Dim cn As Long
For k = 1 To 100
For j = 1 To 3
cn = cn + 1
i = 1
Cells(cn, i).Value = (j - 1) * 700 + (k - 1) * 100 + 1 & "〜" & (j - 1) * 700 + (k - 1) * 100 + 100
Next j
Next k
End Sub
折角なので、列幅や行高さ、フォントサイズ、罫線などの書式を付け加えました。
Sub test3()
Dim i As Long, j As Long, k As Long
Dim cn As Long
For k = 1 To 100
For j = 1 To 3
cn = cn + 1
i = 1
Cells(cn, i).Value = (j - 1) * 700 + (k - 1) * 100 + 1 & "〜" & (j - 1) * 700 + (k - 1) * 100 + 100
Next j
Next k
With Range(Range("A1"), Range("A1").End(xlDown))
.RowHeight = 237.75
.ColumnWidth = 76.88
.Font.Size = 72
.HorizontalAlignment = xlCenter
.Borders.LineStyle = True
End With
Range("A1").Select
End Sub
これでいかがでしょうか?
Sub test5()
Dim i As Long, j As Long, k As Long
Dim cn As Long, mai As Long
Const eNo As Long = 5000 '最終の番号を100の単位で設定します。
mai = WorksheetFunction.RoundUp(eNo / 300, 0)
For k = 1 To mai
For j = 1 To 3
cn = cn + 1
'i = Int((cn - 1) / 3) + 1
Cells(cn, 1).Value = (j - 1) * mai * 100 + (k - 1) * 100 + 1 & "〜" & (j - 1) * mai * 100 + (k - 1) * 100 + 100
Next j
Next k
With Range(Range("A1"), Range("A1").End(xlDown))
.RowHeight = 237.75
.ColumnWidth = 76.88
.Font.Size = 72
.HorizontalAlignment = xlCenter
.Borders.LineStyle = True
End With
Range("A1").Select
End Sub