Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


100 / 2272 ツリー ←次へ | 前へ→

【13027】標準モジュールからフォームのトグルボタンのキャプションを変更したい りょうりょう 16/6/2(木) 15:01 質問[未読]
【13029】Re:標準モジュールからフォームのトグルボ... かるびの 16/6/3(金) 0:09 回答[未読]
【13030】Re:標準モジュールからフォームのトグルボ... りょうりょう 16/6/3(金) 9:52 お礼[未読]

【13027】標準モジュールからフォームのトグルボタ...
質問  りょうりょう  - 16/6/2(木) 15:01 -

引用なし
パスワード
   初めまして。
アクセス2010を始めて1年ほどの初心者です。
よろしくお願いします。

14個のトグルボタンのキャプションを押したときに、(6/02木)から→(休み)
のようにキャプションを切り替えたい。(ボタン色・テキスト色)
個別にコードを書くとゴミゴミしてみづらいので各ボタン共通で使えるよう標準モジュールに書いてみようとしたのですが、上手く行きません。
各HPを調べて見ましたが、
例)
Sub test1()
  MsgBox "こんにちは"
End Sub
メッセージボックスでの表示は簡単に実行できるのですが、フォーム上のボタンに行おうと思うと上手く行かず、行き詰まってしまいました・・・。
文字を出すという基本的な事でつまづき恥ずかしいのですが、

Sub Cap(ByVal Test As String)
If Test = "0" Then
  Form1.トグルボタン1.Caption = "休み"
End If
End Sub

おわかりになる方、ヒントを頂けますでしょうか。
どうぞよろしくお願いいたします。

【13029】Re:標準モジュールからフォームのトグル...
回答  かるびの  - 16/6/3(金) 0:09 -

引用なし
パスワード
   >Sub Cap(ByVal Test As String)
>If Test = "0" Then
>  Form1.トグルボタン1.Caption = "休み"
>End If
>End Sub

 このコードであれば、トグルボタン3を押そうが、トグルボタン12を押そうが、
常にトグルボタン1の Caption が変わることになります。
 これは、希望の動きではありませんよね。 

 トグルボタン3を押した場合に、トグルボタン3の Caption を変えるには、
Cap サブプロシージャに対して「Caption を変えるのはトグルボタン3だよ」という情報を渡してやる必要があります。
 この情報を渡すために使うのが、サブプロシージャや関数の引数です。
 具体的には、そうした情報を Cap サブプロシージャの引数として渡すことになります。


 どんな情報を渡すかということですが、
Caption を変えるトグルボタン・コントロールの名前を渡すということがまず考えられます。
この場合、引数のデータ型は String 型になります。

 他方、当該トグルボタン・コントロール自体を渡すという方法もあります。
この場合、オブジェクト変数ならぬ、オブジェクト引数とでもいうものになります。
 データ型は、Object 型とか、Contorl 型とかにもできますが、
できるだけ絞った方がいいので、ToggleButton 型というデータ型があれば、これがいいと思います。

 後者の方が、引数のデータ量を節約できますし、
コントロールの名前に基づいてコントロールを取得するという過程を省略できるので、
有利です。

【13030】Re:標準モジュールからフォームのトグル...
お礼  りょうりょう  - 16/6/3(金) 9:52 -

引用なし
パスワード
   かるびのさん、おはようございます。
早速のアドバイスありがとうございました。
頂いたヒントを元に、色々試しましたが自分の無知さが恥ずかしくなりました。
モジュールで受け取った変数をコントロールにして無事表示することが出来るようになりました。
Me.strName.Caption = "だめだ"
    ↓
Me.Controls(strName).Caption = "出来た!"

おかげさまで次の挑戦が出来そうです!
地道に勉強して他の方に助言が出来るようになりたいと思いました。
大変ありがとうございました!
りょうりょう

100 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078186
(SS)C-BOARD v3.8 is Free