<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: VBA 7.1 CommonDialog lost in VBA Forum</title>
    <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416849#M11221</link>
    <description>&lt;P&gt;So, what about real decision. I have the same problem.&lt;/P&gt;</description>
    <pubDate>Wed, 11 Sep 2013 08:27:31 GMT</pubDate>
    <dc:creator>Eydelmana</dc:creator>
    <dc:date>2013-09-11T08:27:31Z</dc:date>
    <item>
      <title>VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/3841702#M11219</link>
      <description>&lt;P&gt;In VBA 7.1, Autocad 2014 there is no way to open file selection window.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone advose how to:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CommonDialog1.ShowOpen&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jure&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Apr 2013 10:13:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/3841702#M11219</guid>
      <dc:creator>JureSpiler</dc:creator>
      <dc:date>2013-04-09T10:13:45Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/3841956#M11220</link>
      <description>&lt;P&gt;64-bit AutoCAD 2014's re-introduce VBA as in-process environment does not mean previous VBA progams (all are 32-bit version prior to Acad2014, of course) would be run automatically.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If the existiing VBA application heavily depends on controls that only available in 32-bit version, then one must find suiatble replacement. One of the major reasons people use VBA in AutoCAD in the past was the its advantage of UI over AutoLISP. So, many existing VBA apps rely on rich UI designs to run and the UI components (mostly, ActiveX controls)&amp;nbsp;used in all AutoCAD VBA so far (until AutoCAD 2014's 64-bit VBA) are all 32-bit, which CANNOT be used in 64-bit VBA.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the csse of CommandDialog, no it cannot be used in VBA7.1, if it is 64-bit. Please note the keyword: 64-bit. With AutoCAD 2014, VBA7.1 can be either 32-bit and 64-bit, depending on AutoCAD. The problem you run into must be because of you using 64-bit AutoCAD (who still does not?).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As workaround, you have to remove the CommandDialog and use direct Windows API call to get open/save file dialog box. As aforementioned, if your VBA also use other 32-bit ActiveX controls that do not have 64-biy equivalent (very likely), you would have more difficulties to&amp;nbsp;convert your existing VBA code&amp;nbsp;into 64-bit VBA7. You may find out it is not worth the troubles to move the VBA code to 64-bit VBA7.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 09 Apr 2013 14:03:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/3841956#M11220</guid>
      <dc:creator>norman.yuan</dc:creator>
      <dc:date>2013-04-09T14:03:56Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416849#M11221</link>
      <description>&lt;P&gt;So, what about real decision. I have the same problem.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Sep 2013 08:27:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416849#M11221</guid>
      <dc:creator>Eydelmana</dc:creator>
      <dc:date>2013-09-11T08:27:31Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416887#M11222</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try this (collected from various sources biut it WORKS !!!!!&lt;/P&gt;&lt;P&gt;Just put in new module and try "public" functions &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Jure&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;___________________&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;'// Module: OpenFile&lt;BR /&gt;'//&lt;BR /&gt;'// This is code that uses the Windows API to invoke the Open File '// common dialog. It is used by users to choose an Excel file that '// contains organizational data.&lt;BR /&gt;&lt;BR /&gt;'Vba6&amp;nbsp;&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; Visual Basic for Applications, version 6.0 compatible.&lt;BR /&gt;'Vba6&amp;nbsp;&amp;nbsp;&amp;nbsp; False&amp;nbsp;&amp;nbsp; not Visual Basic for Applications, version 6.0 compatible.&lt;BR /&gt;'Vba7&amp;nbsp;&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; Visual Basic for Applications, version 7.0 compatible.&lt;BR /&gt;'Vba7&amp;nbsp;&amp;nbsp;&amp;nbsp; False&amp;nbsp;&amp;nbsp; not Visual Basic for Applications, version 7.0 compatible.&lt;BR /&gt;'Win16&amp;nbsp;&amp;nbsp; False&amp;nbsp;&amp;nbsp; Indicates development environment is not 16-bit compatible.&lt;BR /&gt;'Win32&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; 32-bit compatible.&lt;BR /&gt;'Win64&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; 64-bit compatible.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;' 64 bit declarations&lt;BR /&gt;'&lt;A target="_blank" href="http://www.jkp-ads.com/articles/apideclarations.asp"&gt;http://www.jkp-ads.com/articles/apideclarations.asp&lt;/A&gt;&lt;BR /&gt;'&lt;A target="_blank" href="http://www.jkp-ads.com/articles/apideclarations.asp"&gt;http://www.jkp-ads.com/articles/apideclarations.asp&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#If Win64 Then&lt;BR /&gt;Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Private Type OPENFILENAME&lt;BR /&gt;&amp;nbsp; lStructSize As Long&lt;BR /&gt;&amp;nbsp; hwndOwner As LongPtr&lt;BR /&gt;&amp;nbsp; hInstance As LongPtr&lt;BR /&gt;&amp;nbsp; lpstrFilter As String&lt;BR /&gt;&amp;nbsp; lpstrCustomFilter As String&lt;BR /&gt;&amp;nbsp; nMaxCustFilter As Long&lt;BR /&gt;&amp;nbsp; nFilterIndex As Long&lt;BR /&gt;&amp;nbsp; lpstrFile As String&lt;BR /&gt;&amp;nbsp; nMaxFile As Long&lt;BR /&gt;&amp;nbsp; lpstrFileTitle As String&lt;BR /&gt;&amp;nbsp; nMaxFileTitle As Long&lt;BR /&gt;&amp;nbsp; lpstrInitialDir As String&lt;BR /&gt;&amp;nbsp; lpstrTitle As String&lt;BR /&gt;&amp;nbsp; flags As Long&lt;BR /&gt;&amp;nbsp; nFileOffset As Integer&lt;BR /&gt;&amp;nbsp; nFileExtension As Integer&lt;BR /&gt;&amp;nbsp; lpstrDefExt As String&lt;BR /&gt;&amp;nbsp; lCustData As Long&lt;BR /&gt;&amp;nbsp; lpfnHook As LongPtr&lt;BR /&gt;&amp;nbsp; lpTemplateName As String&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;Private Declare PtrSafe Function GetVersionExA Lib "kernel32" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lpVersionInformation As OSVERSIONINFO) As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Private Type OSVERSIONINFO&lt;BR /&gt;&amp;nbsp; dwOSVersionInfoSize As Long&lt;BR /&gt;&amp;nbsp; dwMajorVersion As Long&lt;BR /&gt;&amp;nbsp; dwMinorVersion As Long&lt;BR /&gt;&amp;nbsp; dwBuildNumber As Long&lt;BR /&gt;&amp;nbsp; dwPlatformId As Long&lt;BR /&gt;&amp;nbsp; szCSDVersion As String * 128&lt;BR /&gt;End Type&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _&lt;BR /&gt;&amp;nbsp;(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _&lt;BR /&gt;ByVal lpParameters As String, ByVal lpDirectory As String, _&lt;BR /&gt;ByVal nShowcmd As Long) As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Function GetFolderName(Msg As String) As String&lt;BR /&gt;' returns the name of the folder selected by the user&lt;BR /&gt;Dim bInfo As BROWSEINFO, path As String, r As Long&lt;BR /&gt;Dim x As Long, pos As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.pidlRoot = 0&amp;amp; ' Root folder = Desktop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If IsMissing(Msg) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.lpszTitle = "Izberi mapo"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' the dialog title&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.lpszTitle = Msg ' the dialog title&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.ulFlags = &amp;amp;H1 ' Type of directory to return&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = SHBrowseForFolder(bInfo) ' display the dialog&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Parse the result&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; path = Space$(512)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = SHGetPathFromIDList(ByVal x, ByVal path)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If r Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = InStr(path, Chr$(0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetFolderName = Left(path, pos - 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetFolderName = ""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;Private Type BROWSEINFO ' used by the function GetFolderName&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hOwner As LongPtr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pidlRoot As LongPtr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pszDisplayName As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpszTitle As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ulFlags As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpfn As LongPtr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lParam As LongPtr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iImage As Long&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Sub RunWord(ByVal PP As String)&lt;BR /&gt;Dim Handle As Long&lt;BR /&gt;Dim operation As String&lt;BR /&gt;Dim lpFile As String&lt;BR /&gt;Dim lpParm As String&lt;BR /&gt;Dim lpDir As String&lt;BR /&gt;Dim nShowcmd As Long&lt;BR /&gt;&lt;BR /&gt;Handle = ThisDrawing.HWND32&amp;nbsp;&amp;nbsp; 'Handle calling application&lt;BR /&gt;operation = "open"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Operation performed&lt;BR /&gt;lpFile = Mid(PP, 4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Name and path of the file to be opened less drive letter&lt;BR /&gt;lpParm = ""&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set to null string in VB&lt;BR /&gt;lpDir = Left(PP, 3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '3 character drive ("C:\")&lt;BR /&gt;nShowcmd = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Show application window (Hidden, Max, etc.)&lt;BR /&gt;ShellExecute Handle, operation, lpFile, lpParm, lpDir, nShowcmd&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#ElseIf Win32 Then ' !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=&lt;BR /&gt;&lt;BR /&gt;Private Declare Function GetOpenFileName Lib "comdlg32.dll" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean&lt;BR /&gt;&lt;BR /&gt;Private Type OPENFILENAME&lt;BR /&gt;&amp;nbsp; lStructSize As Long&lt;BR /&gt;&amp;nbsp; hwndOwner As Long&lt;BR /&gt;&amp;nbsp; hInstance As Long&lt;BR /&gt;&amp;nbsp; lpstrFilter As String&lt;BR /&gt;&amp;nbsp; lpstrCustomFilter As String&lt;BR /&gt;&amp;nbsp; nMaxCustFilter As Long&lt;BR /&gt;&amp;nbsp; nFilterIndex As Long&lt;BR /&gt;&amp;nbsp; lpstrFile As String&lt;BR /&gt;&amp;nbsp; nMaxFile As Long&lt;BR /&gt;&amp;nbsp; lpstrFileTitle As String&lt;BR /&gt;&amp;nbsp; nMaxFileTitle As Long&lt;BR /&gt;&amp;nbsp; lpstrInitialDir As String&lt;BR /&gt;&amp;nbsp; lpstrTitle As String&lt;BR /&gt;&amp;nbsp; flags As Long&lt;BR /&gt;&amp;nbsp; nFileOffset As Integer&lt;BR /&gt;&amp;nbsp; nFileExtension As Integer&lt;BR /&gt;&amp;nbsp; lpstrDefExt As String&lt;BR /&gt;&amp;nbsp; lCustData As Long&lt;BR /&gt;&amp;nbsp; lpfnHook As Long&lt;BR /&gt;&amp;nbsp; lpTemplateName As String&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;Private Declare Function GetVersionExA Lib "kernel32" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (lpVersionInformation As OSVERSIONINFO) As Integer&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Private Type OSVERSIONINFO&lt;BR /&gt;&amp;nbsp; dwOSVersionInfoSize As Long&lt;BR /&gt;&amp;nbsp; dwMajorVersion As Long&lt;BR /&gt;&amp;nbsp; dwMinorVersion As Long&lt;BR /&gt;&amp;nbsp; dwBuildNumber As Long&lt;BR /&gt;&amp;nbsp; dwPlatformId As Long&lt;BR /&gt;&amp;nbsp; szCSDVersion As String * 128&lt;BR /&gt;End Type&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _&lt;BR /&gt;&amp;nbsp;(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ByVal lpParameters As String, ByVal lpDirectory As String, _&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ByVal nShowcmd As Long) As Long&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Function GetFolderName(Msg As String) As String&lt;BR /&gt;' returns the name of the folder selected by the user&lt;BR /&gt;Dim bInfo As BROWSEINFO, path As String, r As Long&lt;BR /&gt;Dim x As Long, pos As Integer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.pidlRoot = 0&amp;amp; ' Root folder = Desktop&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If IsMissing(Msg) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.lpszTitle = "Izberi mapo"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' the dialog title&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.lpszTitle = Msg ' the dialog title&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bInfo.ulFlags = &amp;amp;H1 ' Type of directory to return&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = SHBrowseForFolder(bInfo) ' display the dialog&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Parse the result&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; path = Space$(512)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = SHGetPathFromIDList(ByVal x, ByVal path)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If r Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = InStr(path, Chr$(0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetFolderName = Left(path, pos - 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetFolderName = ""&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;Private Type BROWSEINFO ' used by the function GetFolderName&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hOwner As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pidlRoot As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pszDisplayName As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpszTitle As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ulFlags As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpfn As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lParam As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; iImage As Long&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Sub RunWord(ByVal PP As String)&lt;BR /&gt;Dim Handle As Long&lt;BR /&gt;Dim operation As String&lt;BR /&gt;Dim lpFile As String&lt;BR /&gt;Dim lpParm As String&lt;BR /&gt;Dim lpDir As String&lt;BR /&gt;Dim nShowcmd As Long&lt;BR /&gt;&lt;BR /&gt;Handle = ThisDrawing.hWnd&amp;nbsp;&amp;nbsp; 'Handle calling application&lt;BR /&gt;operation = "open"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Operation performed&lt;BR /&gt;lpFile = Mid(PP, 4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Name and path of the file to be opened less drive letter&lt;BR /&gt;lpParm = ""&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Set to null string in VB&lt;BR /&gt;lpDir = Left(PP, 3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '3 character drive ("C:\")&lt;BR /&gt;nShowcmd = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Show application window (Hidden, Max, etc.)&lt;BR /&gt;ShellExecute Handle, operation, lpFile, lpParm, lpDir, nShowcmd&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Private Sub FindFile(ByRef Filepath As String, sFilter As String, ByRef cancelled As Boolean)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim OpenFile As OPENFILENAME&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim lReturn As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dim sFilter As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' On Error GoTo errTrap&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lStructSize = LenB(OpenFile)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// Sample filter:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// "Text Files (*.txt)" &amp;amp; Chr$(0) &amp;amp; "*.sky" &amp;amp; Chr$(0) &amp;amp; "All Files (*.*)" &amp;amp; Chr$(0) &amp;amp; "*.*"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'sFilter = "Excel Files (*.xl*)" &amp;amp; Chr(0) &amp;amp; "*.xl*"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrFilter = sFilter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.nFilterIndex = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrFile = VBA.String(257, 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrFileTitle = OpenFile.lpstrFile&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.nMaxFileTitle = OpenFile.nMaxFile&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'OpenFile.lpstrInitialDir = Application.ActiveDocument.path&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Filepath &amp;gt; "" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrInitialDir = Filepath&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrInitialDir = "C:\"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrTitle = "Find " + sFilter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.flags = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lReturn = GetOpenFileName(OpenFile)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If lReturn = 0 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cancelled = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filepath = vbNullString&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cancelled = False&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filepath = VBA.Trim(OpenFile.lpstrFile)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filepath = Replace(Filepath, VBA.Chr(0), vbNullString)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;errTrap:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resume&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Public Function getFiled(sPath As String, sExt As String, sDescr As String) As String&lt;BR /&gt;'(getfiled "Title" "Directory Path and/or File name" "File Extension" Flag)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Dim bCancelled As Boolean&lt;BR /&gt;&amp;nbsp; Dim fType As String&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; fType = sDescr + " (" + sExt + ")" + VBA.Chr(0) + sExt&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; FindFile sPath, fType, bCancelled&lt;BR /&gt;&amp;nbsp; If bCancelled Then getFiled = "" Else getFiled = sPath&lt;BR /&gt;&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;'==================================== TESTING ROUTINES ==========================================================&lt;BR /&gt;&lt;BR /&gt;'Private Sub Filepath_Click()&lt;BR /&gt;'&amp;nbsp;&amp;nbsp;&amp;nbsp; Label1.Caption = getFiled("D:\", "tif", "Raster")&lt;BR /&gt;'End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Function getVersion() As String&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Dim osinfo As OSVERSIONINFO&lt;BR /&gt;&amp;nbsp; Dim retvalue As Integer&lt;BR /&gt;&amp;nbsp; Dim Wver As String&lt;BR /&gt;&amp;nbsp; Dim Vname As String&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; osinfo.dwOSVersionInfoSize = 148&lt;BR /&gt;&amp;nbsp; osinfo.szCSDVersion = VBA.Space$(128)&lt;BR /&gt;&amp;nbsp; retvalue = GetVersionExA(osinfo)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Wver = osinfo.dwMajorVersion &amp;amp; "." &amp;amp; osinfo.dwMinorVersion&lt;BR /&gt;&lt;BR /&gt;Select Case Wver&lt;BR /&gt;Case "6.2": Vname = "Windows 8"&lt;BR /&gt;'Case "6.2": Vname = "Windows Server 2012"&lt;BR /&gt;Case "6.1": Vname = "Windows 7"&lt;BR /&gt;'Case "6.1": Vname = "Windows Server 2008 R2"&lt;BR /&gt;Case "6.0": Vname = "Windows Server 2008"&lt;BR /&gt;'Case "6.0": Vname = "Windows Vista"&lt;BR /&gt;'Case "5.2": Vname = "Windows Server 2003 R2"&lt;BR /&gt;'Case "5.2": Vname = "Windows Home Server"&lt;BR /&gt;Case "5.2": Vname = "Windows Server 2003"&lt;BR /&gt;'Case "5.2": Vname = "Windows XP Professional x64 Edition"&lt;BR /&gt;Case "5.1": Vname = "Windows XP"&lt;BR /&gt;Case "5.0": Vname = "Windows 2000"&lt;BR /&gt;End Select&lt;BR /&gt;&lt;BR /&gt;'getVersion = Wver + "_" + Vname&lt;BR /&gt;getVersion = Vname&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Private Sub TestEnvionment()&lt;BR /&gt;Dim a$&lt;BR /&gt;#If Win64 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win64=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win64=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If Win32 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win32=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win32=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If Win16 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win16=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win16=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If VBA6 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba6=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba6=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If VBA7 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba7=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba7=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;MsgBox a$&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Sep 2013 08:46:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416887#M11222</guid>
      <dc:creator>JureSpiler</dc:creator>
      <dc:date>2013-09-11T08:46:12Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416989#M11223</link>
      <description>&lt;P&gt;Thank you very much. It works good.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Sep 2013 09:58:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4416989#M11223</guid>
      <dc:creator>Eydelmana</dc:creator>
      <dc:date>2013-09-11T09:58:42Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4448673#M11224</link>
      <description>&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;i tryed this but it tells me binfo is not defined, can some one know this ?&lt;/P&gt;&lt;P&gt;should start with&lt;/P&gt;&lt;P&gt;with binfo&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;End with&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2013 11:26:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4448673#M11224</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-09-23T11:26:26Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4448723#M11225</link>
      <description>&lt;P&gt;1. Make sa Form with 2 buttons:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TestEnvionment]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Filepath]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. copy/paste the code below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This should work (just tested 2 minutes ago).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Jure&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-----------------&amp;nbsp; START CODE ---------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;'// Module: OpenFile&lt;BR /&gt;'//&lt;BR /&gt;'// This is code that uses the Windows API to invoke the Open File '// common dialog. It is used by users to choose an Excel file that '// contains organizational data.&lt;BR /&gt;&lt;BR /&gt;'Vba6&amp;nbsp;&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; Visual Basic for Applications, version 6.0 compatible.&lt;BR /&gt;'Vba6&amp;nbsp;&amp;nbsp;&amp;nbsp; False&amp;nbsp;&amp;nbsp; not Visual Basic for Applications, version 6.0 compatible.&lt;BR /&gt;'Vba7&amp;nbsp;&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; Visual Basic for Applications, version 7.0 compatible.&lt;BR /&gt;'Vba7&amp;nbsp;&amp;nbsp;&amp;nbsp; False&amp;nbsp;&amp;nbsp; not Visual Basic for Applications, version 7.0 compatible.&lt;BR /&gt;'Win16&amp;nbsp;&amp;nbsp; False&amp;nbsp;&amp;nbsp; Indicates development environment is not 16-bit compatible.&lt;BR /&gt;'Win32&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; 32-bit compatible.&lt;BR /&gt;'Win64&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp; 64-bit compatible.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#If Win64 Then&lt;BR /&gt;Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Private Declare PtrSafe Function GetVersionExA Lib "kernel32" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lpVersionInformation As OSVERSIONINFO) As Integer&lt;BR /&gt;Private Type OPENFILENAME&lt;BR /&gt;&amp;nbsp; lStructSize As Long&lt;BR /&gt;&amp;nbsp; hwndOwner As LongPtr&lt;BR /&gt;&amp;nbsp; hInstance As LongPtr&lt;BR /&gt;&amp;nbsp; lpstrFilter As String&lt;BR /&gt;&amp;nbsp; lpstrCustomFilter As String&lt;BR /&gt;&amp;nbsp; nMaxCustFilter As Long&lt;BR /&gt;&amp;nbsp; nFilterIndex As Long&lt;BR /&gt;&amp;nbsp; lpstrFile As String&lt;BR /&gt;&amp;nbsp; nMaxFile As Long&lt;BR /&gt;&amp;nbsp; lpstrFileTitle As String&lt;BR /&gt;&amp;nbsp; nMaxFileTitle As Long&lt;BR /&gt;&amp;nbsp; lpstrInitialDir As String&lt;BR /&gt;&amp;nbsp; lpstrTitle As String&lt;BR /&gt;&amp;nbsp; flags As Long&lt;BR /&gt;&amp;nbsp; nFileOffset As Integer&lt;BR /&gt;&amp;nbsp; nFileExtension As Integer&lt;BR /&gt;&amp;nbsp; lpstrDefExt As String&lt;BR /&gt;&amp;nbsp; lCustData As Long&lt;BR /&gt;&amp;nbsp; lpfnHook As LongPtr&lt;BR /&gt;&amp;nbsp; lpTemplateName As String&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;Private Type OSVERSIONINFO&lt;BR /&gt;&amp;nbsp; dwOSVersionInfoSize As Long&lt;BR /&gt;&amp;nbsp; dwMajorVersion As Long&lt;BR /&gt;&amp;nbsp; dwMinorVersion As Long&lt;BR /&gt;&amp;nbsp; dwBuildNumber As Long&lt;BR /&gt;&amp;nbsp; dwPlatformId As Long&lt;BR /&gt;&amp;nbsp; szCSDVersion As String * 128&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;#ElseIf Win32 Then&lt;BR /&gt;Private Declare Function GetOpenFileName Lib "comdlg32.dll" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean&lt;BR /&gt;Private Declare Function GetVersionExA Lib "kernel32" _&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (lpVersionInformation As OSVERSIONINFO) As Integer&lt;BR /&gt;&lt;BR /&gt;Private Type OPENFILENAME&lt;BR /&gt;&amp;nbsp; lStructSize As Long&lt;BR /&gt;&amp;nbsp; hwndOwner As Long&lt;BR /&gt;&amp;nbsp; hInstance As Long&lt;BR /&gt;&amp;nbsp; lpstrFilter As String&lt;BR /&gt;&amp;nbsp; lpstrCustomFilter As String&lt;BR /&gt;&amp;nbsp; nMaxCustFilter As Long&lt;BR /&gt;&amp;nbsp; nFilterIndex As Long&lt;BR /&gt;&amp;nbsp; lpstrFile As String&lt;BR /&gt;&amp;nbsp; nMaxFile As Long&lt;BR /&gt;&amp;nbsp; lpstrFileTitle As String&lt;BR /&gt;&amp;nbsp; nMaxFileTitle As Long&lt;BR /&gt;&amp;nbsp; lpstrInitialDir As String&lt;BR /&gt;&amp;nbsp; lpstrTitle As String&lt;BR /&gt;&amp;nbsp; flags As Long&lt;BR /&gt;&amp;nbsp; nFileOffset As Integer&lt;BR /&gt;&amp;nbsp; nFileExtension As Integer&lt;BR /&gt;&amp;nbsp; lpstrDefExt As String&lt;BR /&gt;&amp;nbsp; lCustData As Long&lt;BR /&gt;&amp;nbsp; lpfnHook As Long&lt;BR /&gt;&amp;nbsp; lpTemplateName As String&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;Private Type OSVERSIONINFO&lt;BR /&gt;&amp;nbsp; dwOSVersionInfoSize As Long&lt;BR /&gt;&amp;nbsp; dwMajorVersion As Long&lt;BR /&gt;&amp;nbsp; dwMinorVersion As Long&lt;BR /&gt;&amp;nbsp; dwBuildNumber As Long&lt;BR /&gt;&amp;nbsp; dwPlatformId As Long&lt;BR /&gt;&amp;nbsp; szCSDVersion As String * 128&lt;BR /&gt;End Type&lt;BR /&gt;&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;Private Sub UserForm_Activate()&lt;BR /&gt;#If VBA7 Then&lt;BR /&gt;&lt;BR /&gt;#Else&lt;BR /&gt;MsgBox "Only Autocad 2014 allowed"&lt;BR /&gt;End&lt;BR /&gt;#End If&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Public Function getVersion() As String&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Dim osinfo As OSVERSIONINFO&lt;BR /&gt;&amp;nbsp; Dim retvalue As Integer&lt;BR /&gt;&amp;nbsp; Dim Wver As String&lt;BR /&gt;&amp;nbsp; Dim Vname As String&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; osinfo.dwOSVersionInfoSize = 148&lt;BR /&gt;&amp;nbsp; osinfo.szCSDVersion = VBA.Space$(128)&lt;BR /&gt;&amp;nbsp; retvalue = GetVersionExA(osinfo)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Wver = osinfo.dwMajorVersion &amp;amp; "." &amp;amp; osinfo.dwMinorVersion&lt;BR /&gt;&lt;BR /&gt;Select Case Wver&lt;BR /&gt;Case "6.2": Vname = "Windows 8"&lt;BR /&gt;'Case "6.2": Vname = "Windows Server 2012"&lt;BR /&gt;Case "6.1": Vname = "Windows 7"&lt;BR /&gt;'Case "6.1": Vname = "Windows Server 2008 R2"&lt;BR /&gt;Case "6.0": Vname = "Windows Server 2008"&lt;BR /&gt;'Case "6.0": Vname = "Windows Vista"&lt;BR /&gt;'Case "5.2": Vname = "Windows Server 2003 R2"&lt;BR /&gt;'Case "5.2": Vname = "Windows Home Server"&lt;BR /&gt;Case "5.2": Vname = "Windows Server 2003"&lt;BR /&gt;'Case "5.2": Vname = "Windows XP Professional x64 Edition"&lt;BR /&gt;Case "5.1": Vname = "Windows XP"&lt;BR /&gt;Case "5.0": Vname = "Windows 2000"&lt;BR /&gt;End Select&lt;BR /&gt;&lt;BR /&gt;'getVersion = Wver + "_" + Vname&lt;BR /&gt;getVersion = Vname&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Sub FindFile(ByRef Filepath As String, sFilter As String, ByRef cancelled As Boolean)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim OpenFile As OPENFILENAME&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim lReturn As Long&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dim sFilter As String&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' On Error GoTo errTrap&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lStructSize = LenB(OpenFile)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// Sample filter:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '// "Text Files (*.txt)" &amp;amp; Chr$(0) &amp;amp; "*.sky" &amp;amp; Chr$(0) &amp;amp; "All Files (*.*)" &amp;amp; Chr$(0) &amp;amp; "*.*"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'sFilter = "Excel Files (*.xl*)" &amp;amp; Chr(0) &amp;amp; "*.xl*"&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrFilter = sFilter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.nFilterIndex = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrFile = VBA.String(257, 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrFileTitle = OpenFile.lpstrFile&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.nMaxFileTitle = OpenFile.nMaxFile&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'OpenFile.lpstrInitialDir = Application.ActiveDocument.path&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Filepath &amp;gt; "" Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrInitialDir = Filepath&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrInitialDir = "C:\"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.lpstrTitle = "Find " + sFilter&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenFile.flags = 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lReturn = GetOpenFileName(OpenFile)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If lReturn = 0 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cancelled = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filepath = vbNullString&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cancelled = False&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filepath = VBA.Trim(OpenFile.lpstrFile)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Filepath = Replace(Filepath, VBA.Chr(0), vbNullString)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;errTrap:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resume&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;Private Function getFiled(sPath As String, sExt As String, sDescr As String) As String&lt;BR /&gt;'(getfiled "Title" "Directory Path and/or File name" "File Extension" Flag)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; Dim bCancelled As Boolean&lt;BR /&gt;&amp;nbsp; Dim fType As String&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; fType = sDescr + " (*." + sExt + ")" + VBA.Chr(0) + "*." + sExt&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; FindFile sPath, fType, bCancelled&lt;BR /&gt;&amp;nbsp; If bCancelled Then getFiled = "" Else getFiled = sPath&lt;BR /&gt;&lt;BR /&gt;End Function&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Private Sub Filepath_Click()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label1.Caption = getFiled("D:\", "tif", "Raster")&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Private Sub TestEnvionment_Click()&lt;BR /&gt;Dim a$&lt;BR /&gt;#If Win64 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win64=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win64=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If Win32 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win32=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win32=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If Win16 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win16=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Win16=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If VBA6 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba6=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba6=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;#If VBA7 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba7=True" + vbCrLf&lt;BR /&gt;#Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; a$ = a$ + "Vba7=False" + vbCrLf&lt;BR /&gt;#End If&lt;BR /&gt;&lt;BR /&gt;MsgBox a$&lt;BR /&gt;&lt;BR /&gt;Dim Vrstica As Variant&lt;BR /&gt;Vrstica = Split(Application.Path, "\")&lt;BR /&gt;Dim hostName As String&lt;BR /&gt;hostName = VBA.Environ$("computername")&lt;BR /&gt;Dim acadVer As String&lt;BR /&gt;acadVer = Vrstica(UBound(Vrstica))&lt;BR /&gt;&lt;BR /&gt;Dim WinVersion As String&lt;BR /&gt;WinVersion = getVersion&lt;BR /&gt;&lt;BR /&gt;Open ThisDrawing.Path + "\Env " + WinVersion + " " + hostName + " " + acadVer + ".txt" For Output As #1&lt;BR /&gt;Print #1, ThisDrawing.FullName&lt;BR /&gt;Print #1, Application.FullName&lt;BR /&gt;Print #1, a$&lt;BR /&gt;Close #1&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;BR /&gt;&lt;BR /&gt;-----------------&amp;nbsp; END CODE ---------------------&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2013 11:50:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4448723#M11225</guid>
      <dc:creator>JureSpiler</dc:creator>
      <dc:date>2013-09-23T11:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4449439#M11226</link>
      <description>&lt;P&gt;THANKS,&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2013 16:29:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4449439#M11226</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-09-23T16:29:29Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4481437#M11227</link>
      <description>Could you explain how to set this to select multiple files...&lt;BR /&gt;&lt;BR /&gt;Thanks</description>
      <pubDate>Wed, 02 Oct 2013 20:34:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4481437#M11227</guid>
      <dc:creator>rlester</dc:creator>
      <dc:date>2013-10-02T20:34:27Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4482001#M11228</link>
      <description>&lt;P&gt;To select multople files, in procedure "FindFile" just replace&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OpenFile.flags = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;with&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OpenFile.flags = &amp;amp;H80200 ' OFN_EXPLORER + OFN_ALLOWMULTISELECT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is up to you, to split resulting string to multiple filenames &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Jure&lt;/P&gt;</description>
      <pubDate>Thu, 03 Oct 2013 05:48:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/4482001#M11228</guid>
      <dc:creator>JureSpiler</dc:creator>
      <dc:date>2013-10-03T05:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/5253901#M11229</link>
      <description>I'm limited on my code knowledge. So if I have existing code what do I do to make it work? Where do I add the above coding?&lt;BR /&gt;&lt;BR /&gt;Thanks</description>
      <pubDate>Thu, 04 Sep 2014 16:59:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/5253901#M11229</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-04T16:59:15Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/5254341#M11230</link>
      <description>Can you give me more info</description>
      <pubDate>Thu, 04 Sep 2014 20:01:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/5254341#M11230</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-09-04T20:01:41Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/5255065#M11231</link>
      <description>&lt;P&gt;The code above should be pasted to "Module".&lt;/P&gt;&lt;P&gt;In the main form you can use all "Public" functions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this helps,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Jure&lt;/P&gt;</description>
      <pubDate>Fri, 05 Sep 2014 03:43:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/5255065#M11231</guid>
      <dc:creator>JureSpiler</dc:creator>
      <dc:date>2014-09-05T03:43:13Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/6917084#M11232</link>
      <description>&lt;P&gt;Sorry if this sounds like a stupid question, but Im guessing I create a userform and insert the code into the module?&lt;/P&gt;&lt;P&gt;Is this what you meant?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Userform.PNG" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/328752iE1624A77686DFD4D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Userform.PNG" alt="Userform.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 02 Mar 2017 22:34:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/6917084#M11232</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-03-02T22:34:20Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/7206635#M11233</link>
      <description>&lt;P&gt;Does anyone have up-to-date code for this? Simply copy and pasting doesn't seem to work anymore.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Jul 2017 18:56:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/7206635#M11233</guid>
      <dc:creator>bhuhn</dc:creator>
      <dc:date>2017-07-05T18:56:19Z</dc:date>
    </item>
    <item>
      <title>Re: VBA 7.1 CommonDialog lost</title>
      <link>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/7207033#M11234</link>
      <description>&lt;P&gt;Don't try building your own dialog, just use the windows dialogs via api. See the last post in &lt;A href="https://forums.autodesk.com/t5/visual-basic-customization/vba-open-file-with-dialog-box/m-p/6341387#M99249" target="_self"&gt;&amp;gt;&amp;gt;this thread&amp;lt;&amp;lt;&lt;/A&gt;. Download &lt;A href="https://forums.autodesk.com/autodesk/attachments/autodesk/33/99249/1/FileDialogs.zip" target="_self"&gt;FileDialogs.zip&lt;/A&gt; file I attached there.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Jul 2017 22:40:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/vba-7-1-commondialog-lost/m-p/7207033#M11234</guid>
      <dc:creator>Ed__Jobe</dc:creator>
      <dc:date>2017-07-05T22:40:52Z</dc:date>
    </item>
  </channel>
</rss>

