VBを使ってプログラミングを作りたいのですが、コマンドボタンを押したら、ラベルに書かれた文字列の右端から一文字消していくような機能をつけたいのですが、どのように作ればよいのか教えてください。たとえば、
「0000」を「000 」
          ↑
          ラベルに書かれた文字列をコマンドボタンをおしてここの文字を消したい。

ちょっとわかりづらいかもしれませんが、よろしくお願いします。

あと、もうひとつあります。2つ以上のフォームで同時に表示させて、なおかつ化さないようにきっちりと配置も決めたいのですが。どの解像度で表示しても同じ位置で表示させたいのですが。

A 回答 (2件)

こんにちは。

maruru01です。
一つ目の質問は、コマンドボタンのクリックイベントに、

If Text1.Text <> "" Then
  Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End If

二つ目の質問は意味がよくわかりません。
では。
    • good
    • 2
この回答へのお礼

ありがとうございます。助かりました。また機会があったらよろしくお願いします。

お礼日時:2002/02/19 09:24

>なおかつ化さないように


動かさないようにってことですか?
VBはウィンドウサイズが変わったときのイベントはありますが、ウィンドウが移動したときのイベントはないので、動かないようにするのはVBの機能だけではムリですね。

どのようなアプリケーションを作ろうとしているのかは知りませんが、使う側にとっては、動かすことのできないウィンドウなんて、うざったいに決まってます。

・・・その下のデスクトップには起動したいアイコンがあるのに、このウィンドウがじゃまだ!

配布を考えないんだったらいいですけど。
どのような場合も想定するのが、製品基準です。
デスクトップをランチャー代わりにしている人はたくさんいます。
製品でないフリーソフトなどでも、製品のように近づけることが人気を集めることにもなります。

ところでフォームを2つ表示させるのは簡単です。

Form1のForm_Activateイベントに

Form2.Show

とか書いておけばいいですよ。
または、呼び出し側で、

Form1.Show
Form2.Show

と連続で書いてしまえば。
    • good
    • 0
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2002/02/19 09:26

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字列の後ろから必要分だけ削除したい。

例1 Dim str As String = "あいうえお1234"

文字列の中の1234だけ削除したい場合は、
str = str.Remove(5,4)
という風に、5文字目の後から4文字削除にすればよいのですが、

例の"あいうえお"の部分の長さが毎回処理する度に異なる場合は、
文字列の頭から何文字目という指定ができないので、”後ろから4文字を削除したい”となります。その場合は、どのようなプロパティを使えばいいのでしょうか。

.NET環境です。

Aベストアンサー

Length(str)で文字数を取得できますので、後ろから4文字目は先頭から何文字目かは計算できると思いますが、どうでしょうか?

QVB6で電卓を作っているのですが誰か教えてください

コマンドボタンからの入力は出来ているのですが、キーボードからの入力が出来ません・・・何か良い方法はないでしょうか?
例えば、キーボードで演算子の+を押すとコマンドボタンの+を押したことと同じになればと考えています。

Aベストアンサー

一度下記のようなルーチンを作った事があります。

常に Command1(n) で押された数字は Text1 に表示して FOCUS は Text1 に戻します。
Command2(n) は 四則演算ボタンです

Private Sub Text1_KeyPress(KeyAscii As Integer)
 Select Case KeyAscii
  Case 48 To 57    ' 数字キー
   Call Command1_Click(KeyAscii - 48)
  Case 61      ' = キー
   Call Command2_Click(0)
  Case 43     ' + キー
   Call Command2_Click(1)
  Case 45      ' - キー
   Call Command2_Click(2)
  Case 42     ' * キー
   Call Command2_Click(3)
  Case 47     '/ キー
   Call Command2_Click(4)
  Case 8     ' BackSpace
   'カーソル位置から一文字前の数字を削除する処理
  Case 13     'Enter キー
   Call Command3_Click
 End Select

 KeyAscii = 0

End Sub

カーソルの位置が TextBox に表示されますので数字の挿入処理も可能です

一度下記のようなルーチンを作った事があります。

