• ベストアンサー

大文字入力を標準モジュールにしたい!

大文字入力を標準モジュールにしたい! 現在、各txtBoxのキー入力時に下記コードで大文字入力をしていますが、 箇所が多いのでCall呼び出しでできないものかとやってみましたがうまく行きません・・・ Select Case KeyAscii Case 97 To 122 KeyAscii = KeyAscii - 32 Case Else End Select どうかお力添えを宜しくお願いいたします。

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

標準モジュールではありませんが クラスファイルでの解法 clsTextboxEX.clsを作成-----以下コード Option Explicit Private WithEvents m_target As TextBox Public Property Get Target() As TextBox Set Target = m_target End Property Public Property Set Target(ByRef NewTarget As TextBox) Set m_target = NewTarget End Property Private Sub m_target_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 97 To 122 KeyAscii = KeyAscii - 32 Case Else End Select End Sub ここまで----------- フォームでクラスを使う------------- Option Explicit Dim TextEX As clsTextboxEX Private Sub Form_Load() Set TextEX = New clsTextboxEX Set TextEX.Target = Text1 End Sub ここまで----------- ざくっと適当に書きましたが、上記のような感じかな。

KOUSUKE0409
質問者

お礼

返答ありがとうございます。 せっかく教えていただきましたが、 素人の僕にはちょっと使いこなせそうにありません・・・・ よろしければ、もう少し詳しくお願いできないでしょうか?

その他の回答 (2)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.3

#1です。 keyAscii = UCase(keyAscii) とか KeyAscii = StrConv(KeyAscii, vbUpperCase) じゃ、だめなの?

KOUSUKE0409
質問者

お礼

返答ありがとうございます。 キー入力時などに書き込みしてみましたが・・・・ このコードはどのように使うのですか? ど素人ですみません、返答お願いいたします。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

開発環境と、開発言語は何?

KOUSUKE0409
質問者

お礼

説明不足ですいません。 ACCESSのVBAです、なにか良い方法がありましたら 宜しくお願いいたします。

