更新:@macro男は私を指摘した後
こんにちはみんな、
正しい方向に私はeSignatureを稼動させるのに役立つ資料を見つけました。
私はこれは私が実現した他のStackoverflow responseでのInkEditコントロールと相まって、MSDN Digital Ink Signatures - Concepts and TechnologiesとのPictureBox /ユーザーフォームを通じてVB.netとC#のインク回収についての話InkPicture Class上のいくつかの材料を見つけましたそのVBAsツールボックスには、ユーザーフォームを介して手書きの電子署名を収集するために利用できるInkPicture Control追加コントロールがありました。
ステップバイステップの下に見つけてください:
追加の制御にVBAsツールボックスで[ツール]> [その他のコントロールを使用すると、署名ユーザーフォームを作成することを可能にするインクピクチャコントロールがあります。
追加されたインクピクチャは、ツールボックス上の他のコントロールとして使用することができたら。
その署名要求のユーザーフォームを初期化する場合。私は描画パッドを使用していますが、他のハードウェアも同様に動作するはずです。
そしてサイズを変更し、Word文書に追加するサーバーに一時バージョンを保存私の場合には、必要に結果の画像を保存または利用。
編集:
ワークシート/特定のセルに入力された画像署名にユーザーフォームインクピクチャを使用する方法については、hereで同様の質問に答えた後、私はそれらのために、この答えを編集しようと思いました興味がある。
以下のコードを使用すると、ユーザーフォームにサインインしてイメージを保存し、イメージを節約し、InkPictureをワークシートに追加して、一時イメージを消去できるようにすることができます。
ユーザフォームを設定します(このように、いくつかのオプションが追加されています)。ユーザフォームの名前はSignature_pad
です。必要な必須オプションはPrivate Sub Use_Click()
です。
これは、ユーザーフォーム内のコードです:以下
Private Sub Use_Click()
'dim object type and byte array to save from binary
Dim objInk As MSINKAUTLib.InkPicture
Dim bytArr() As Byte
Dim File1 As String
'get temp file path as $user\Temp\[file name]
FilePath = Environ$("temp") & "\" & "Signature.png"
' set objInk as image/strokes of InkPicture control form object
Set objInk = Me.SignPicture
'if object is not empty
If objInk.Ink.Strokes.Count > 0 Then
'get bytes from object save
bytArr = objInk.Ink.Save(2)
'create file for output
Open FilePath For Binary As #1
'output/write bytArr into #1/created (empty)file
Put #1, , bytArr
Close #1
End If
'set public File as file path to be used later on main sub
Signature.File = FilePath
Unload Me
End Sub
Private Sub Cancel_Click()
End
End Sub
Private Sub ClearPad_Click()
'delete strokes/lines of signature
Me.SignPicture.Ink.DeleteStrokes
'refresh form
Me.Repaint
End Sub
は、ユーザーフォームを呼び出して署名を処理するためにMain sub
(モジュールはSignature
と呼ばれる)され、あなたがbutton
でこれSub
を呼び出すことができます別の形式をとることができます。Sub
。
'public temp file path
Public File
Sub collect_signature()
'Dim and call userform
Dim myUserForm As Signature_pad
Set myUserForm = New Signature_pad
myUserForm.Show
Set myUserForm = Nothing
'insert image/signature from temp file into application active sheet
Set SignatureImage = Application.ActiveSheet.Shapes.AddPicture(File, False, True, 1, 1, 1, 1)
'scale image/signature
SignatureImage.ScaleHeight 1, True
SignatureImage.ScaleWidth 1, True
'image/signature position
SignatureImage.Top = Range("A1").Top
SignatureImage.Left = Range("A1").Left
'delete temp file
Kill File
End Sub
あなたbuttons
の名前と一致するUserform Name
とButtons Name
またはコードのいずれかの名前を変更してください。
こんにちは@Macro Man、右の方向に私を指して助けてくれてありがとう、 'Microsoft InkPicture Control'を' Tools-> Additional Controls'に追加する必要があっただけでしたが、あなたのためではありませんでした。私は後で私の発見の質問を更新してくれます。 –