常に Command1(n) で押された数字は Text1 に表示して FOCUS は Text1 に戻します。
Command2(n) は 四則演算ボタンです

Private Sub Text1_KeyPress(KeyAscii As Integer)
 Select Case KeyAscii
  Case 48 To 57    ' 数字キー
   Call Command1_Click(KeyAscii - 48)
  Case 61      ' = キー
   Call Command2_Click(0)
  Case 43     ' + キー
   Call Command2_Click(1)
  Case 45      ' - キー
 ...続きを読む

Q電卓の作成 VB

こんにちは。課題で、関数電卓作る必要があり、
まずは、基礎となる、Windowsのアクセサリーの電卓を
作らなければいけないのですが、私はVBの基礎が少しできるくらいです。作成期限は2週間です。
これから、死に物狂いでやるしかないと思うのですが、
何をどのように、すればよいかまったく見当がつきません。

この先が不安でしょうがないのですが、
電卓を作成するために、まず必要なものは参考書でしょうか?
入門書はもっているのですが、電卓についてはいっさいふれて
いないため、購入する必要があるのかと思うのですが、
たとえ、購入した本を丸写ししても自分のために
ならないと思うのですが、そうなるのを
防ぐためにはどうすればよいでしょうか?

Aベストアンサー

>電卓を作成するために、まず必要なものは参考書でしょうか?

見本になる関数電卓でしょう。Windows標準の電卓の関数モードは市販の関数電卓の機能が一部省略されていたり表記が違ったりします。まずは、関数電卓を実際に使って必要な機能をリストアップすることが重要です。

>購入した本を丸写ししても自分のためにならないと思うのですが、そうなるのを防ぐためにはどうすればよいでしょうか?

自分で試行錯誤するしかありません。最近はネット上にVBのリファレンスとして使える便利なサイトがたくさんあるので入門書とネットの情報からプログラムを設計しましょう。関数電卓が出来る計算機能は全てVBの関数で用意されているので後はそれを組み合わせるだけです。

http://hanatyan.sakura.ne.jp/

上記のサイトは自分もよく使っていますがVBの簡易リファレンスや色々な使い方のサンプルが載っているので便利です。電卓の作り方は載っていませんが各種関数と使い方は載っているので自分でくみ上げるためには役に立つでしょう。もし、行き詰まったら「VB 電卓」などで検索すれば以外とサンプルは見つかります。

>電卓を作成するために、まず必要なものは参考書でしょうか?

見本になる関数電卓でしょう。Windows標準の電卓の関数モードは市販の関数電卓の機能が一部省略されていたり表記が違ったりします。まずは、関数電卓を実際に使って必要な機能をリストアップすることが重要です。

>購入した本を丸写ししても自分のためにならないと思うのですが、そうなるのを防ぐためにはどうすればよいでしょうか?

自分で試行錯誤するしかありません。最近はネット上にVBのリファレンスとして使える便利なサイトがたくさん...続きを読む

Q電卓の小数点

今晩は。
先日、授業でVisual Studio(C#)を使い、
電卓を製作したのですが、
実行して0が表示されている状態で
(普通の電卓の場合電源を入れた直後の状態)
小数点のキー"."を押すと、
最初に0のキーを押さなくても
"0.~"(例 "0.2"など)と表示されますよね?
この動作は一体どういった仕組みになっているんでしょうか?
ご存知の方居られましたらお願いします。

Aベストアンサー

『1.2』と入力する場合、
”1”、”.”、”2”と入力しますよね。
『0.2』と入力する場合、
”0”、”.”、”2”と入力しますよね。
つまり、”.”を押した時、整数部はすでに画面
に入力されていますよね。
ということは、いきなり”.”を押した場合、
すでに、初期状態の”0”が表示されているの
で、引き続き、”.”を表示すればいいのです。

つまり”.”を押した時、
表示エリア=表示エリア+”.”でよいわけです。

QVBAで電卓を作成する

WinXP、Excel2003を用いて、10桁の電卓を作ろうと思っていますが、エラーが多発しているので、修正したいと思っています。

〔作成するに当たっての条件〕
あとに補足で増えるかもしれません^^;
・最初の時点ではテキストボックスに0を表示しておく。
・計算結果が10桁で収まりきらない場合はエラーボックスを表示し、直前の数値を入れる状態に戻す。EX)11÷3
・=ボタンを押して計算結果を出すためには、「数字」「演算」「数字」の順番で3回以上押さないといけない。だから、「+3=」と押してもエラーを表示し、計算しない。
・最初の状態で0を何回押しても0は1回しか出ない。
・演算キーを1度でも使ったら=ボタンを押すまではテキストボックスに計算結果ではなく、直前に入力した数字を表示する。
・=ボタンを押し、計算結果が出た後に、再度反復して=ボタンを押しても連続して結果が出ることはしない。(一般の電卓でKが表示されている状態のことを指す)その一方で、計算結果が出た後に「演算」「数値」「=」を押した場合は、新しい計算結果がテキストボックスに表示される。
・計算過程では入力したデータは文字列として認識するが、=を押し、計算する時点において数値として認識するように変換する。

