Excel VBA 質問スレッド №1988 (解決済)
64bit 化
投稿者 : ねこパティシエ 投稿日時 : 2024/08/10(Sat) 23:01:13 OS : Windows 11 EXCEL : 未指定
会社のシステムの64bit化を行っています
※Windows7→11
フォルダを選択するダイアログボックスを表示する箇所
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Declare Function GetDesktopWindow Lib "user32" () As Long
上部PtrSafe他追加でエラーは出ませんが
下部★において”型が違います”エラーが出ます
★★★のXをLong→LongPtrで★のエラーは回避
続いて★★に同じエラーが発生、
同じようにLongPtrではオートメーションエラーによりエクセルが落ちます
どうぞご教授願います
会社のシステムの64bit化を行っています
※Windows7→11
フォルダを選択するダイアログボックスを表示する箇所
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" _
(lpBrowseInfo As BROWSEINFO) As Long
Declare Function GetDesktopWindow Lib "user32" () As Long
Public Type BROWSEINFO hOwner 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 ---------------------------------- Function GetFolder(Optional Msg) As String Dim bInfo As BROWSEINFO, pPath As String Dim R As Long, X As Long, pos As Integer ★★★ bInfo.pidlRoot = 0& If IsMissing(Msg) Then bInfo.lpszTitle = "フォルダの選択..." Else bInfo.lpszTitle = Msg End If bInfo.ulFlags = &H1 X = SHBrowseForFolder(bInfo) ★ pPath = Space$(512) R = SHGetPathFromIDList(ByVal X, ByVal pPath) ★★ If R Then pos = InStr(pPath, Chr$(0)) GetFolder = Left(pPath, pos - 1) Else GetFolder = "" End If End Function
上部PtrSafe他追加でエラーは出ませんが
下部★において”型が違います”エラーが出ます
★★★のXをLong→LongPtrで★のエラーは回避
続いて★★に同じエラーが発生、
同じようにLongPtrではオートメーションエラーによりエクセルが落ちます
どうぞご教授願います
スポンサーリンク
[返信 1] Re : 64bit 化
投稿者 : tek 投稿日時 : 2024/08/11(Sun) 10:01:54
検索すると
https://learn.microsoft.com/ja-jp/archive/msdn-technet-forums/eaf2b8bc-d84f-4b98-9890-fdad67c852c3
がヒットしました。
あくまでdesktopからのみですが、動作しました。
win11
検索すると
https://learn.microsoft.com/ja-jp/archive/msdn-technet-forums/eaf2b8bc-d84f-4b98-9890-fdad67c852c3
がヒットしました。
あくまでdesktopからのみですが、動作しました。
win11
[返信 2] Re : 64bit 化
投稿者 : ねこパティシエ 投稿日時 : 2024/08/11(Sun) 21:21:09
ありがとうございます!
これで試してみます
ありがとうございます!
これで試してみます
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-06 05:48:45 )