'
'
Option Explicit
Sub VcfFileDataMake01()
Dim l_Flg01 As Long
Dim l_LastRow01 As Long
Dim s_SrcWSNm01 As String
Dim s_DistWSNm01 As String
Dim l_DistLastRow01 As Long
Dim l_DistNewRow01 As Long
Dim o_SrcWS04 As Worksheet
Dim o_DistWS04 As Worksheet
Dim l_LoopCnt01 As Long
Dim s_OneData01 As String
Dim s_ALLData01 As String
Let s_SrcWSNm01 = "Sheet1"
Let s_DistWSNm01 = "Sheet4"
Set o_SrcWS04 = ThisWorkbook.Worksheets.Item(s_SrcWSNm01)
' Set o_DistWS04 = ThisWorkbook.Worksheets.Item(s_DistWSNm01)
Let l_LastRow01 = o_SrcWS04.Cells(o_SrcWS04.Cells(Rows.Count, 1).Row, 1).End(xlUp).Row
Let s_OneData01 = ""
Let s_ALLData01 = ""
For l_LoopCnt01 = 2 To l_LastRow01
If o_SrcWS04.Range("B" & l_LoopCnt01) = 1 Then
Let s_OneData01 = VCardDataMake01(s_SrcWSNm01, l_LoopCnt01)
' Debug.Print s_OneData01
' Let l_DistLastRow01 = o_DistWS04.Cells(o_DistWS04.Cells(Rows.Count, 1).Row, 1).End(xlUp).Row
' Let l_DistNewRow01 = l_DistLastRow01 + 1
' Let o_DistWS04.Range("A" & l_DistNewRow01).Value = s_OneData01
Let s_ALLData01 = s_ALLData01 & s_OneData01 & vbCrLf
'
Else
End If
Next l_LoopCnt01
Call SetClipboard(s_ALLData01)
'↑クリップボードにデータを送る
End Sub
Function VCardDataMake01(s_SrcWSNm01 As String, l_RowNum01 As Long) As String
Dim s_Sei01, s_Namae01 As String
Dim s_FrgnaSei01, s_FrgnaNamae01 As String
Dim s_KaisyameiEtc01 As String
Dim s_Yakusyoku01 As String
Dim s_KbnTel01, s_TelNum01 As String
Dim s_KbnTel02, s_TelNum02 As String
Dim s_KbnTel03, s_TelNum03 As String
Dim s_KbnMail01, s_MailAdr01 As String
Dim s_KbnMail02, s_MailAdr02 As String
Dim s_KbnMail03, s_MailAdr03 As String
Dim s_KbnMail04, s_MailAdr04 As String
Dim s_Note01 As String
Dim s_AdrKubun01 As String
Dim s_TymeBnti01, s_TyuSonAza01, s_Ken01, s_SiKu01 As String
Dim s_AdrKubun02 As String
Dim s_TymeBnti02, s_TyuSonAza02, s_Ken02, s_SiKu02 As String
Dim o_SrcWS01 As Worksheet
Dim o_DistWS01 As Worksheet
Set o_SrcWS01 = Application.ThisWorkbook.Worksheets.Item(s_SrcWSNm01)
Let s_Sei01 = "C"
Let s_Namae01 = "D"
Let s_FrgnaSei01 = "E"
Let s_FrgnaNamae01 = "F"
Let s_KaisyameiEtc01 = "G"
Let s_Yakusyoku01 = "H"
Let s_KbnTel01 = "I"
Let s_TelNum01 = "J"
Let s_KbnTel02 = "K"
Let s_TelNum02 = "L"
Let s_KbnTel03 = "M"
Let s_TelNum03 = "N"
Let s_KbnMail01 = "O"
Let s_MailAdr01 = "P"
Let s_KbnMail02 = "Q"
Let s_MailAdr02 = "R"
Let s_KbnMail03 = "S"
Let s_MailAdr03 = "T"
Let s_KbnMail04 = "U"
Let s_MailAdr04 = "V"
Let s_Note01 = "W"
Let s_AdrKubun01 = "X"
Let s_TymeBnti01 = "Y"
Let s_TyuSonAza01 = "Z"
Let s_Ken01 = "AA"
Let s_SiKu01 = "AB"
Let s_AdrKubun02 = "AC"
Let s_TymeBnti02 = "AD"
Let s_TyuSonAza02 = "AE"
Let s_Ken02 = "AF"
Let s_SiKu02 = "AG"
Dim l_CrntRow As Long
' Let l_CrntRow = 2
Let l_CrntRow = l_RowNum01
Dim vCrdData01 As String
Let vCrdData01 = ""
Let vCrdData01 = "BEGIN:VCARD" & vbCrLf
Let vCrdData01 = vCrdData01 & "VERSION:2.1" & vbCrLf
Let vCrdData01 = vCrdData01 & "N:" & o_SrcWS01.Range(s_Sei01 & l_CrntRow) & ";" & o_SrcWS01.Range(s_Namae01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "FN:" & o_SrcWS01.Range(s_Sei01 & l_CrntRow) & " " & o_SrcWS01.Range(s_Namae01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "SOUND;X-IRMC-N:" & o_SrcWS01.Range(s_FrgnaSei01 & l_CrntRow) & ";" & o_SrcWS01.Range(s_FrgnaNamae01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "ORG:" & o_SrcWS01.Range(s_KaisyameiEtc01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "TITLE:" & o_SrcWS01.Range(s_Yakusyoku01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "TEL;PREF;CELL:" & o_SrcWS01.Range(s_TelNum01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "TEL;WORK;VOICE:" & o_SrcWS01.Range(s_TelNum02 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "TEL;HOME;VOICE:" & o_SrcWS01.Range(s_TelNum03 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "EMAIL;PREF;CELL:" & o_SrcWS01.Range(s_MailAdr01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "EMAIL;PREF;WORK:" & o_SrcWS01.Range(s_MailAdr02 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "EMAIL;PREF;HOME:" & o_SrcWS01.Range(s_MailAdr03 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "EMAIL;PREF;INTERNET:" & o_SrcWS01.Range(s_MailAdr04 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "NOTE;ENCODING=QUOTED-PRINTABLE:" & o_SrcWS01.Range(s_Note01 & l_CrntRow) & vbCrLf
'改行を入れたい時は、「;ENCODING=QUOTED-PRINTABLE」を挟んで「文言=0D=0A文言=0D=0A文言=0D=0A」とやると
'おじいちゃん携帯側で、改行された状態で表示されます。
'例 → NOTE;ENCODING=QUOTED-PRINTABLE:社長=0D=0A会長=0D=0A部長=0D=0Aああああ
Let vCrdData01 = vCrdData01 & "ADR;WORK:;;;" & _
o_SrcWS01.Range(s_TymeBnti01 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_TyuSonAza01 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_Ken01 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_SiKu01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "LABEL;WORK;ENCODING=QUOTED-PRINTABLE:" & _
o_SrcWS01.Range(s_TymeBnti01 & l_CrntRow) & "=0D=0A" & _
o_SrcWS01.Range(s_TyuSonAza01 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_Ken01 & l_CrntRow) & "=0D=0A" & _
o_SrcWS01.Range(s_SiKu01 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "ADR;WORK:;;;" & _
o_SrcWS01.Range(s_TymeBnti02 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_TyuSonAza02 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_Ken02 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_SiKu02 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "LABEL;WORK;ENCODING=QUOTED-PRINTABLE:" & _
o_SrcWS01.Range(s_TymeBnti02 & l_CrntRow) & "=0D=0A" & _
o_SrcWS01.Range(s_TyuSonAza02 & l_CrntRow) & ";" & _
o_SrcWS01.Range(s_Ken02 & l_CrntRow) & "=0D=0A" & _
o_SrcWS01.Range(s_SiKu02 & l_CrntRow) & vbCrLf
Let vCrdData01 = vCrdData01 & "REV:20080424T195243Z" & vbCrLf
Let vCrdData01 = vCrdData01 & "END:VCARD"
' Debug.Print vCrdData01
Let VCardDataMake01 = vCrdData01
End Function
'
'