• 締切済み

エクセルのフォームでの加算方法

エクセルのVBAの初心者です。ユーザーフォームでテキストボックスを作成し、 その中で、加算(電卓のように)する方法はありますか? うまく通じたかどうか不安ですが、よろしくお願いします。

  • kamo
  • お礼率66% (2/3)

みんなの回答

  • youngrat
  • ベストアンサー率100% (1/1)
回答No.1

ユーザーフォームで電卓のような機能を作のは,VBAにかなり熟練しないと難しいと思います。 単純な加算であればすぐに作れますが,ここでの質問内容はおそらく違ったものを求めれれているのではないでしょうか。 (もし単純な加算方法を知りたいのでしたら,再度回答します) ワークシートの計算機能を使用した簡単なサンプルを紹介します。参考になれば良いのですが。 テキストボックスに計算式を入力しコマンドボタンを押すと,計算結果が表示されるものです。 1.ユーザーフォームに TextBox1 と CommandButton1 を配置します。CommandButton1 の Default プロパティを True にしておくと Enter キーで計算結果が表示できて便利です。 2.以下のコードを入力します。 Private Sub CommandButton1_Click() On Error Resume Next Sheet1.Range("A1") = "=" & TextBox1.Text Sheet1.Range("A1").Calculate TextBox1.Text = Sheet1.Range("A1").Value TextBox1.SetFocus End Sub 3.ユーザーフォームを実行します。 ワークシート(Sheet1)のセル(A1)を計算に使用しているので,注意してください。

関連するQ&A

  • Excel ユーザーフォームからの転記

    Excel ユーザーフォームからの転記 はじめまして、ご教授願います。 Exceiのユーザーフォーム内のテキストボックスのデータをシートに転記したいのですが、 教えてください。 テキストボックス内の改行を含んだデータを改行で区切って、別々のセル(縦に順に)に転記 したいのですが、方法がわかりません。 VBAでどのように書けばよろしいのでしょうか。 ご教授よろしくお願いします。

  • エクセルVBA 時刻シリアルデータの変換に関して

    エクセルVBA初心者です。 ユーザーフォーム内に作成したテキストボックスの表示についてお伺いしたいのですが、 例えばA1セルに、”7:00”と書き込みますと、そのまま”7:00”と表示されますが、 ユーザーフォームとその中にテキストボックスを作成し、以下のようなコードを書いて 立ち上げると、テキストボックス内の表示は”7:00”ではなくシリアル値の”0.2916666・・・”と 表示されてしまいます。 これをなんとか時刻で表示させる方法はありませんでしょうか? Private Sub UserForm_Initialize() TextBox1.Value = Cells(1, 1) End Sub ご教示いただけたら幸いです。

  • エクセルのフォームでのフォーカス

    エクセルVBAでのユーザーフォームの テキストBOX間のフォーカスはenterで移動可能かのですが、間にComboBoxがあるとComboBoxが飛ばされますが そこにもフォーカス移動って可能でしょうか?

  • ユーザーフォームに入力したデータを保持する方法

    VBA初心者です。いろいろ調べて徐々に進められていますが、、 こちらもなかなか見つからなかったので質問させていただきます。 現在、ユーザーフォームにテキストボックスをいくつか配置し、 さまざまな計算などをさせて、最終的にエクセルシートに反映させる。 といったことが出来るようにプログラムをしています。 ユーザーフォームのテキストボックスに一度入力したものを、 エクセルシートを閉じるまで残すことはできるでしょうか? 一度、×ボタンで閉じてしまうと、次に呼び出したときには初期の状態になってしまいます。 ユーザーフォームに入力し、エクセルシートで確認、 その後 再度ユーザーフォーム呼び出して修正する といった作業をするために、一度入力したものが消えないようにしたいです。 よろしくお願いいたします。

  • excel VBA フォームを使って

    初歩的な質問だと思いますが、教えていただけますでしょうか。 excelのVBAを使って、ユーザフォームを作ります。 そこにカレンダーコントロールでいわゆる「カレンダー」を作成し、 その下にテキストボックス(ちょっと大きめ)を作ります。 カレンダーをクリックし、テキストボックスにスケジュールが表示されるというものを作りたいです。 現在ワークシートには、scheduleというものだけを作成し、そこには日付とスケジュールを書き込んでいる状況です。 スケジュールは1行のみとは限りません。複数行のほうが多いです。 お忙しいところ申し訳ありませんが、よろしくお願いします。

  • エクセルのユーザーフォームの日付を和暦で表示したい

    いつもお世話になります。 エクセルのユーザーフォーム作成に初めて挑戦しております。 ワークシートに日付の元データがあり、ユーザフォームにテキストボックスを配置しその日付データを表示させています。(例:2006/8/3) やりたいことは、そのユーザーフォームにもうひとつ別のテキストボックスを作成し上記の日付データを和暦で自動的に表示させたいのです。(例:上記のテキストボックスが2006/8/3の場合、こちらのテキストボックスはH18.8.3と表示) 初心者ですが、よろしくお願いします。

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォームについて教えてください。 ユーザーフォームにてメニュー画面を作成しました。 ユーザーはメニューからの操作だけでエクセルシートを作成できるようなマクロをつくりました。 ユーザーフォームのコマンドボタンでEXCELを終了させることはできますか? VBAの記述方法も教えてください。

  • VBAユーザーフォームで

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

  • EXCEL VBA ユーザーフォームの大きさについて

    EXCEL VBAでユーザーフォームの大きさが表示画面より 大きくなったため、下の表示されない部分のテキスト ボックス等に入力出来ません。対処法はありますか。

  • VBA ユーザーフォームを速く開く方法について

    VBA ユーザーフォームを速く開く方法について 現在Excel2000を使用しています。 VBAにてユーザーフォーム1と2を作成して、ユーザーフォーム1のコマンドボタンを押すと userform2.showが実行されてユーザーフォーム2が開きますが、フォーム2にはテキスト ボックスなどが約400個程設置してあり、そのせいかフォーム2が開くのに約8~10秒程かかり ます。 そこでそのフォームを速く開きたいのですが、(1秒~2秒程で)どうしたら速く開くでしょうか? Application.DisplayFullScreen = Falseなどを使用しても余り効果がありません。 パソコン自体の処理速度もあると思いますが、できるだけ速くしたいです。 よろしくお願いします。

専門家に質問してみよう