アプリ版:「スタンプのみでお礼する」機能のリリースについて

ExcelVBAのフォームについての質問です。
コントロールの種類(TextBox,ComboBox等)を取得するプログラムがあれば教えて下さい。
何をしたいかと言うと、Enabledを切り替えるサブルーチンを作りたいのですが、
TextBox等のwindow型のコントロールの場合は、BackColorも変えたいので、条件分岐させたいのです。
ちなみに今は、コントロール名にtxtやcmb等をつけて判断させています。
何か良い方法があれば教えて下さい。

A 回答 (2件)

TypeName関数を使ってみてください。



'-------------------------------------- 
Private Sub CommandButton1_Click()
  Dim myCtrl As Control
  For Each myCtrl In Me.Controls
    Select Case TypeName(myCtrl)
     Case "TextBox"
       myCtrl.BackColor = RGB(255, 0, 0)
     Case "Label"

     Case "ListBox"
       myCtrl.BackColor = RGB(0, 255, 0)
     Case "CheckBox"

     Case "ComboBox"

     Case "CommandButton"

    End Select
  Next myCtrl
End Sub
'------------------------------------------
 
勘違いでしたらご容赦願います。
以上ここまで。
 
    • good
    • 2
この回答へのお礼

TypeName関数っていうのがあったんですね。
まさに、期待通りの回答でした。
ありがとうございました。

お礼日時:2009/07/02 20:40

シートにコントロールのタイプと名前をリストアップします。


(フォームにページやタブを使用した場合までの確認はしていません。)

参考までに(対象はUserForm1にしてあります)
Sub test()
Dim c As Control, r As Long

Load UserForm1
r = 3
Cells(1, 1) = ("コントロール数:" & UserForm1.Controls.Count)
Cells(2, 1).Value = "No"
Cells(2, 2).Value = "名前"
Cells(2, 3).Value = "種類"

For Each c In UserForm1.Controls
 Cells(r, 1).Value = r - 2
 Cells(r, 2).Value = c.Name
 Cells(r, 3).Value = TypeName(c)
 r = r + 1
Next c
End Sub
    • good
    • 0
この回答へのお礼

わざわざ、表を作るプログラムまで教えて下さり、ありがとうございました。
お礼は、早い順に付けたので10ptになってしまいましたが、
感謝の気持ちは20ptの人と同様です。
また、お願いいたします。

お礼日時:2009/07/02 20:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A