Excel VBAを使用してvCard(.vcfファイル)リーダーを作成する方法

今すぐ共有:

連絡先の詳細をVCFデータからExcelシートにインポートしたいと思ったことはありませんか? この記事に従って、VCFファイルからExcelワークシートにデータをインポートする独自のVCFリーダーを作成してください

ダウンロード

あなたがしたい場合tarできるだけ早くソフトウェアを使用するには、次のことができます。

今すぐソフトウェアをダウンロード

それ以外の場合、DIYをしたい場合は、以下の内容を読むことができます。

GUIを準備しましょう

VCFリーダーアプリケーション用のGUIを準備しましょう。 Sheet1で、VCFファイルのフルパスを保持するフィールドを作成する必要があります。 セル幅を拡大するのではなく、セルを結合してこのフィールドを作成します。 ユーザーがVCFファイルを選択できるようにするには、シートに「参照」ボタンを追加しましょう。 ユーザーがVCFデータをインポートできるようにするための追加のボタンが必要です。 このボタンに「インポート」という名前を付けましょう。

Sheet1は次のようになりますVCFリーダーアプリケーション用のGUIを準備する

データベースを準備しましょう

Sheet2をデータベースとして使用します。 あなたがしなければならないのは、適切な列ヘッダーを作成することです。 この例では、VCFから名前と組織をインポートします。 そこで、列Aに列ヘッダー「Name」を追加し、列Bに「Organization」を追加しました。

Sheet2は次のようになりますSheet2をデータベースとして使用する

機能させましょう

これでツールのフロントエンドが開発されました。次のステップは、スクリプトを追加してツールを機能させることです。 VBAエディターを開き、Module1に以下のスクリプトを貼り付けます。

Sheet1に戻り、サブ「pickvcf」を「参照」ボタンに追加します。 「インポート」ボタンを右クリックし、マクロ「importvcf」を割り当てます。 ファイルをマクロ対応ファイルとして保存すると、それだけです。 これで、VCFリーダーが開発されました。

それをテストしましょう

「参照」ボタンをクリックして、VCFファイルを選択します。 [ファイルの参照]ウィンドウで[OK]を押すとすぐに、選択したファイルのフルパスがSheet1に表示されます。 次に、[インポート]ボタンをクリックすると、連絡先の名前と組織の情報がSheet2に表示されます。

どういう仕組みで、どうすればいいのですか?

このスクリプトはXNUMXつのサブを保持します。 サブ「pickvcf」は、ユーザーがVCFファイルを参照および選択できるようにするためのものであり、サブ「importvcf」は、VCFからExcelファイルにデータを読み取ってインポートするためのものです。

変更する

現在のところ、スクリプトはVCFファイルから名前と組織の情報をインポートします。 スクリプトを簡単に変更して、住所、電話、ファックス、電子メールなどの他の情報をインポートできます。 スクリプトを微調整して、フォルダー内の複数のVCFファイルを読み取り、バッチプロセスでインポートすることもできます。

このスクリプトは、Excelが破損していない場合にうまく機能します。 ただし、 破損した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。は、以下を含むデータ復旧技術の世界的リーダーです。 修理ドキュメント と見通し回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。