• 締切済み

フォルダを・・・

Visual Basic初心者です。Visual Basic6.0を使用しています。 フォーム上にボタンを作って、そのボタンを押すとフォルダが開くというプログラムを教えて下さい。

みんなの回答

回答No.3

「フォルダをダイレクトに開く方法」という書き方では何を指しているのか伝わりません。推測すると以下のようなケースが考えられます。 ■指定したフォルダの中身をユーザーに対して可視化したい -> エクスプローラで表示(#1の方法) ■アプリケーションの中でフォルダの内容を可視化したい -> フォーム内にDirListBoxコントロールやFileListBoxコントロールを配置 ■フォルダの中に入っているファイルやサブフォルダを取得したい -> Dir関数で取得 ' 特定のフォルダにあるファイルを列挙 Dim strFolder As String, strFile As String strFolder = "C:\*.*" strFile = Dir(strFolder, vbNormal) Do Until strFile = "" Debug.Print strFile strFile = Dir Loop ■任意のフォルダをユーザーに選択させたい -> Shell標準のフォルダ選択ダイアログを使用 Private Declare Function SHBrowseForFolder Lib "shell32.dll" (lpBrowseInfo As BROWSEINFO) As Long Private Declare Function SHGetPathFromIDList Lib "shell32.dll" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Type BROWSEINFO hwndOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type Private Const BIF_RETURNONLYFSDIRS = &H1 Private Sub Command1_Click() ' 特定のフォルダにあるファイルを列挙 Dim strFolder As String, strFile As String strFolder = "C:\*.*" strFile = Dir(strFolder, vbNormal) Do Until strFile = "" Debug.Print strFile strFile = Dir Loop ' シェルのフォルダ選択ダイアログ Dim bInfo As BROWSEINFO Dim strPath As String Dim lngResult As Long With bInfo .hwndOwner = Me.hwnd .pidlRoot = 0& .lpszTitle = "フォルダの選択" .ulFlags = BIF_RETURNONLYFSDIRS .lpfn = 0& .lParam = 0& .iImage = 0& End With lngResult = SHBrowseForFolder(bInfo) If lngResult <> 0 Then strPath = String(256, vbNullChar) Call SHGetPathFromIDList(lngResult, strPath) strPath = Left(strPath, InStr(strPath, vbNullChar) - 1) MsgBox strPath End If End Sub いずれにも当てはまらない場合は、具体的にどのような動作を行いたいのかを示していただけると助かります。

  • OMEGAT
  • ベストアンサー率70% (455/642)
回答No.2

そのボタンのクリックイベントに Shell "explorer.exe 開きたいフォルダのパス", vbNormalFocus たとえばC:\Windowsを開きたい場合には Shell "explorer.exe C:\Windows", vbNormalFocus などで可能です。 ※ Shell "explorer.exe /e,C:\Windows", vbNormalFocus とすればエクスプローラで開きます。

回答No.1

フォルダを開く手段は? Explorerで開けばいいのであれば以下のように。 Private Sub Command1_Click() Dim strOpenFolder As String strOpenFolder = "C:\Program Files" Call Shell("Explorer " & strOpenFolder, vbNormalFocus) End Sub その他の方法であれば具体的に示してください。

d-910
質問者

お礼

回答ありがとうございます。 エクスプローラーでなくフォルダをダイレクトに開く方法はありますか?

関連するQ&A