そこで、現在までに作成したのは以下の通りです。

Dim miku1As String
Dim miku2 As Double
Dim frg As String '1→+、2→-、3→×、4→÷

Private Sub ボタン_イコール_Click()
On Error GoTo myError
Select Case frg
Case 1
miku2 = miku2 + miku1
Case 2
miku2 = miku2 - miku1
Case 3
miku2 = miku2 * miku1
Case 4
miku2 = miku2 / miku1
End Select
TextBox1 = miku2
myError: MsgBox "エラーが発生しました。"
miku1 = Null
End Sub

Private Sub ボタン_加算_Click()
On Error GoTo myError
If miku2 = 0 Then
miku2 = miku1
Else
Select Case frg
Case 1
miku2 = miku2 + miku1
Case 2
miku2 = miku2 - miku1
Case 3
miku2 = miku2 * miku1
Case 4
miku2 = miku2 / miku1
End Select
End If
miku1 = Null
myError: MsgBox "エラーが発生しました。"
frg = 1

End Sub

~中略~

Private Sub ボタン0_Click()

miku1 = miku1 & 0
TextBox1 = miku1
End Sub

~中略~

Private Sub ボタンC_Click()
miku1 = Null
miku2 = 0
TextBox1 = Null
End Sub

お手数をおかけしますが、ご教授願います。

WinXP、Excel2003を用いて、10桁の電卓を作ろうと思っていますが、エラーが多発しているので、修正したいと思っています。

〔作成するに当たっての条件〕
あとに補足で増えるかもしれません^^;
・最初の時点ではテキストボックスに0を表示しておく。
・計算結果が10桁で収まりきらない場合はエラーボックスを表示し、直前の数値を入れる状態に戻す。EX)11÷3
・=ボタンを押して計算結果を出すためには、「数字」「演算」「数字」の順番で3回以上押さないといけない。だから、「+3=」と押してもエラーを...続きを読む

Aベストアンサー

計算する場合は精度を合わせたほうがよいと思います。
が、Double型も2進計算となるため小数同士だと誤差が生じるみたいです。
計算はVariant型がよいみたいです。
下記等参考にしてください。

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_p03.htm

Qエクセルの画面にユーザーフォームでテンキーを表示させたい

いつもお世話になっております。

エクセルの画面に画像のようなユーザーフォームを作ってテンキーのように、セルに値を入力することは出来るのでしょうか?

もし出来るようでしたら、ボタンの割り当て方や、作成方法を教えて頂きたいです。

1)ユーザーフォームを使う理由は使わない時には非表示にしたいからです。
他の方法でも表示、非表示の切り替えが聞くのならユーザーフォームでなくても問題ありません

2)工事現場でつかいます。作業者が手袋をしたままタブレット端末で入力するので、大きいボタンで必要なキーだけを表示して、使わないときは非表示にできればと思っております。

すいませんが詳しい方、説明の上手な方、画像のようなことが可能でしたら作成方法を教えて下さい。よろしくお願いします。

