मुझे नहीं लगता कि वीएसटीओ एक्सेल यूडीएफ का समर्थन करता है, सामान्य सिफारिश ऑटोमेशन ऐड-इन (सिड के लिंक सुझाव के रूप में) का उपयोग करना है।
एक और विकल्प वीबीए से प्रबंधित वीएसटीओ समारोह को कॉल करना है। एक बार फिर यह अनुशंसित नहीं है लेकिन संभव है।
(लिंक से ट्यूटोरियल का पुनरावृत्ति) यहां वीबीए से प्रबंधित कार्यों को कॉल करने का कोई आसान तरीका है।
अपने कार्यों के साथ एक वर्ग VSTO में
<System.Runtime.InteropServices.ComVisible(True)> _
Public Class MyManagedFunctions
Public Function GetNumber() As Integer
Return 42
End Function
End Class
तार ऊपर VSTO में
Private Sub ThisWorkbook_Open() Handles Me.Open
Me.Application.Run("RegisterCallback", New MyManagedFunctions)
End Sub
VBA में कार्यों के लिए प्रबंधित कोड के लिए हुक और एक आवरण बना
VBA करने के लिए अपने कक्षा बनाएं
आपकी स्प्रेडशीट या दस्तावेज़ में वीबीए मॉड्यूल में
Dim managedObject As Object
Public Sub RegisterCallback(callback As Object)
Set managedObject = callback
End Sub
Public Function GetNumberFromVSTO() As Integer
GetNumberFromVSTO = managedObject.GetNumber()
End Function
अब आप एक सेल में GetNumberFromVSTO() दर्ज कर सकते हैं = जब एक्सेल शुरू होता है सेल मूल्य होना चाहिए 42.
http://blogs.msdn.com/b/pstubbs/archive/2004/12/31/344964.aspx
शायद [यह] (http: // blogs.msdn.com/b/eric_carter/archive/2004/12/01/writing-user-defined-functions-for-excel-in-net.aspx) मदद कर सकता है। –
*** Nooooo! *** इस पथ से नीचे जाने से पहले दो बार सोचें।मैं आपको यूडीएफ दृष्टिकोण का उपयोग करने का आग्रह करता हूं ताकि आपका कोड तर्क ए) महत्वपूर्ण तर्क बदलने वाले एक्सेल उपयोगकर्ताओं से संरक्षित * * एक एडी-इन में और कई कार्यपुस्तिकाओं में डुप्लिकेट नहीं किया जा सकता है c) विश्वसनीय नहीं है अनुमति डी) यूनिट टेस्टेबल ई) एक अद्यतित भाषा और आदि में लिखी गई –