• ベストアンサー

テキストボックス名を変数で指定してプロパティ設定?

Ms Access2000,2003 のVBAで テキストボックスのプロパティを変更する時 Me.TextBoxName.Fontsize = 9 などと記述しますが、 この式の左側、テキストボックス名等を変数で処理することが出来るのでしょうか?

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

  • ベストアンサー
回答No.3

ANo.1さんの回答の参照先は Visual Basic の例ですね。 AccessVBAはちょっと異なっていて癖がありますのでVBのコードをそのまま使えません。 ■コントロール名(文字列型)を変数にする場合 Dim strCtl As String strCtl = "TextBoxName" Me.Controls(strCtl).FontSize = 9 .Controls は省略することもできます。 Me(strCtl).FontSize = 9 ■コントロールオブジェクト(オブジェクト型)を変数にする場合 Dim objCtl As Object Set objCtl = Me.TextBoxName objCtl.FontSize = 9

himiko_1947
質問者

お礼

おおっ! 早速やってみました。 レポートの複数個のテキストボックスで同一処理をしたかったのですが、 これで、すっきりしました。 ありがとうございました。

その他の回答 (2)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2

Dim strControlName As String strControlName "テキスト1" Me.Controls(strControlName).Fontsize = 9 あるいは Me(strControlName).Fontsize = 9 好みでどちらでも。 私は前者です。

himiko_1947
質問者

お礼

もしかして、=(等号)が抜けてます? strControlName "テキスト1" -> strControlName = "テキスト1" 後者をいただきます。 ありがとうございました。

  • osietete4
  • ベストアンサー率21% (81/369)
回答No.1
himiko_1947
質問者

お礼

回答ありがとうございました。 でも、よくわかりませんでした。