※まだVBA初心者で簡単なユーザーフォームを作れる程度です。教えて頂いてもわからないかもしれませんが、今後のヒントにでもなればそれでいいです。親切な方、説明の上手な方、よろしくお願いします。

Aベストアンサー

今はどうかわかりませんが、以前に同様にタッチパネル操作で機能するシステム作ったときは
適当なのが見つからず根気よく作りました
タッチしたボタンの内容をTextBox1に表示するとして

Private Sub CommandButton1_Click()
TextBox1.Value = TextBox1.Value & "1"
End Sub

Private Sub CommandButton1_Click()
TextBox1.Value = TextBox1.Value & "2"
End Sub

Private Sub CommandButton2_Click()
TextBox1.Value = TextBox1.Value & "3"
End Sub

Private Sub CommandButton3_Click()
TextBox1.Value = TextBox1.Value & "3"
End Sub

Private Sub CommandButton4_Click()
TextBox1.Value = TextBox1.Value & "4"
End Sub
以下省略
具合にします。
ボタンには、間違った場合を考慮して
クリアボタン を配置します。
Private Sub CommandButton15_Click()
TextBox1.Value = ""
End Sub
とか言った具合です。

今はどうかわかりませんが、以前に同様にタッチパネル操作で機能するシステム作ったときは
適当なのが見つからず根気よく作りました
タッチしたボタンの内容をTextBox1に表示するとして

Private Sub CommandButton1_Click()
TextBox1.Value = TextBox1.Value & "1"
End Sub

Private Sub CommandButton1_Click()
TextBox1.Value = TextBox1.Value & "2"
End Sub

Private Sub CommandButton2_Click()
TextBox1.Value = TextBox1.Value & "3"
End Sub

Private Sub CommandButton3_Click()
TextBox1.Value = TextB...続きを読む

QTextBoxでEnterキーを押すと、にあるButtonを押したのと同じ効果を出す方法

VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。

環境はVisualBasic .net 2003です。

フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtTest.KeyDown
If (e.KeyCode = Keys.Enter) Then
'★★★ここでどういうコードを書いてよいかわかりません。
End If
End Sub
----------------------------
ボタンを押したときのイベントハンドラ
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
    ボタンを押したら、このイベントハンドラを呼び出したい。
    もしくは、間接的に呼び出したい。
-------
どなたか、やり方をご存知の方がいらっしゃいましたら、よろしくお願いします。

VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。

環境はVisualBasic .net 2003です。

フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal ...続きを読む

Aベストアンサー

>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。

btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744


また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。



どうしてもCと全く同様に、イベントを起こすのであれば、Cと同じ手続きでAPIで起こせばよいと思います。
http://okwave.jp/kotaeru.php3?q=199357


Public Class Form1
  Inherits System.Windows.Forms.Form

  Private Declare Auto Function SendMessage Lib "user32" ( _
    ByVal hWnd As Integer, _
    ByVal wMsg As Integer, _
    ByVal wParam As Integer, _
    ByVal lParam As Integer _
  ) As Integer
  Private Declare Auto Function GetDlgCtrlID Lib "user32" ( _
    ByVal hWnd As Integer _
  ) As Integer

  Private Const WM_COMMAND As Integer = &H111
  Private Const BN_CLICKED As Integer = &H0

#Region " Windows フォーム デザイナで生成されたコード "
#End Region

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    btnTest.PerformClick()
    SendMessage( _
      Me.Handle.ToInt32, _
      WM_COMMAND, _
      BN_CLICKED * GetDlgCtrlID(btnTest.Handle.ToInt32) * &H10000, _
      btnTest.Handle.ToInt32 _
    )
  End Sub
End Class

>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。

btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744


また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。



どうしてもCと全く同様に、イベントを起こすのであれば、...続きを読む

QVBでの簡易電卓の作成(減算方法)で困っています。

技術評論社のVisual Basic5.0入門編という、
参考書を見ながら、作成したのですが。
どうも、参考書のコードが間違っているみたいでした
良かったら、お知恵をお貸しください。
とりあえず、足し算と引き算処理の作成です。

