[911] 小数点の端数処理
デヒ [2025/08/01 09:07:24]
現在アクティブなシートのみを対象に処理します。
U列が「1U6」または「1U7」の行に対して、T列の値を整数に切り捨て、S列にR列との差分を記録します。
処理完了後にメッセージボックスを表示します。
以下のようなマクロをくんだのですが、エラーがでます。
大変申し訳けありませんが、修正いただければ幸甚です。
よろしくおねがいいたします。
lastRow = Bottom;
for(y = 1; y <= lastRow; y++){
uVal = ["U", y];
// 文字列比較は == でOK
if(uVal == "1U6" || uVal == "1U7"){
tValStr = ["T", y];
// 小数点を含むかどうかを文字列で判定
if(IndexOf(tValStr, ".") >= 0 && IsNumeric(tValStr)){
tVal = ToDouble(tValStr);
tInt = Int(tVal); // 小数点以下切り捨て
["T", y] = tInt;
rValStr = ["R", y];
if(IsNumeric(rValStr)){
rVal = ToDouble(rValStr);
["S", y] = rVal - tInt;
}
}
}
}
MessageBox("アクティブシートの処理が完了しました!");
Re: [911] 小数点の端数処理
あすかぜ [2025/08/01 21:57:37]
Cassava Editor では列は列番号で表すので、「S列」「T列」「U列」ではなく「19 列目」「20 列目」「21 列目」のようになります。
整数への切り捨ては小文字の int() でできます。
次のようなマクロでどうでしょうか。
for (y = 1; y <= Bottom; y++) {
uVal = [21,y];
if (uVal == "1U6" || uVal == "1U7") {
tInt = int([20,y]);
[20,y] = tInt;
[19,y] = [18,y] - tInt;
}
}
MessageBox("アクティブシートの処理が完了しました!");
試してみてください。
Re: [911] 小数点の端数処理
デヒ [2025/08/04 08:25:31]
あすかぜ様
小数点の端数処理できました!!
早々のご回答、本当にありがとうございました。
本日より使用します。
今後とも応援してます!!