• ベストアンサー

ExcelVBAで計算機作成(Excel2000)

今、課題でExcelVBAで簡易計算機を作成しているのですが、またもや壁にぶつかってしまいました。 計算機の機能に「Back」ボタンを追加したいのですが、どのような観点でコーディングしたら良いかわからなくなってしまい投稿させて頂きました。どなたか教えて下さい。 (機能)表示させてある数字を「Back」ボタンを押下する    事で、一の位から押下する度に消去していくとい    う機能です。数字がなくなったら”0”を表示する    というものです。 どうか宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 小さい位から削除するということで、小数も同様ですね。 基本的には、現在の表示内容を文字列として、左から文字数-1を切り出せばいいと思います。 Left(文字列, Len(文字列) - 1) ただし、 123.5 → 123. → 123 123.05 → 123.0 → 123 のように、余分な表示を取る必要があります。 これは、Left関数の結果をVal関数に通してやればいいでしょう。 結局、 Val(Left(文字列, Len(文字列) - 1)) という感じでしょうか。 あ、あと数字がなくなった場合の処理をIfで分岐させる必要もありますね。 これは、削除前の文字数が1なら、強制的に「0」にすればいいと思います。

その他の回答 (1)

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

fe2-dicapoo さんが作成されたソースが公開されていませんので、詳しくは説明出来ませんが ●現在表示中の数字列を文字列として 文字列操作で最後に入力した文字を削除する つまり Moji=Left(Moji,Len(Moji)-1)として 新しいMoji を作ればいいのではないでしょうか。 もちろんLen(Moji)=1の場合は分岐で操作します。 ●それとも各桁を独立したセル(あるいは変数)にしているのでしたら もう少し複雑ですが.... その部分のコードを公開していただければ 適切に答えられます。

fe2-dicapoo
質問者

お礼

お忙しい中ご返事有難うございました。参考させて頂き「Back」ボタンを作成する事が出来ました。本当に有難うございます。

関連するQ&A

  • エクセルVBAで計算機を作成について

    エクセルVBAのユーザーフォームで計算機を作成しております。 以下の点で参考書で調べたのですが壁にぶつかっております。 1、クリアボタンを作成して押下する事によって表示さ れている数字を「0」にしたいのですが出来ません。 2、テキストBOXに表示される数字を12桁まで表示にし たいのですがMAXLENGTHを12にしても制限をかける事  が出来ません。 3、テキストBOXに数字や計算結果を表示してるのです  が、手動入力を出来ない様にしたいのですが出来 ません。 非常にせっぱ詰まっていて言葉足らずかもしれませんがどなたか教えてください。

  • ExcelVBAで計算機(エクセル2000)

    エクセルVBAで計算機を作成してます。先程も質問させて頂いたのですが、また新たな壁にぶつかってしまいました。 クリアボタンについて、"0"を表示させる事はできたのですが、クリアボタンを押下した後、再度計算する際、直前の演算結果がメモリ上残っていて演算結果を 初期化したいのですが、上手くできません。 メモリ上の値を初期化する方法どうか教えてください。上手く説明できているかわかりませんが、お願いします。 Private Sub Clear_Click() If blnBtC = False Then        ’演算ボタンが押下される前の値 a = Val(Trim(TextBox1.Value))  TextBox1.Text = "0" Else       ’演算ボタンが押下された後の値       b = Val(Trim(TextBox1.Value)) TextBox1.Value = a TextBox1.Text = "0" End If TextBox1.Text = "0" blnBtC = True End Sub

  • ExcelVBAを用いてツールを作成しております。

    ExcelVBAを用いてツールを作成しております。 内容としては、以下の通りです。 (1)Excelファイルのシート名をリストボックスに表示させる。 ⇒実装済み (2)リストボックスからシート名を選択(複数選択可)し、「OK」ボタンを押下すると処理を実施する。 チェックとして、リストボックスから何も選択せず、「OK」ボタンを押下したときに エラーメッセージを表示させるようにしたいと思いますが、調べてもわからなかったので、 こちらに質問させて頂きました。 どなたかお分かりの方ご教授ください。よろしくお願い致します。

  • 計算機の使い方で

    たとえば、2の15乗は「y^x」のボタンで、一発で32736と出ますよね? では、この2という数字を計算で出したいときと、15という数字を計算したいときは、どのボタンでどうやって押せばいいんですか? 計算機Ver3.1です。

    • ベストアンサー
    • Mac
  • 電話と計算機

     計算機のボタンの数字の並び方って、どうしてああなんですかね?あと、電話も??わかる方、教えて下さい。

  • 計算機について

    計算機の上のほうに付いている、「A 0 2 3 F」というボタンと申しますか、レバーと申しますか、それは何のための機能なのでしょうか。 教えてください。

  • 【Excel VBA】Sheet1上のテキストボックスの値をクリアしたい

    Office2003を使用しています。 Excelで、 Sheet1に作成したテキストボックス『BOX_A』 Sheet1に作成したコマンドボタン『PUSH_A』があります。 PUSH_Aを押下時、BOX_Aの値をクリア(消去)したいのですが、うまく行きません。 (BOX_Aに連結しているセルをクリアしても、テキストボックスには数字が残ります) どのようにコーディングしたらよろしいでしょうか?

  • 計算機アプリで

    単純な計算機APPでいいんですが、CASIO計算機ライクなAPPがありましたら教えてください 以下の条件を満たすものです。 「00」キーがある。 「÷」や「×」ボタンの二度押し等で定数設定できる。 三桁ごとの「,」表示がある。 10桁までの表示ができる。

  • ExcelVBAでのメニューバーのコントロール

    ExcelVBAでシート編集時、元に戻す・やり直し機能を使えなくするにはどういうコーディングをすればよいのでしょうか? 現在、シート表示の初期処理で以下のようなコーディングを入れていますが、機能が使えてしまうようです。 Dim Menuobj As Object Set Menuobj = Application.CommandBars("Worksheet Menu Bar") Menuobj.Controls.Item(2).Controls.Item(1).Enabled = True Menuobj.Controls.Item(2).Controls.Item(2).Enabled = True どなたか教えてください! よろしくお願いいたします。

  • ExcelVBAで複数Formの同時処理

    ・・・って可能なのでしょうか(^^;)? 例えば、1~10の数字を数える機能を持ったフォームがあります。 メイン画面(UserForm1)で「フォーム精製」というボタンを押すと、↑の機能を持った別フォーム(UserForm2)が精製されます。(ボタンを押した数だけ精製される。) UserForm2の「スタート」ボタンをクリックすると、1~10のカウントが始まります。(同フォーム上のテキストボックスに数字が表示される。1...2...3...)この時、10になる前に(例えば5秒経った段階で)別のUserForm2のスタートボタンを押すと、初めのUserForm2は5で止まったまま、2つ目のUserForm2のカウントが1~始まります。 ここで、初めのUserForm2の処理を進めつつ、2つ目のUserForm2のカウントも行うという事は、ExcelVBAの能力で可能なのでしょうか? ↑実験してみたところ、いくらUserForm2を精製しても、実際に処理を行うのはアクティブになっているウィンドウの一つのみになってしまいます(/_;)。どなたかご教授ください。