※使用コントロール
0から9までのコマンドボタンをコントロール配列と、
足し算、引き算、クリアーのコマンドボタンが3つ、
後、数字入力用のテキストボックスが1つです。


コード
****************************************************

Option Explicit
Dim EnterFlag As Boolean 'プラス、マイナスキーが押された直後ならTrueを示すフラグ。
Dim S As Long


Private Sub Command3_Click() 'クリアーボタン
Text1.Text = ""
S = 0
End Sub

Private Sub Plas_Click() '加算処理
S = S + Val(Text1.Text)
Text1.Text = S
EnterFlag = True
End Sub

Private Sub Mainas_Click() '減算処理
S = S - Val(Text1.Text)
Text1.Text = S
EnterFlag = True
End Sub

Private Sub Form_Load()
Text1.Text = ""
S = 0
End Sub

Private Sub key_Click(Index As Integer)
If EnterFlag Then
Text1.Text = ""
EnterFlag = False
End If

If Len(Text1.Text) < 10 Then '10桁以内のとき
Text1.Text = Text1.Text & Index
End If

End Sub

*********************************************************

とこんな感じです。
加算処理は、上手くできますが。
減算処理は、明らかにコードが間違っていると思いました。
初めて(1回目)マイナスボタンを押した時に、変数Sには、必ずマイナス
が入ってしまう状態です。

上手く減算処理出来る方法のアドバイスよろしくお願いします。

技術評論社のVisual Basic5.0入門編という、
参考書を見ながら、作成したのですが。
どうも、参考書のコードが間違っているみたいでした
良かったら、お知恵をお貸しください。
とりあえず、足し算と引き算処理の作成です。

※使用コントロール
0から9までのコマンドボタンをコントロール配列と、
足し算、引き算、クリアーのコマンドボタンが3つ、
後、数字入力用のテキストボックスが1つです。


コード
****************************************************

Option Explicit
Dim Ente...続きを読む

Aベストアンサー

これは、業務用でよく使われる電卓と同じ仕様ですね。
初めてマイナスを押したときに結果がマイナスになるのは正しい動作です。
どういう理由だったか忘れましたが、この方が効率が良い場合があるので
先に数値、その次に演算という入力順序になっているそうです。

それはさておき、普通の電卓と同じ処理をしたいのであれば、
一つ前に押された演算キーを記憶しておいて、新しい演算キーが押されたときに
一つ前の演算を処理する、というような流れになるのではないかと思います。
そうすると、Plas_Click、Mainas_Clickも変更が必要で、演算自体は
一つ前の演算処理、演算子を新しく自分のものに更新する。

Private Sub Plas_Click() '加算処理
 select case <演算子>
  case 1
   S = S + Val(Text1.Text)
   Text1.Text = S
  case 2
   S = S - Val(Text1.Text)
   Text1.Text = S
end select
 EnterFlag = True
 <演算子>=1
End Sub

といった感じでしょうか?
とりあえず、ぱっと思いついただけなので他にも良い方法があるかもしれません。
がんばってください。

これは、業務用でよく使われる電卓と同じ仕様ですね。
初めてマイナスを押したときに結果がマイナスになるのは正しい動作です。
どういう理由だったか忘れましたが、この方が効率が良い場合があるので
先に数値、その次に演算という入力順序になっているそうです。

それはさておき、普通の電卓と同じ処理をしたいのであれば、
一つ前に押された演算キーを記憶しておいて、新しい演算キーが押されたときに
一つ前の演算を処理する、というような流れになるのではないかと思います。
そうすると、Plas_Clic...続きを読む

QTextBoxに半角数字のみの入力しかできないようにしたい

タイトルどおりです。
フォームに貼り付けた、TextBoxに、半角数字のみしか入力できないようにしたいです。
000000~999999までのコード(数字)を入力させるようにするわけですが、そのままだと半角英数も全角も入力できてしまいます。

GrapeCity社製のカスタムコントロール「InputMan」の“Number”を用いると簡単なのですが、これだとカーソルがボックス内の右端にきて、一の位から入力が始まってしまいます。
数字は、ボックス内の左側から入力されていくようにしたいのですが、“Number”だとなんか出来なさそう・・・?
(“Number”で左側から入力できるならそれがいいのですが)

