• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:access vba プロシージャの呼び出し)

Access VBAでテキストボックスの値をオプションボタンに反映させる方法

このQ&Aのポイント
  • Access VBAでテキストボックスの値をオプションボタンに反映させる方法について質問です。
  • テキストボックス1に入力された文字列を選択されているオプションボタンのキャプションと合わせて、テキストボックス2に反映させる方法を教えてください。
  • VBA初心者のため、詳細なコードの見本や説明を教えていただけると助かります。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは まずは、コマンドボタンを右クリックしてイベントのビルドでコードビルダーを 表示して、 Private Sub コマンド1_Click()   Dim s As String   Select Case Me.フレーム1.Value     Case 1: s = Me.ラベル2.Caption     Case 2: s = Me.ラベル4.Caption     Case 3: s = Me.ラベル6.Caption   End Select   Me.テキスト2.Value = Me.テキスト1.Value & s End Sub みたいにしてはどうですか? コマンド1とか、フレーム1とか、ラベル2とかはそれぞれ実際の環境に 合わせて変更して下さい。 あまり最初から高度なコードを書こうとせずに 少しずつ動くコードが書けるようにしていくといいと思います。

nanamizuki77
質問者

補足

ushi2015様 回答ありがとうございます。 実は、まったくの素人が入社して一週間でやっている課題です。 オプションcaptionの反映機能はコマンド1で呼び出して使わないといけません。回答の方法だと、「s」にcase「1」が入ってしまいます。 呼ぶときに「フレームの中で選ばれたオプションのcaption」のような指定は出来ないのでしょうか。。 ほんと頓珍漢な事を言ってしまっているのでしょうね、、ごめんなさい。

その他の回答 (3)

回答No.4

Private Function TestFunction(ByVal strText1 As String, _               ByVal strText2 As String) As String 【訂正】 ByVal 宣言が欠落していました。

回答No.3

Option Compare Database Option Explicit Private Sub コマンド1_Click()   Dim strText1 As String   Dim strText2 As String      If Len(Me.テキスト1 & "") > 0 Then     strText1 = Me.テキスト1     strText2 = Me.Controls("オプションラベル" & Me.フレーム1.Value).Caption     Me.テキスト2 = TestFunction(strText1, strText2)   End If End Sub Private Function TestFunction(ByVal strText1 As String, strText2 As String) As String   TestFunction = strText1 & strText2 End Function >functionプロシージャを呼び出したい! 上述のコードでは Me.テキスト2 = TestFunction(strText1, strText2) という形で呼び出しています。でも Me.テキスト2 = strText1 & strText2 と書けば事足ります。 【オプションラベル名の付け方】 オプションラベル1 オプションラベル2 オプションラベル3 としておけば Me.Controls("オプションラベル" & Me.フレーム1.Value).Caption 該当するオプションのCaptionを取得することができます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

いまエクセル環境しか使えないのですが、やってみた UserForm1にテキストボックス2つ Frame1つ  その中にOPTボタン3つ  配置 ーー OPTボタン3つのCaptionは Lサイズ Mサイズ Sサイズ ーー Private Sub CommandButton1_Click() For i = 1 To Frame1.Controls.Count If Frame1.Controls(i - 1).Value = True Then op = Frame1.Controls(i - 1).Caption End If Next TextBox2.Text = TextBox1 & op End Sub ーー TextBox1に「スカート」と入力、 「Sサイズ」のOPTボタンをクリック、 コマンドボタンをクリック。 Textbox2に「スカートSサイズ」と入りました。 ーー アクセスでも似たようなコードでできませんかね。 -- 心配事2つ ・この後どうしようというのか? なぜfunctionプロシージャを使わないといけないのか。 ーー ・>テキストボックス1の文字列と合わせる形で に、こういう方法が本当に良いのか(個人的に素人っぽいニオイがする)、本当は、VBAコードを聞くのではなく、その前に、こういうコーナーでは、識者に設計仕様を聞いてみるのがよいのでは? そのためには直面しているシチュエーションを文章で表現できなければならず、 業務関連を他人に伺わせたくないのかな。

nanamizuki77
質問者

補足

imogasi様。 回答ありがとうございます。 「自分で調べろ」方式の会社で、何の説明もないままコードを書かされているので、素人も素人、中国語の部屋状態です。 さらに言うと、今回の課題は ・テキストボックス1には特定の記号しか入力できない(入力規制) ・コマンドボタン1では、テキストボックス1と2をつなげる動作のみ(入力規制とオプションの反映は呼び出して使う) というものです。

関連するQ&A