『選択したセル内数字の〇〇行上の数字+1をして連番を付けたい』(さと)
セルの
L10 に 1
L41 に 2
L72 に 3 ←ここまで印刷1ページ目
L112 に 4
L143 に 5
L174 に 6 ←ここまで印刷2ページ目
L214 に 7 ・・・
上記のように行が+31→+31→+40→+31→+31→+40という間隔で
連番を振りたいのですが、
選択セル内数字の〇〇行上の数字+1というように入力することは可能でしょうか。
連番を入力するだけの空欄の行は無いです。
< 使用 Excel:Excel2021、使用 OS:Windows11 >
Option Explicit
Sub FillSequence()
Dim i As Long
Dim rowNum As Long
Dim pageIndex As Long
Dim posInPage As Integer
Dim maxCount As Long
' 何番まで振りたいかを指定(例:30番まで)
maxCount = 30
For i = 1 To maxCount
' ページ番号(0から開始)とページ内での位置(0, 1, 2)を計算
pageIndex = Int((i - 1) / 3)
posInPage = (i - 1) Mod 3
' 行番号の計算
Select Case posInPage
Case 0: rowNum = 10 + (pageIndex * 102)
Case 1: rowNum = 41 + (pageIndex * 102)
Case 2: rowNum = 72 + (pageIndex * 102)
End Select
' L列に入力
Cells(rowNum, "L").Value = i
Next i
End Sub
(稚拙) 2026/03/25(水) 16:51:58
=LET(
start, 10,
steps, {31, 31, 40},
n, 200,
targets, start +
VSTACK(
0,
SCAN(
0,
SEQUENCE(n),
LAMBDA(a, b, a + INDEX(steps, MOD(b - 1, 3) + 1))
)
),
IFERROR(XMATCH(ROW(L1:L1000), targets), "")
)
(abec) 2026/03/25(水) 17:08:23
>連番を入力するだけの空欄の行は無いです。 これはどういう意味ですか?空欄の「列」の間違いですか? L列は、その一部に既に何かが入力されている、or、今後入力が予定されている ということですか? それだとL1:L1000に展開されるような式は使えないのかもしれませんね。 でも面白い計算でした。 (xyz) 2026/03/25(水) 17:50:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.