私は現在、Excelで書かれたマクロを持っているので、強調表示された行が自動的に必要なExcelフォームフィールドに挿入されます。わかりやすさを助けるために、データベースをMicrosoft Accessに移行する必要があります。しかし、私たちは依然としてデータベースからフォームをすばやく作成できる必要があります。AccessでExcel用に書かれたVBAコードを使用してPDFフォームに自動的に記入
Accessで動作するように、以下のコードをどのように変更できますか?
(以下、単に一例である)あなたの助けを
Public Sub Billing_Information()
Dim sFileHeader As String
Dim sFileFooter As String
Dim PDF_FILE As String
Dim sFileFields As String
Dim sFileName As String
Dim sTmp As String
Dim lngFileNum As Long
Dim vClient As Variant
PDF_FILE = "BI.pdf"
' Builds string for contents of FDF file and then writes file to workbook folder.
On Error GoTo ErrorHandler
sFileHeader = "%FDF-1.2" & vbCrLf & _
"%âãÏÓ" & vbCrLf & _
"1 0 obj<</FDF<</F(" & PDF_FILE & ")/Fields 2 0 R>>>>" & vbCrLf & _
"endobj" & vbCrLf & _
"2 0 obj[" & vbCrLf
sFileFooter = "]" & vbCrLf & _
"endobj" & vbCrLf & _
"trailer" & vbCrLf & _
"<</Root 1 0 R>>" & vbCrLf & _
"%%EO"
sFileFields = "<</T(Name)/V(---Name---)>>" & vbCrLf & _
"<</T(Address)/V(---Address---)>>" & vbCrLf & _
"<</T(City)/V(---City---)>>" & vbCrLf & _
"<</T(Postal Code)/V(---Postal Code---)>>" & vbCrLf & _
"<</T(Unit)/V(---Unit---)>>" & vbCrLf & _
"<</T(Email)/V(---Email---)>>" & vbCrLf & _
"<</T(Phone #)/V(---Phone #---)>>" & vbCrLf & _
"<</T(Claim)/V(---Claim---)>>" & vbCrLf & _
"<</T(Rate)/V(---Rate---)>>" & vbCrLf
'Range("A2").Select
vClient = Range(Selection.Row & ":" & Selection.Row)
Dim count As Integer
count = 1
sFileFields = Replace(sFileFields, "---Name---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Address---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---City---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Postal Code---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Unit---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Email---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Phone #---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Rate---", vClient(1, count))
count = count + 1
sFileFields = Replace(sFileFields, "---Claim---", vClient(1, count))
sTmp = sFileHeader & sFileFields & sFileFooter
' Write FDF file to disk
sFileName = "BillingMultipule"
sFileName = ActiveWorkbook.Path & "\" & sFileName & ".fdf"
lngFileNum = FreeFile
Open sFileName For Output As lngFileNum
Print #lngFileNum, sTmp
Close #lngFileNum
DoEvents
' Open FDF file as PDF
ShellExecute vbNull, "open", sFileName, vbNull, vbNull, SW_NORMAL
Exit Sub
ErrorHandler:
MsgBox "MakeFDF Error: " + Str(Err.Number) + " " + Err.Description + " " + Err.Source
End Sub
感謝。
ここにはさまざまな可動部品があります。あなたは* database *と言いますが、Accessではまだありません。あなたは*フォーム*は言いますが、Excelユーザーフォームは言及していません。あなたは* PDFフォーム*について言及していますが、インターフェイスには[Adobe SDK](http://www.khk.net/wordpress/2009/03/04/adobe-acrobat-and-vba-an-introduction/)ではなくFDFマークアップを使用しますAdobeオブジェクトに変換します。適切な用語でワークフローを明確に説明してください。 – Parfait