|
엑셀에서 한글, PDF 등의 다양한 형식의 파일을 여는
코드를 아래와 같이 만들어서 잘 쓰고 있습니다.
Sub exVariousOpener(Optional PickingPath As String)
' ■ 엑셀에서 다양한 종류의 파일 열기를 진행함
' ■ 생략된 인수【PickingPath】는 【FilePicker】를 통해 대신함
On Error Resume Next
Dim Selector As Object
If PickingPath = Empty Then
Set Selector = Application.FileDialog(msoFileDialogFilePicker)
Selector.Show
If Selector.SelectedItems.Count = 0 Then Exit Sub
PickingPath = Selector.SelectedItems(1)
End If
ThisWorkbook.FollowHyperlink PickingPath
Set Selector = Nothing
End Sub
질문 취지는...
위의 코드를 액세스에서 사용할 수 있도록 수정하기 위해
도움을 구하려는 것입니다.
위 코드를 액세스에서 실행하면 msoFileDialogFilePicker 부분에서
변수가 정의되지 않았다는 오류가 발생됩니다.
액세스에서는 이를 내장 상수로 인식하지 않기 때문인 듯 하구요.
코드 하단의 ThisWorkbook.FollowHyperlink PickingPath 부분은
수정이 불가피할 것으로 판단됩니다.
그 밖에도 제 생각과 달리 수정할 부분이 있을 수
있겠다 싶기도 하구요.
엑셀과 달리 액세스용 VBA 교재는 턱없이
부족하고 검색도 잘 안되며
Microsoft 또는 Microsoft Office 제품군 안에서의
파일 열기 소스는 찾기가 그나마 좀 쉬운 편인데...
한글, PDF 등 Microsoft 제품군이 아닌 건
사정이 많이 다르더군요.
행복하시길 바랍니다.
==============[난망초련님 글에 대한 답변입니다]==============
'참조에 Microsoft Office 1x.0 Object Library. 체크
Dim fDialog As Office.FileDialog
Dim varFile As Variant
' 파일다이얼로그
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
' 다이얼로그박스 제목
.Title = "파일을 선택하세요."
' 필터초기화 밎 재설정
.Filters.Clear
'.Filters.Add "Access Databases", "*.ACCDB"
.Filters.Add "All Files", "*.*"
' 다이얼로그 박스를 보여주고
' 파일을 선택하면 True, 취소를 클릭하면 False를 반환 합니다.
If .Show = True Then
varFile = .SelectedItems(1)
' 선택된 파일을 실행
Shell "Explorer.Exe" & " " & varFile, vbNormalFocus
Else
MsgBox "파일선택을 취소하셨습니다."
End If
End With |
|