// y1 行目の内容を y2 行目にコピーする
function copyRow(y1, y2) {
for (x = 1; x <= Right; x++) {
[x,y2] = [x,y1];
}
}
// y 行 x 列の管理番号を -tanpin に変更する
function changeId(x, y) {
[x,y] = replace([x,y], "-set", "-tanpin");
}
// 管理番号の列番号
idCol = 1;
// 価格の列番号
priceCol = 7;
id = "";
idStart = 0;
price = "";
priceStart = 0;
copied = false;
for (y = 1; y <= Bottom; y++) {
if ([idCol,y] != id) {
// 新しい管理番号の場合。情報を初期化する。
id = [idCol,y];
idStart = y;
price = [priceCol,y];
priceStart = 0;
copied = false;
} else if (copied) {
// すでにコピーが終わっている場合。管理番号だけ変更する。
changeId(idCol, y);
} else if ([priceCol,y] != price) {
if (priceStart == 0) {
// 初めて価格が変わった場合。set 価格の開始位置を記録する。
price = [priceCol,y];
priceStart = y;
} else {
// 2 回目に価格が変わった場合。
// set 価格の開始位置までをコピーして管理番号を変更する。
count = priceStart - idStart;
InsertRow(y, y + count - 1);
for (i = 0; i < count; i++) {
copyRow(idStart + i, y + i);
changeId(idCol, y + i);
}
copied = true;
y += count - 1;
}
}
}