関連するQ&A

  • ACCESS標準モジュールでテーブルの主キー採番したい。

    ACCESS標準モジュールでテーブルの主キー採番したい。 フォームが (1) [Fメインメニュー] (2) [F会社] "(1)(2)全て非連結のtxtbox" と2つあり、(1)のコマンドボタンから(2)のフォームを開く時に (2)のtxtboxに現在下記のコードで採番しています。 If DCount("*", "T会社") = 0 Then Forms("F会社").txt会社コード = "001" Else Forms("F会社").txt会社コード = _ Format(DMax("会社コード", "T会社") + 1, "000") End If これを標準モジュールで行いたいのですが、良い方法を教えて下さい。 宜しくお願いいたします。

  • 標準モジュールから呼び出し元に戻って、入力作業

    標準モジュール内でif文を使い、変な文字が入力されると、また呼び出し元に戻り、入力作業させたいのですが、else 以下にどういうコーディングを書けばよいかわかりません。exit function とやると、呼び出し元の次のステートメントが処理されてしまいます。この次のステートメントの処理をさせないで、最初の入力作業をさせたいのですが、わかりません。宜しくお願いいたします。

  • フォームのイベントを標準モジュールから呼び出す

    フォームのイベントを標準モジュールから呼び出す事は出来ないのでしょうか? ちなみにアクセスです。 例えば、 Private Sub Form_Load() MsgBox "test" End Sub というのはフォームを開いたときにしか発生しないですよね。 でもフォームを開いている状態でForm_Loadと全く同じ事をしてほしい時は どうすればいいですか? 標準モジュールで Sub a() Call Form_フォーム1.Form_Load End Sub としてみましたが、メソッドまたはデータ メンバが見つかりません。 (Error 461)になりました。 MsgBox "test" だけなら、 Sub a() MsgBox "test" End Sub にすりゃいいじゃん!って思われがちですが、 実際はForm_Loadイベントにはたくさんのコードが書かれています。 標準モジュールからイベントの呼び出しを教えてください。

  • アクセスの標準モジュールを教えてください

    アクセス初心者です。イベントプロシージャで以下のようなVBAを作りました。(動作しました。) これを複数のレポートで使いたいので,標準モジュールで作りたいのですが,うまくできません。 下のVBAを標準モジュールで書くとどう書くのか教えてください。また,もしcallで呼び出すときの注意点等もあれば教えてください。 下のVBAでしたいことは,「加点減点*○」というイメージを「tbox_加点」というテキストボックスの値に応じて可視にするというものです。 アクセスは2007を使っています。よろしくお願いします。 Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) Dim kt As Long Dim st As Long Me.加点減点_10○.Visible = False Me.加点減点_5○.Visible = False Me.加点減点0○.Visible = False Me.加点減点5○.Visible = False Me.加点減点10○.Visible = False kt = Me.tbox_加点 Select Case kt Case -10 Me.加点減点_10○.Visible = True Case -5 Me.加点減点_5○.Visible = True Case 0 Me.加点減点0○.Visible = True Case 5 Me.加点減点5○.Visible = True Case 10 Me.加点減点10○.Visible = True End Select End Sub

  • エクセルマクロユーザーフォームのtxtbox値を標準モジュールに保持

    宜しくお願いします。 ユーザーフォームのtxtbox値を標準モジュールに渡してマクロを実行 るのですが、一度値をセットしたら20~30回変更が無いので標準モジュール のみショートカットで実行したいのですが値を保持してくれません。 何か良い方法は無いのでしょうか。? 'フォーム起動 Sub フォーム() UserForm1.Show End Sub +++++++++++++++++++++++++++ Private Sub CommandButton1_Click() Call モジュール '標準モジュールを呼ぶ Unload UserForm1 ++++++++++++++++++++++++++ モジュール内 Static ufX As Byte ufX = UserForm1.XXX.Text 'ufXの値を保持したい。

  • 文字列から数式に変換する標準モジュールが不安定

    文字列を数式に変換する標準モジュール「EVALUATE」の更新が不安定です エクセルシート内の文字列を数式に変換して、計算結果を返すために下記標準モジュールを登録して試すのですが うまく行ったりいかなかったり、標準モジュールが安定して機能しない原因などが分かりません。 ●現在の設定とやりたいこと (1)A1⇒=myEvalAry(B1)、B1⇒C1+D1、C1⇒2、D1⇒5 として、A1にC1+D1計算結果の7を表示させたい (2)一つのシートの中に、myEvalAry標準モジュールを数百使っている (3)一つのセルの中で、=myEvalAry(B1)+myEvalAry(B2)のように標準モジュールを複数使っているセルもある ●現在の状況 上記状態で、何かのタイミングで標準モジュールの計算結果が一気に全て正しく反映されることもあれば、 急に反映されなくなることもある。100のうち10だけ反映されることもある。 というような不安定な状態です。 しかも数量が問題かと思って、多量に登録していたmyEvalAryのセルを1つだけにして動きを確認しようとしたらまた反映 されなかったりで、全然理由が分かりません。 どこか標準モジュール内に、考慮すべき構文が漏れたりしてるのでしょうか???? 正常稼働しない理由が分かると大変ありがたいです。win7、win8、excel2003、excel2013のいずれの環境でも同様です。 /////////////////////////////////////////////////////// Function myEvalAry(ParamArray ItemR()) As Variant Dim re As Variant Dim strTmp As String Dim varR As Variant Dim i As Variant, j As Variant strTmp = "" varR = ItemR() For Each i In varR If IsArray(i) Then '引数が配列の場合 For Each j In i If IsNumeric(j) Then re = CStr(j) Else re = j End If strTmp = strTmp & re Next Else '引数が配列以外 If IsNumeric(i) Then re = CStr(i) Else re = i End If strTmp = strTmp & re End If Next myEvalAry = Application.Evaluate(strTmp) End Function

  • ACCESS2003 標準モジュールCALLについて

    お世話になります。 ACCESS2003で、標準モジュールの呼び出しについて次のような流れを 作りたいと思っていますす。 標準モジュール名:TEST public sub AA() dim txtB as string (*1 txtB = "TEST.subBB" (*2 call txtB end sub 実現させるには、*1の命令がobjectまたはmodule型で宣言し、 2)はset命令を利用すると思います。 どのように命令作成してよいか困っています。 実際に作成する場合、どのような設定、命令が必要でしょうか。 既出、文献でも教えていただけないでしょうか。 よろしくお願いします。

  • Back Spaceを入力可にするには?

    金額を入力して計算するルーチンを作成しています。 以下のコードで、数字以外は入力不可にしたのですが・・・・ 数値を訂正するためのBack Spaceも入力できなくて困っています。 0~9までしか受け付けないコードなのはわかっていますが、それに加えてBack Spaceも受け付けられるようにするにはどんなコードを書けばよいでしょうか。 Private Sub genkin_KeyPress(KeyAscii As Integer) If KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Then Exit Sub Else KeyAscii = 0 Beep End If End Sub

  • AccessVBAの標準モジュール

    標準モジュール Public PSwMdel As Boolean Public Function PMsgDel() If (MsgBox("削除してよろしいですか?", 1 + 48 + 256, "削除処理確認メッセージ゛") = vbOK) Then PSwMdel = True Else PSwMdel = False End If End Function と作成し、削除前の確認処理を共通で使えるようにしています。 (メッセージボックスでOKを押すとPSwMdelがTrueになって削除モジュールが動くようにする) 普通は全く問題なくモジュール通りに動くのですがここ最近急に正しく動かないものが出てきました 普段フォーム内のモジュールで Call PMsgDel If PSwMdel = True Then  ~以下削除処理~ END IF としているのですがメッセージボックスでOKを押しても削除が実行されなかったのです おかしいと思いブレークポイントで確認するとOK押した後PMsgDel内ではPSwMdel = True フォームモジュールに戻るといきなりPSwMdel = Falseに変わってしまいIF後の削除処理を通っていませんでした また、PSwMdelをウォッチ式に入れて確認もしてみたのですがOKを押した後は ずっとTrueのまま変わっていませんでした 今まで何年も同じようなコードを使用していますがこんな事は一度も無かったので困惑しています どうすればOK押した後でも確実にPSwMdel = Trueを元のフォームモジュールに持って行けるのでしょうか?

  • EXCEL VBAで標準モジュール内で指定しても別の標準モジュールが開けません。

    Sub CommandButton2_Click() Application.Run "PARA" End Sub 以前他の方が作ったプログラムを参考にして、作成しています。 PARAという名前で作った標準モジュールを動かしたいのですが、 1004エラーと出てしまって止まってしまいます。 実際、オブジェクト名と記載されている文字列を""の間にコピペしても 動きません。 どこがおかしいのでしょうか?あるいは何か肝心なことが抜けているのでしょうか?

専門家に質問してみよう