MS Access Tips/Sample and VBA and Blog customize etc...

ボタンクリックでテキストボックスに文字入力 その2

ボタンクリックでテキストボックスに文字入力 その1 の続きです。

前回、ラベル(ボタン)の数だけ、クリック時、マウスボタンクリック時、マウスボタン解放時 に関数を設定しましたが、少し面倒ですね。ボタンが少ないときはいいですが、ボタンが多いと結構、大変な作業になります。

今回は、この作業をコードで自動でするようにします。また、バックスペース機能、計算結果表示機能も追加します。

難易度:

イベントの自動設定

まず、ラベルを後10個追加して、標題をそれぞれ "00", ".", "/", "*", "-", "+", "(", ")", "BS", "=" とします。ラベルをすべて選択して、「タグ」プロティに key と設定します。また、結果表示用のテキストボックス「txt2」を追加します。配置は下記のような感じです。

FrmTenkeyDes.gif

フォームの「開くとき」のイベントプロシージャを下記のように記述します。

これで、タグに"key"と設定してあるコントロールのイベントとFunctionの関連付けがフォームを開くときに自動でできます。デザイン時の作業が軽減できます。新たにラベルを追加したときもタグに"key"と設定するだけでOKです。

結果表示用のテキストボックスを追加したので、フォーカスがtxt1にない場合の対策のために、lbl_Click関数に下記のようにコードを追加します。

バックスペース、計算結果表示機能の追加

[BS] [=] ラベルのクリック時のイベントプロシージャを下記のように記述します。

文字列の式を、評価して計算結果を得るには、Eval関数という便利な関数を利用してます。これは、数式だけでなく、VBAの関数なども評価してくれますので、例えば、txt1 に Date() とか DateAdd("m","2",#2009/3/18#) とか、記入して [=]をクリックすると結果を表示してくれます。

あとは、[DEL] [AC] [√] [Copy] などのボタンを追加するなど各自カスタマイズして遊んでください。

サンプルMDB が下記からダウンロードできます。

サンプルファイルが下記からダウンロードできます。
FrmTenKey_07.zip (Access 2007-2010 形式 - 25kb)
FrmTenKey.zip (Access 2002-2003 形式 - 23kb)
FrmTenKey_2k.zip (Access 2000 形式 - 24kb)

拍手する

2 Comments

ken says..."ボタンクリックで数字入力"

はじめまして
AccessもVBAも超初心者です。
ボタンクリックでテキストに文字入力丸写しさせて頂きました。 すみません!
 フォーム上に2つのテキストボックスを配置しました。
  (txt数量とtxt単価)
 丸写しするとWith Me.txt1 で1つだけしか入力できません。
同じフォーム上でこのボタン達を使える方法は、ありますか?

いろいろ拝見すると'クラス化'と言う言葉が出てきますがそれですか?

超~~~初心者な質問で申し訳ございません。
お力拝借願えますでしょうか!
宜しくお願い致します。

2013.01.24 16:52 | URL | #- [edit]
hatena says..."re: ボタンクリックで数字入力"

亀レスご容赦。

フォーカスのあるテキストボックスに入力するという仕様にすればいいでしょう。

  With Me.txt1

の部分を、下記のように書き換えてください。



  With Me.ActiveConrol

2013.03.12 17:45 | URL | #5uE6dEgY [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/8-0183b95f
該当の記事は見つかりませんでした。