Excel VBA質問箱 IV

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

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


3527 / 13645 ツリー ←次へ | 前へ→

【61600】UserFormの記載方法 HAM 09/5/21(木) 15:29 質問[未読]
【61601】Re:UserFormの記載方法 ぴかる 09/5/21(木) 15:40 発言[未読]
【61602】Re:UserFormの記載方法 HAM 09/5/21(木) 15:50 発言[未読]
【61605】Re:UserFormの記載方法 つん 09/5/21(木) 17:01 発言[未読]
【61608】Re:UserFormの記載方法 ぴかる 09/5/21(木) 17:27 発言[未読]
【61611】Re:UserFormの記載方法 HAM 09/5/21(木) 18:00 発言[未読]
【61626】Re:UserFormの記載方法 シスタークエスト 09/5/22(金) 12:32 発言[未読]
【61628】Re:UserFormの記載方法 yoshi 09/5/22(金) 12:37 回答[未読]
【61631】Re:UserFormの記載方法 HAM 09/5/22(金) 13:48 お礼[未読]

【61600】UserFormの記載方法
質問  HAM  - 09/5/21(木) 15:29 -

引用なし
パスワード
   いつも大変お世話になっております。
現在UserformのComboBoxの表記を
下記のように記載しています。
メニュー.Controls("ComboBox" & 1).Clear
これを
Dim TTT As String
TTT = "メニュー"
  TTT.Controls("ComboBox" & 1).Clear
のように変数を使用した表記にしたいのですが
可能なのでしょうか
かのうな場合表記方法を教えていただきたく思います。

【61601】Re:UserFormの記載方法
発言  ぴかる  - 09/5/21(木) 15:40 -

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

  Me.Controls("ComboBox" & 1).Clear か
  Controls("ComboBox" & 1).Clear かにゃ?

【61602】Re:UserFormの記載方法
発言  HAM  - 09/5/21(木) 15:50 -

引用なし
パスワード
   ▼ぴかる さん:
説明不足で申し訳ございません。
UserFormが2個ほどあり
メニューというUserFormでもう片方が
記入という名前のUserFormになっております
このどちらにもComboBox1と2があり
UserFormの名前だけを変更し
同じ処理を2回書かねばならないもので
それを標準モジュールを使用し
どちらからでも呼び出すことの可能な
つくりにしたいと思っております。

■UserForm(メニュー)に記載されています。
  メニュー.Controls("ComboBox" & 1).Clear
  For Each Wb In Workbooks
    メニュー.Controls("ComboBox" & 1).AddItem Wb.Name
  Next

■UserForm(記入)に記載されています。
  記入.Controls("ComboBox" & 1).Clear
  For Each Wb In Workbooks
    記入.Controls("ComboBox" & 1).AddItem Wb.Name
  Next


    ↓このようなつくりにしたいと思っております
■UserForm(メニュー)に記載されています。
Dim TTT As String
  TTT = "メニュー"
  ComboBoxの処理

■UserForm(記入)に記載されています。
Dim TTT As String
  TTT = "記入"
  ComboBoxの処理

■標準モジュール
Sub ComboBoxの処理()

  TTT.Controls("ComboBox" & 1).Clear
  For Each Wb In Workbooks
    TTT.Controls("ComboBox" & 1).AddItem Wb.Name
  Next

End Sub

【61605】Re:UserFormの記載方法
発言  つん  - 09/5/21(木) 17:01 -

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

ぴかるさん、おひさw

回答じゃないですが・・・・

ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=45375;id=excel

このスレッドがもしかしたら参考になるかも?
(ぴかるさんの質問やん(笑))

【61608】Re:UserFormの記載方法
発言  ぴかる  - 09/5/21(木) 17:27 -

引用なし
パスワード
   つんさまの最近のご活躍に刺激を受け、久々の登場となった次第です。

自分の質問を参考にして、出来るかとやってみましたがアキマヘンでした。
標準モジュールで、ユーザーフォームの内容って変更出来るのかも???です。
どなたかよろしゅうお頼み申し上げます。ichinose親分、お助けを〜

【61611】Re:UserFormの記載方法
発言  HAM  - 09/5/21(木) 18:00 -

引用なし
パスワード
   ▼つん さん ぴかる さん
申し訳ございません
18804
45375
を参考に
Dim Fname As String
Fname = "記入"
UserForms.Fname.ComboBox1.Clear
UserForms.add(Fname).ComboBox1.Clear
とやってみましたがどちらもエラーが出ました
根本的に私理解できていないようで申しわけないのですが
ご教授を願えませんでしょうか

【61626】Re:UserFormの記載方法
発言  シスタークエスト  - 09/5/22(金) 12:32 -

引用なし
パスワード
   >    ↓このようなつくりにしたいと思っております
>■UserForm(メニュー)に記載されています。
>Dim TTT As String
>  TTT = "メニュー"
>  ComboBoxの処理
>
>■UserForm(記入)に記載されています。
>Dim TTT As String
>  TTT = "記入"
>  ComboBoxの処理
>
>■標準モジュール
>Sub ComboBoxの処理()
>
>  TTT.Controls("ComboBox" & 1).Clear
>  For Each Wb In Workbooks
>    TTT.Controls("ComboBox" & 1).AddItem Wb.Name
>  Next
>
>End Sub
どっちにしろ、変数TTTの使い方がダメですね。
グローバル変数でないから、中身がない。

素直にこうしたらどうですか。

Public zzzzz As String

Dim TTT As UserForm
If zzzzz = "メニュー" Then
  Set TTT = UserForm1
Else
  Set TTT = UserForm2
End If
>  TTT.Controls("ComboBox" & 1).Clear
>  For Each Wb In Workbooks
>    TTT.Controls("ComboBox" & 1).AddItem Wb.Name
>  Next

もしくは、

Call abcd(Me)

Sub abcd(TTT As Object)
>  TTT.Controls("ComboBox" & 1).Clear
>  For Each Wb In Workbooks
>    TTT.Controls("ComboBox" & 1).AddItem Wb.Name
>  Next
End Sub

【61628】Re:UserFormの記載方法
回答  yoshi  - 09/5/22(金) 12:37 -

引用なし
パスワード
   >    ↓このようなつくりにしたいと思っております
>■UserForm(メニュー)に記載されています。
>Dim TTT As String
>  TTT = "メニュー"
>  ComboBoxの処理
>
>■UserForm(記入)に記載されています。
>Dim TTT As String
>  TTT = "記入"
>  ComboBoxの処理
>
>■標準モジュール
>Sub ComboBoxの処理()
>  TTT.Controls("ComboBox" & 1).Clear
>  For Each Wb In Workbooks
>    TTT.Controls("ComboBox" & 1).AddItem Wb.Name
>  Next
>End Sub

名前(String)等で指定せず、オブジェクトで渡すのが基本でしょう。
(示されたマクロは変数のスコープについて理解されていませんし)
以下のかんじ...

>■UserForm(メニュー)
 ComboBoxの処理 Me

>■UserForm(記入)
 ComboBoxの処理 Me

>■標準モジュール
Sub ComboBoxの処理(uf As UserForm)
 Dim wb As Workbook
 uf.Controls("ComboBox" & 1).Clear
 For Each wb In Workbooks
  uf.Controls("ComboBox" & 1).AddItem wb.Name
 Next
End Sub

【61631】Re:UserFormの記載方法
お礼  HAM  - 09/5/22(金) 13:48 -

引用なし
パスワード
   ▼yoshi さん シスタークエスト さん:

おかげさまをもちまして
無事目的が完了できました。

ご教授いただきありがとうございました

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