Excel VBA를 사용하여 vCard (.vcf 파일) 판독기를 만드는 방법

지금 공유 :

VCF 데이터의 연락처 세부 정보를 Excel 시트로 가져오고 싶었던 적이 있습니까? 이 기사를 따라 VCF 파일에서 Excel 워크시트로 데이터를 가져오는 나만의 VCF 리더를 만드십시오.

다운로드

원하는 경우tar가능한 한 빨리 소프트웨어를 사용하려면 다음을 수행 할 수 있습니다.

지금 소프트웨어 다운로드

그렇지 않고 DIY를 원한다면 아래 내용을 읽을 수 있습니다.

GUI를 준비합시다

VCF 리더 애플리케이션용 GUI를 준비합시다. Sheet1에서 VCF 파일의 전체 경로를 보유할 필드를 만들어야 합니다. 셀 너비를 확장하는 대신 셀을 병합하여 이 필드를 만듭니다. 사용자가 VCF 파일을 선택할 수 있도록 시트에 "찾아보기" 버튼을 추가해 보겠습니다. 사용자가 VCF 데이터를 가져올 수 있도록 하려면 추가 버튼이 필요합니다. 이 버튼의 이름을 "가져오기"로 지정하겠습니다.

이제 Sheet1이 다음과 같이 표시됩니다.VCF 리더 애플리케이션용 GUI 준비

데이터베이스를 준비합시다

우리는 Sheet2를 데이터베이스로 사용할 것입니다. 적절한 열 머리글을 만들기만 하면 됩니다. 이 예에서는 VCF에서 이름과 조직을 가져올 것입니다. 그래서 A열에 "이름", B열에 "조직"이라는 열 머리글을 추가했습니다.

Sheet2는 이제 다음과 같이 보일 것입니다.Sheet2를 데이터베이스로 사용

기능적으로 만들자

이제 우리는 도구의 프런트 엔드를 개발했으며 다음 단계는 스크립트를 추가하여 도구를 작동시키는 것입니다. VBA 편집기를 열고 Module1에서 아래 스크립트를 붙여넣습니다.

이제 Sheet1로 돌아가서 하위 "pickvcf"를 "찾아보기" 버튼에 추가합니다. "가져오기" 버튼을 마우스 오른쪽 버튼으로 클릭하고 "importvcf" 매크로를 할당합니다. 파일을 매크로 사용 파일로 저장하면 됩니다. 이제 VCF 판독기를 개발했습니다.

테스트 해보자

"찾아보기" 버튼을 클릭하여 VCF 파일을 선택합니다. 파일 찾아보기 창에서 확인을 누르자마자 선택한 파일의 전체 경로가 Sheet1에 나타나는 것을 볼 수 있습니다. 이제 "가져오기" 버튼을 클릭하면 즉시 Sheet2에 나타나는 연락처의 이름과 조직 정보를 볼 수 있습니다.

어떤 서비스인가요?

이 스크립트에는 두 개의 Sub가 있습니다. 하위 "pickvcf"는 사용자가 VCF 파일을 찾아보고 선택할 수 있도록 하며 하위 "importvcf"는 VCF에서 Excel 파일로 데이터를 읽고 가져올 수 있습니다.

수정

현재 스크립트는 VCF 파일에서 이름 및 조직 정보를 가져옵니다. 주소, 전화, 팩스 및 이메일과 같은 기타 정보를 가져오도록 스크립트를 쉽게 수정할 수 있습니다. 또한 스크립트를 수정하여 폴더에 있는 여러 VCF 파일을 읽고 배치 프로세스로 가져올 수 있습니다.

이 스크립트는 Excel이 손상되지 않은 경우 잘 작동합니다. 그러나 당신이 가지고 있다면 손상된 엑셀 파일 복구하려면 다음과 같은 Excel 복구 도구를 사용할 수 있습니다. DataNumen Excel Repair.

스크립트

Sub pickvcf()
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = False
        .Title = "Please select the file."
        .Filters.Clear
        .Filters.Add "VCF", "*.vcf"
        If .Show = True Then
            txtFileName = .SelectedItems(1)
            Sheets("Sheet1").Range("F8").Value = txtFileName
        End If
    End With
End Sub

Sub Importvcf()
    Dim fileName As String, textData As String, textRow As String, fileNo As Integer
    fileName = Sheets("Sheet1").Range("F8").Value
    fileNo = FreeFile
    r = 2
    Open fileName For Input As #fileNo
    Do While Not EOF(fileNo)
        Line Input #fileNo, textRow
        If Left(textRow, 3) = "FN:" Then
            Sheets("Sheet2").Range("A" & r).Value = Replace(textRow, "FN:", "")
        End If
        If Left(textRow, 4) = "ORG:" Then
            Sheets("Sheet2").Range("B" & r).Value = Replace(textRow, "ORG:", "")
        End If
    Loop
    Close #fileNo
End Sub

저자 소개 :

Nick Vipond는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. 수리 문서 그리고 전망 회복 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM

지금 공유 :

댓글이 닫혀있다.