投稿日 | : 2005/01/11(Tue) 13:53 |
投稿者 | : 緋桜 |
Eメール | : |
URL | : |
タイトル | : Index値の受け渡しについて(PopUp,API使用) |
まず一つのフォームにLbl_SetTemplateFolderという名前のラベルがあり、それは
配列(0 to 4)の計5つ存在します。
Private Sub Lbl_SetTemplateFolder_MouseUp(Index As Integer, _
Button As Integer, _
Shift As Integer, _
x As Single, _
y As Single)
'ラベルをクリックした際の処理
'左クリックを制御
If Button = vbLeftButton Then
If Lbl_SetTemplateFolder(Index).Caption = vbNullString Then
Else
'動作ファイル名をフルパスで表示する
MsgBox "動作ファイルには現在、" & vbCrLf & vbCrLf & _
" フォルダ名:" & _
Lbl_SetTemplateFolder(Index).Caption & vbCrLf & _
"が読み込まれています", _
vbOKOnly + vbInformation, "動作ファイル"
End If
'右クリックを制御
ElseIf Button = vbRightButton Then
'「フォルダ変更」のポップアップを表示する
MainForm.PopupMenu MainForm.Mnu_PopFolder
End If
End Sub
Private Sub Mnu_ChangeFolder_Click()
'「フォルダ変更」のポップアップをクリックした際の処理
Dim StrFolder As String
'SHBrowseForFolderのAPIを使用しフォルダのパスを返す
'ShowFolder Functionは標準モジュールに格納されています。
StrFolder = ShowFolder
If StrFolder = vbNullString Then
'キャンセルが押されたので何も処理は行わない
Else
'ラベルの中身を書き換える
Lbl_SetTemplateFolder(0).Caption = StrFolder
End If
End Sub
上記コードでは各ラベルをクリックした時は、配列の何番をクリックしたのかをIndexで判定できます
。
が、その後選択したフォルダ名を書き込む際に上記では(0)と打っていますが、ここに
Index値を入れておかねば意味ないのです。
どうやってIndex値の受け渡しが出来るのでしょうか?
MouseUpの時点でIndex値をPublic変数に叩き込んでおけばいいのですが、
部の方針でPublic変数使用禁止なので、くだらないことで困っています。
どうしても受け渡しが不可能ならば許可を得てPublic変数を使いますが、
可能か不可能かだけでも解れば幸いです。