プロが教えるわが家の防犯対策術!

vbaの電卓の一文字消すボタンでテキストボックスの文字を1つだけ消すだけで無く、これまでにボタンを押すことによって変化した変数の状態を1つ前に戻すみたいな事をしたいのですが、どうすれば良いですか

質問者からの補足コメント

  • “1.5.8+*-560.1.2”のような変な数式にならない為に変数を設定しています、ボタンを押すごとにその変数の状態が変わることがあります。一文字消すボタンでは一連の変数変化の流れを巻き戻す働きをさせたいです。

    No.3の回答に寄せられた補足コメントです。 補足日時:2022/05/04 14:10

A 回答 (3件)

配列変数に履歴を保存すれば、実現できるのではないかと思います。

    • good
    • 2

こんにちは



Undo機能のようなことをイメージしていらっしゃるのでしょうか?

いくつ前まで戻せるようにするかにもよりますけれど、以前の状態を記録しておくようにすれば良いです。
FormControlであればキー操作でイベントが発生しますので、キー操作を行うごとにその状態を記録しておいて、「戻す」操作の時だけ、ひとつ前の状態に戻すことで実現できるでしょう。
記録するケース数が一つだけなら一つだけ前に戻せますし、複数記録しておくことで、その回数だけ元に戻るようにすることも可能でしょう。

入力状況に応じながら、計算処理も並行して行っているような場合には、そちらの処理も戻す必要があるかもしれませんが、実際にどのようなものを想定しているのか不明なので、こちらに関してはわかりかねます。
この回答への補足あり
    • good
    • 1

こんにちは。



ユーザーフォームで作った電卓になるのでしょうか?

変数の右側の文字を1つ削除で良ければ、下記の様にすれば良いかと。

変数=Left(変数,Len(変数)-1)
変数の左から、(変数の文字数 - 1) を、取り出して、変数に入れる。

この結果を、テキストボックスに入れれば良いかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています