[914] 指定の文字より後ろを削除
moon [2025/09/04 19:00:06]
chatGPTを使ってマクロを作成し、「入力ボックスに入れた値以降の文字を削除」することは成功したのですが、
戻るボタンで元に戻すことができません。
chatGPTには戻すことはできないといわれたのですが、難しいでしょうか?
作成したマクロは下記です。
▼「指定の文字より後ろを削除」
// 最初に一度だけ値を入力
value = InputBox("値を入力してください。");
// 入力チェック(空欄の場合スキップ)
if (value != "") {
for (y = 1; y <= Bottom; y++) {
for (x = 1; x <= Right; x++) {
p = pos([x,y], value);
if (p > 0) {
[x,y] = left([x,y], p - 1);
}
}
}
}
Re: [914] 指定の文字より後ろを削除
あすかぜ [2025/09/04 21:43:13]
マクロで更新したデータは「元に戻す」で戻せるはずなのですが、戻らないでしょうか?
ツールバーの「元に戻す」ボタン、 [編集(E)]-[元に戻す(U)] メニュー、もしくは Ctrl+Z キーボードショートカットで元に戻せるようになっているつもりです。
Cassava Editor は最新版(2.7.0)をお使いでしょうか?
マクロ以外で編集したデータは「元に戻す」で戻せるでしょうか?
すみませんが、もし問題が発生する条件などでお気づきの点がありましたら教えていただけるとありがたいです。
よろしくお願いします。
Re: [914] 指定の文字より後ろを削除
moon [2025/09/05 12:13:25]
ご確認いただきありがとうございます。
最新バージョン出なかったようで、改めて最新バージョンで試したところツールバーの「元に戻す」ボタンで戻ることができました。
ありがとうございます。
戻ることはできなのですが、下記のマクロだと選択列以外の値も全て削除されいてしまいます。
選択列のみに「指定の文字より後ろを削除」の処理をかけることは可能でしょうか。
▼マクロ
// 最初に一度だけ値を入力
value = InputBox("値を入力してください。");
// 入力チェック(空欄の場合スキップ)
if (value != "") {
for (y = 1; y <= Bottom; y++) {
for (x = 1; x <= Right; x++) {
p = pos([x,y], value);
if (p > 0) {
[x,y] = left([x,y], p - 1);
}
}
}
}
Re: [914] 指定の文字より後ろを削除
あすかぜ [2025/09/05 20:49:53]
最新バージョンでは「元に戻す」が動作したようでよかったです。
選択列のみを処理したい場合には、次のように x の範囲を SelLeft から SelRight までとしてください。
// 最初に一度だけ値を入力
value = InputBox("値を入力してください。");
// 入力チェック(空欄の場合スキップ)
if (value != "") {
for (y = 1; y <= Bottom; y++) {
for (x = SelLeft; x <= SelRight; x++) {
p = pos([x,y], value);
if (p > 0) {
[x,y] = left([x,y], p - 1);
}
}
}
}
Re: [914] 指定の文字より後ろを削除
moon [2025/09/08 11:12:47]
ご回答ありがとうございます!
ご提示いただいたマクロで、無事に対象列のみに処理をかけることができました!
業務でcassavaを毎日利用しており、マクロジェネレーター等も活用させていただいております。
今ではなくてはならない存在となっており、あすかぜさんには大変感謝しております。
感謝をお伝えしたく、この場で失礼いたします。
いつもありがとうございます。