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