Excel VBA質問箱 IV

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

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


9592 / 13644 ツリー ←次へ | 前へ→

【26483】チェンジされたコンボボックスの名前を変数に取得 ノッチ 05/7/6(水) 20:11 質問[未読]
【26485】Re:チェンジされたコンボボックスの名前を... かみちゃん 05/7/6(水) 21:01 発言[未読]
【26505】Re:チェンジされたコンボボックスの名前を... ノッチ 05/7/7(木) 12:24 質問[未読]
【26509】Re:チェンジされたコンボボックスの名前を... Jaka 05/7/7(木) 13:10 回答[未読]
【26519】Re:チェンジされたコンボボックスの名前を... ノッチ 05/7/7(木) 15:07 質問[未読]
【26521】Re:チェンジされたコンボボックスの名前を... Jaka 05/7/7(木) 16:11 回答[未読]

【26483】チェンジされたコンボボックスの名前を変...
質問  ノッチ  - 05/7/6(水) 20:11 -

引用なし
パスワード
   Private Sub Combo1_Change()

されたコンボボックスの名前を変数に取得したいんですが、
どうすればいいですか?

【26485】Re:チェンジされたコンボボックスの名前...
発言  かみちゃん  - 05/7/6(水) 21:01 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Private Sub Combo1_Change()
>
>されたコンボボックスの名前を変数に取得したい。

なぜ、そういうことをしたいのかわかりませんが、

Private Sub Combo1_Change()
 ctlName="Combo1"
End Sub
ではいけないのでしょうか?

なお、ユーザーフォーム上に配置されたすべてのコンボボックスの名前を取得するのであれば、次のような方法でできます。
Private Sub ComboBox1_Change()
 Dim ctl As Control
 
 For Each ctl In Controls
  If TypeName(ctl) = "ComboBox" Then
   MsgBox ctl.Name
  End If
 Next
End Sub
【参考URL】
http://www2.moug.net/cgi-bin/technic.cgi?exvba+TI09010016

【26505】Re:チェンジされたコンボボックスの名前...
質問  ノッチ  - 05/7/7(木) 12:24 -

引用なし
パスワード
   サンプルいただきましてありがとうございます。
実行してみるのですが
変数が定義されていません
といわれてしまい、進めません。意味がわからないのです。すみません。

'Private Sub ComboBox1_Change()
' Dim ctl As Control
'
' For Each ctl In Controls '変数が定義されていません
'  If TypeName(ctl) = "ComboBox" Then
'   MsgBox ctl.Name
'  End If
' Next
'End Sub

Private Sub CommandButton1_Click()
  Dim MyControl As Control
  Dim AllName  As String
  Dim i     As Integer

  AllName = "フォームに配置されている全てのコントロール名" & Chr(13)

  For Each MyControl In Controls '変数が定義されていません
    i = i + 1
    AllName = AllName & Chr(13) & _
         i & ":MyControl.Name = " & MyControl.Name
  Next

  MsgBox AllName

End Sub

【26509】Re:チェンジされたコンボボックスの名前...
回答  Jaka  - 05/7/7(木) 13:10 -

引用なし
パスワード
   こんにちは。

>Private Sub Combo1_Change()
>されたコンボボックスの名前を変数に取得したい

Private Sub ComboBox1_Change()
  cobo
End Sub

Private Sub ComboBox2_Change()
  cobo
End Sub

フォームモジュールの場合
Sub cobo()
  MsgBox Me.ActiveControl.Name
End Sub

標準モジュールの場合
Sub cobo()
  MsgBox UserForm1.ActiveControl.Name
End Sub

【26519】Re:チェンジされたコンボボックスの名前...
質問  ノッチ  - 05/7/7(木) 15:07 -

引用なし
パスワード
   ▼Jaka さん:
こんにちは。
シート上のコンボボックスの名前を取りたいです。
以下にするとエラー348が帰ってきます。

Sub cobo()
'Err348
  MsgBox ActiveSheet.ActiveControl.Name
End Sub

Private Sub ComboBox1_Change()
cobo
End Sub

【26521】Re:チェンジされたコンボボックスの名前...
回答  Jaka  - 05/7/7(木) 16:11 -

引用なし
パスワード
   シート上アクティブxコントロールだと、これしかわかりません。

Sub cobo(gg)
MsgBox gg
End Sub

Private Sub ComboBox1_Change()
cobo "ComboBox1"
End Sub

Private Sub ComboBox2_Change()
cobo "ComboBox2"
End Sub

シート上のフォームだったらこれで取れますが。
MsgBox Application.Caller

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