そこで、TextBoxを使うことにしたのですが、TextBoxだと、半角数字のみしか入力できないような制限がかけるのかが、わかりません。

もし、お分かりの方がいらっしゃいましたら、ご教授下さいませ。

Aベストアンサー

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ' Ctrl + V
Case &H18 ' Ctrl + X
Case &H1A ' Ctrl + Z
Case Else
KeyAscii = 0
End Select
End Sub

で、いかがでしょうか。

コピペですみません。
VB6だと、

Private Sub TextBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyBack, Asc("0") To Asc("9"), Asc("-"), Asc(".")
Case &H1 ' Ctrl + A
TextBox.SelStart = 0
TextBox.SelLength = Len(TextBox.Text)
Case &H3 ' Ctrl + C
Case &H16 ...続きを読む

QVB 電卓 数字キーを押して ラベルに出力

VB.NET 2005では、
VB.NETにはコントロール配列は存在しないらしいので、それに類似した処理をどう行うかを教えていただきたいのです。
電卓の数字0~9までのボタンをクリックした時
どうすればよいのでしょうか?
作成中のコードです。
Option Explicit On
Public Class frmMain
Dim dData1 As Double, dData2 As Double '数値記憶用
Dim SuuFlag As Boolean '数字キー用
Dim EFlag As Boolean '演算キー用
Dim Enzan As Integer '演算種類記憶用(+:0,-:1,*:2,/:3,4:=)
Const NONE = -1
Const TASU = 0
Const HIKU = 1
Const KAKERU = 2
Const WARU = 3
Const EQU = 4



Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dData1 = 0 '数値記憶用変数の初期化
dData2 = 0
Enzan = NONE '演算種類初期値
SuuFlag = False
EFlag = False

End Sub

Private Sub cmd_Click(ByVal Index As Integer)
'0が1文字だけ、または、演算キーを押した後の時
If txtDisplay.Text = "0" Or SuuFlag = False Then
txtDisplay.Text = "" '0を消す
dData2 = 0
End If
If Index <= 9 Then '0 - 9 数字
txtDisplay.Text = txtDisplay.Text & Trim(Str(Index))
ElseIf Index = 10 Then '.小数点
If txtDisplay.Text = "" Then '最初が小数点
txtDisplay.Text = "0."
ElseIf InStr(txtDisplay.Text, ".") = 0 Then '小数点無し
txtDisplay.Text = txtDisplay.Text & "."
End If
End If
SuuFlag = True
End Sub

End Class


数字のオブジェクト名は
1=cmd1
2=cmd2
3=cmd3
0=cmd0 ~といった感じです。
この先、数字を表示させるには
いったいどうすればよいのでしょうか。
大変申し訳ないのですが、回答お願いいたします。

VB.NET 2005では、
VB.NETにはコントロール配列は存在しないらしいので、それに類似した処理をどう行うかを教えていただきたいのです。
電卓の数字0~9までのボタンをクリックした時
どうすればよいのでしょうか?
作成中のコードです。
Option Explicit On
Public Class frmMain
Dim dData1 As Double, dData2 As Double '数値記憶用
Dim SuuFlag As Boolean '数字キー用
Dim EFlag As Boolean '演算キー用
Dim Enzan As Integer '演算種類記憶用(+:0,-:1,*:2,/:3,4:...続きを読む

Aベストアンサー

こんにちは
テキストボックスに入力した数値を表示させることに絞って回答します。unamana19さんが提案したTagプロパティを使用した場合です。

各数値ボタンのTagプロパティは以下のようにします。
もちろん表示用テキストボックスのTextAlignは右寄せに設定します。
 cmd1のTagに1を設定する
 cmd5のTagに5を設定する ...

コマンドボタンがクリックされた時のイベントプロシージャに
 txtDisplay.Text &= sender.Tag
 txtDisplay.Text = Microsoft.VisualBasic.Val(txtDisplay.Text)

これでどうでしょうか


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング