• ベストアンサー

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

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

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

何故ユーザーフォームで計算機を作る必要があるのか良く解かりませんが、、、 1は単純に 0 を代入するだけでは? Private Sub CommandButton1_Click()  TextBox1.Value = "0" End Sub 2はもっと良い方法があるかも知れませんが、 Private Sub TextBox1_Change()  If LenB(TextBox1.Value) > 13 Then    TextBox1.Value = Left(TextBox1.Value, 12)  End If End Sub 3は TextBoxの Enabled を False にすれば良いのでは? Private Sub UserForm_Initialize()  TextBox1.Enabled = False End Sub 質問の際にExcelのバージョンも書かれた方が良いでしょう。

その他の回答 (1)

noname#240783
noname#240783
回答No.1

どういった仕様になっているかわかりませんが... 1.ユーザーフォームにコマンドボタンを貼り付けて   キャプションを「クリア」にして、   コマンドボタンをダブルクリックしてできたコードに   [数字を表示するTEXTBOX名].Text = "0"   にする。 2.テキストBOXに数字(文字?)を追加する   すべてのプロシージャで現在の文字列長を   If Len(TextBox1.Text) < 12 Then...   でチェックする。 3.テキストBOXのプロパティ「Locked」をTrueにする。 以上が手がかりにならないでしょか??

関連するQ&A

  • 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で計算機作成(Excel2000)

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

  • エクセルVBAで困ってます。

    ユーザーフォームのテキストボックスで入力制限をしたいのですが、制限は桁とかではなく特定の数字です。そこでテキストボックスに入力後チェックをかけるコーディングをしてるつもりなのですがフォーカスが次のテキストボックスへ遷移してしまいます。フォーカスを自分自身へ戻せないものでしょうか。大変困っています宜しくお願いします。

  • Excel VBAでの質問です。

    ユーザーフォームでテキストボックスを用いて値を入力するときに、1桁の数字を入力したら何もしなくてもすぐに次のテキストボックスに移動して値を入力できるようにすることはできるんでしょうか。教えてください。よろしくお願いいたします。

  • VBA テキストボックスで計算

    VBAの勉強を始めたばかりで、見よう見まねで色々作っています。 ユーザーフォームのテキストボックスに、計算結果を表示したいのですが、行き詰まってしまいました。 textbox1 textbox2  .  .  textbox5 があり、textbox6に、1~5に入力された数字を足して、消費税額が出るようにしたいです。 例えば textbox1・・・100,000 textbox2・・・200,000 と入っていたら textbox6に 【消費税額 15,000円】 と表示させたいです。 textbox1~5は、1から順番に数字を入れていきますが、全てに入るとは限りません。 不足情報等がありましたら、ご指摘下さい。 ご教授の程、よろしくお願いします。

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

  • ユーザフォーム(VBA)で入力した内容をシートへコピーするには

    ユーザフォーム(VBA)でテキストボックスとボタンを作成しました。 このテキストボックスに入力した内容をボタンを押すことでシート1のA1セルにコピーしたいのです。こんな簡単な感じなのですが、 プログラムはどのようにしたらよいのでしょうか?教えてください。 それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? ※できたらでよいのですが、もう一つボタンを作成し『クリア』ボタンということで、テキストボックスに入力した内容だけをクリアさせるボタンも作ろうとおもうのですが、それはどうしたらよいのでしょうか? 困っています。教えてください。

  • エクセル VBA 日付入力?

    エクセル 2000のVBAにて簡単な 日程表を作成しています。 フォームの テキストボックス1に 10/8 を入力したら テキストボックス2には 10/15 ~ テキストボックス15には 1/21 が自動で 入力されるようにするには、どのようにすればよろしいでしょうか?

  • エクセルVBAのTextbox同士の計算

    エクセルVBAのTextbox同士の計算 フォームの中で、TextBox1とTextBox2の合計を常にTextBox3に表示する方法を教えて下さい。 TextBox1やTextBox2には、数字が入らないこともあります。 両方ともに数字が入っていない時は、0を表示させたいです。 宜しくお願いします。

  • EXCEL・VBAフォームの日付(表示形式を変更したい)

    VBA初心者です。フォームの中にテキストボックスを作成しています。規定値にあるシートのセルを表示しています。このセルは日付(西暦4桁)で入力しているのですがテキストボックスでは(西暦2桁)で表示されてしまいます。 FORMATというのを使用すればよいようなのですがどうつかえばいいのかわからないのです。 プロパティでテキストボックスのコントロールソースにそのセルを指定しています。 どのように記述すればよいでしょうか。 詳しい方教えていただけますでしょうか。 よろしくお願いいたします。