| 投稿時間: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変数を使いますが、
 可能か不可能かだけでも解れば幸いです。
 
 |