目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
218 / 277 ←次へ | 前へ→

【68】フォルダ選択<API使用>
Excel  BOTTA  - 04/8/23(月) 19:31 -

引用なし
パスワード
   Jakaさん、どもっ。
「フォルダの選択」には悩んだことがありまして、補足させて頂きます。
'********************************************************************************
'<API使用>
'参考  http://support.microsoft.com/default.aspx?scid=kb;ja;179497
'APIを使ったもの、これが一番汎用性があるみたい
Option Explicit
Declare Function SHBrowseForFolder Lib "shell32.dll" _
  Alias "SHBrowseForFolderA" _
  (lpbi As BrowseInfo) As Long

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
  Alias "SHGetPathFromIDListA" _
  (ByVal pidl As Long, _
  ByVal pszPath As String) As Long

Declare Sub CoTaskMemFree Lib "OLE32.dll" (ByVal pv As Long)

Type BrowseInfo
  hWndOwner As Long    '親ウィンドウハンドル
  pIDLRoot As Long     'ルートフォルダ(デスクトップは &H0)
  pszDisplayName As String '選択したフォルダ
  lpszTitle As String   'タイトル
  ulFlags As Long     '動作方法の指定(フォルダ選択は &H1)
  lpfnCallback As Long
  lParam As Long
  iImage As Long
End Type

Sub f選択01()
  Dim B_Info As BrowseInfo
  Dim lpIDList As Long '戻り値
  Dim SelectedF As String

  With B_Info
    .pIDLRoot = &H0 'デスクトップをルートに設定
    .lpszTitle = "フォルダを選択してネ"
    .ulFlags = &H1 'フォルダ選択限定
  End With

  lpIDList = SHBrowseForFolder(B_Info)     '「フォルダ選択」ダイアログを表示
  SelectedF = String$(256, vbNullChar)     '受取領域確保
  Call SHGetPathFromIDList(lpIDList, SelectedF) 'フォルダパス取得
  CoTaskMemFree lpIDList            'メモリ解放

  If lpIDList <> 0 Then
    If Left(SelectedF, 1) = vbNullChar Then MsgBox "選択不可!!", 16: Exit Sub
    SelectedF = Left(SelectedF, InStr(SelectedF, vbNullChar) - 1)
    MsgBox SelectedF, 64, "選択されたフォルダ"
  End If
End Sub
9,149 hits

【62】フォルダの選択 Jaka 04/8/11(水) 9:06 Excel[未読]
【68】フォルダ選択<API使用> BOTTA 04/8/23(月) 19:31 Excel[未読]
【69】フォルダ選択<Shell使用> BOTTA 04/8/23(月) 19:32 Excel[未読]
【70】フォルダ選択<FileDialog使用> BOTTA 04/8/23(月) 19:32 Excel[未読]
【93】Re:フォルダ選択<FileDialog使用> ちゃっぴ 05/3/18(金) 23:48 Excel[未読]
【71】Re:フォルダの選択 Jaka 04/8/30(月) 16:33 Excel[未読]
【94】Re:フォルダの選択 ちゃっぴ 05/3/19(土) 0:04 Excel[未読]
【95】Re:フォルダの選択 ちゃっぴ 05/3/19(土) 0:06 Excel[未読]

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
218 / 277 ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free