関連するQ&A

  • アクセスのフォーム上のテキストボックスの行間を指定する方法を教えてくだ

    アクセスのフォーム上のテキストボックスの行間を指定する方法を教えてください。 アクセス初心者です。 フォームにテキストボックスとボタンを配置しておいて,下のように記述すれば,文字の大きさを変更することができました。 行間を変更したい場合は,どう記述すると良いのでしょうか?「 LineSpacing」というプロパティがあることは,何とか分かったのですが,使い方が分かりません。 よろしくお願いいたします。 ******************************** Private Sub コマンド98_Click() Me.テキスト1.FontSize = 15 End Sub ********************************

  • JavaScriptで、テキストボックスを指定する変数を動的に変更した

    JavaScriptで、テキストボックスを指定する変数を動的に変更したいのですが どのように変えればいいのでしょうか。 現在、HTML上で、テキストボックスの名前を'r001'から'r300'まで持っている 表を扱っているのですが、 その'r001'から'r300'までの数字の部分を、 動的にアクセスできるように変更したいのです。 こういった場合、どのようにプログラミングしていいのかを いくらGOOGLEなどで調べても出てこなかったので、どなたか 知っている方がいれば教えてください。

  • VBAにて変数をコントロール名として使用する方法

    Access2002、VBAにて Me.txtテキストなどのようにコントロール名を指定しますが この「txtテキスト」の部分を変数を使って コントロールの指定を行うにはどのように記述すればよいでしょうか。 Dim test as variant test = "txtテキスト" Me.test のように・・・(上は適当です、すみません)

  • ACCESS97 VBA のテキストBOX

    VBAも初心者です。 ACCESSのフォームであるテキストBOXの内容を ボタンで同じ他のフォームのテキストBOX にデフォルト値としてSETするというような 処理をするというような場合どのような記述 をしたら良いでしょうか? ヒントでも良いのでお願いします。

  • フォーム上のテキストボックスの値を変更させない方法って?

    アクセス2000を使っています。 フォーム上にテキストボックスを作成して、テーブル の値を表示しています。 VBAでこのテキストボックスの値が1の時は, me!txt.enabled=true(テキストボックスが開く) 0の時は、me!txt.enabled=false(テキストボックスがグレーアウト)というようにさせたいのです。さらにこのテキストボックスの値を変更できないようにしたいのですが方法はありますか? 要は、表示だけさせたいのです。 プロパティで値ロックするとenableが利かなくなります。 よろしくお願いいたします

  • レポートを開く時にテキストボックスのフォントサイズと行間を指定する方法

    レポートを開く時にテキストボックスのフォントサイズと行間を指定する方法 アクセス初心者です。 レポートにテキストボックスを配置し,レポートオープン時にフォントサイズと行間を指定したにですが,下のように記述してもうまくいきません。 どなたか教えていただけないでしょうか。よろしくお願いします。 ******************************** Private Sub Report_Open(Cancel As Integer) Me.テキスト1.FontSize = 15 End Sub ********************************

  • EXCEL VBA で範囲名を変数として扱えますか?

    チョット的が外れているかも知れませんが、教えてください。VBAはマクロの記録をちょこっと訂正しながら使える程度です。 ワークシートのA1に商品1、B1に商品2、C1に商品3という範囲名(名前)を定義しました。 次にユーザーフォームにテキストボックス1とテキストボックス2を配置してテキストボックス1に「1」を入れるとテキストボックス2には商品名1の内容が「2」を入力すると商品名2の内容が表示されるようにしたいのです。多分、IF文などで処理する方が合理的だとは思うのですが、 SyouHin = "商品" & me.textbox1.Value me.textbox2.Value = SyouHin みたいに、範囲名を変数にして扱うことはできるのでしょうか?その時にはSyouHinの変数のタイプは文字列(string)とするのでしょうか? 少し、背伸びをして勉強を始めたのですがうまくいきません。 もしかして、全然ピントのはずれている質問かも知れません。また、文章が下手で伝わらないかも知れませんが、よろしくお願いします。

  • VBA テキストボックスのイベントについて

    Microsoft ACCESS 2010を使用しています。 「テキスト0」という名前のテキストボックスがあり、 Me![テキスト0].Value = "こんにちは" というコードでテキストボックスの文字を変更します。 この時、テキストボックスの値が変更されたという条件でまた別のコードを動作させたいのですが、テキストボックスのイベントである、「更新前処理」「更新後処理」「ダーティー時」「変更時」では、動作しませんでした。 テキストボックスの値を変更する段階で別のコードを入力すれば対応は可能なのですが、「テキストボックスの値を変更した時」のタイミングで別コードを動作させることで、コードをまとめたいと考えています。 これに対して良い方法はありますか?よろしくお願いします。

  • Excel「テキストボックス」で

    コントロールツールボックス」の中のテキストボックスを使用しています。 変数aと変数bの値を一つのテキストボックスに入れたくて 変数a & 変数b というようにしました。 中身(プロパティでみたところ)はちゃんと入ってるようですが、 表示は変数aと変数bがかぶってしまっています。 これをきちんと表示させるにはどうしたらいいですか? また、このテキストボックス上で、センタリング、右寄せ、均等割付などを行いたい場合は どうしたらいいでしょうか?

  • 条件に該当したテキストボックスの名前を(2)

    前回 http://okwave.jp/qa/q6556269.html で テキストボックスの名前をメッセージボックスに表示する方法(VBA)を 教えて頂いたのですが新たにわからない事がでてきてしまったので 質問させて下さい><自力で解決しようとしたのですがどうしてもできなくて… Accessのバージョンは2003です。 フォームに伝票番号と得意先コードの2つの入力フィールド (テキストボックス)があります。 やりたいことは、以下のようなことです。 伝票番号は100未満の数値でなくてはならず、 得意先コードは1以上かつ10未満でなくてはなりません。 もし、上記の条件に該当しない場合はテキストボックスの色を 黄色に変更させます。 そうしたら黄色に変更されたテキストボックスだけの名前を メッセージボックスに表示させます。 前回教えて頂いたVBAを追記して動かしたところ どちらか片方がエラーの場合はテキストボックスの名前が メッセージボックスに表示されるのですが、 2つともエラーの場合、メッセージボックスが2回表示され 1つのメッセージボックスに1つの名前しか表示されません。 記述したVBAでは正常な動作だと思うのですが、 これを1つのメッセージボックスに黄色のテキストボックスの 名前をいっぺんに表示させたいのですが、 どのようにすれば宜しいでしょうか。 良かったらご教授お願いします!>< 現在記述しているVBAは以下になります。 ---------------------------------------------------------------- Private Sub 閉じる_Click() 'フォーム上のコントロールを格納する変数 Dim ctrl As Control 'フォーム上のすべてのコントロールに対しての繰り返し処理 For Each ctrl In Me.Controls '取得したコントロールがテキストボックスかどうか If ctrl.ControlType = acTextBox Then '伝票番号の値が100未満の場合 If Me!txtNo <= 100 Then '背景をピンクに Me!txtNo.BackColor = vbMagenta Else '背景を黄色にして値を元に戻す Me!txtNo.BackColor = vbYellow End If '得意先コードの値が1以上かつ10未満の場合 If Me!txtCode <= 10 And Me!txtCode >= 1 Then '背景をピンクに Me!txtCode.BackColor = vbMagenta Else '背景を黄色にして値を元に戻す Me!txtCode.BackColor = vbYellow End If End If Next ctrl Me.Undo 'フォーム上のすべてのコントロールに対しての繰り返し処理 For Each ctrl In Me.Controls 'テキストボックスのコントロールを取得 If TypeOf ctrl Is TextBox Then '取得したコントロールが黄色だった場合 If ctrl.BackColor = vbYellow Then 'メッセージボックスに名前を表示 MsgBox ctrl.Name End If   End If Next ctrl End Sub