// 請求先コードでソートする Sort(1, 1, Right, Bottom, 3, false, false, false, false); // 得意先コードと請求先コードを比較する。 // 一致しない請求先コードを codesToUpdate に記録する。 codesToUpdate = {}; for (y = Bottom; y >= 1; y--) { if ([1,y] != [3,y]) { codesToUpdate[[3,y]] = true; } } for (y = Bottom; y >= 1; y--) { // 一致しない請求書コードと同じコードが得意先コードにある行を行コピーする。 if ([1,y] in codesToUpdate) { InsertRow(y + 1); for (x = 1; x <= Right; x++) { // コピーした行の得意先コードは置き換えない。請求書コードだけ置き換える。 if (x == 3 && ([3,y] in codesToUpdate)) { [x,y+1] = "9999" + [x,y]; } else { [x,y+1] = [x,y]; } } } // 一致しない請求先コードを特定のコードを付与して置き換える。 if ([1,y] in codesToUpdate) { [1,y] = "9999" + [1,y]; } if ([3,y] in codesToUpdate) { [3,y] = "9999" + [3,y]; } }