Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Cara membuat Visual Basic otomatisasi tambah pasang untuk fungsi lembar kerja Excel

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 285337
Artikel ini telah diarsipkan. Artikel ditawarkan dalam bentuk "apa adanya" dan tidak akan dapat diperbarui lagi.
Ringkasan
Di Microsoft Excel 2000, Anda tidak dapat memanggil fungsi langsung dalam Model objek komponen (COM) tambah pasang dari sel formula lembar kerja. Namun, Anda harus membuat Visual Basic for Applications (VBA) pembungkus COM tambah pasang fungsi sehingga fungsi dapat dipanggil langsung.

Integrasi dari COM tambah pasang (disebut otomatisasi Add-in) di Excel 2002 dan yang lebih baru telah ditingkatkan sedemikian rupa sehingga COM tambah pasang fungsi mungkin sekarang disebut langsung dari formula lembar kerja tanpa perlu bungkus VBA. Artikel ini menunjukkan bagaimana cara membuat otomatisasi tambah pasang dengan Visual Basic yang memperlihatkan fungsi yang dapat dipanggil dari Excel 2002 dan kemudian formula lembar kerja.
Informasi lebih lanjut

Membuat sampel otomatisasi tambah pasang

  1. Dalam Visual Basic, mulai proyek AddIn baru.
  2. secara asali, bentuk yang bernama frmAddIn ditambahkan ke proyek. Untuk tujuan demonstrasi ini, bentuk tersebut akan dihapus dari theproject. Dalam proyek Explorer, klik kanan-atas bentuk, dan kemudian klik Hapus frmAddIn pada menu jalan pintas.
  3. Pada Project menu, klik Properti MyAddin. Mengubah Nama proyek "AutomationAddin" dan kemudian klik OK.
  4. Dalam proyek Explorer, pilih desain terhubung. Mengubah nama properti "XLFunctions".
  5. Dalam proyek Explorer, klik ganda XLFunctions desain. Pada tab umum , buat perubahan berikut ke tataan desain:
    • Dari daftar aplikasi , pilih Microsoft Excel.
    • Dari daftar Aplikasi versi , pilih Microsoft Excel 10.0.
      Catatan: jika Anda menggunakan Microsoft Office Excel 2003, Microsoft Excel 11.0 pilih dari daftar Versi aplikasi .
    • Ubah pengaturan Awal beban perilaku beban pada permintaan.
  6. Dengan XLFunctions desain masih terbuka, pilih kode dari menu tampilan . Ganti kode di modul dengan berikut ini:
    Option ExplicitPrivate Declare Function GetTickCount Lib "kernel32" () As LongDim oApp As Object  'The Excel Application objectPrivate Sub AddinInstance_OnAddInsUpdate(custom() As Variant)   Exit SubEnd SubPrivate Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)   Set oApp = ApplicationEnd SubPrivate Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)   Set oApp = NothingEnd SubPrivate Sub AddinInstance_OnStartupComplete(custom() As Variant)   Exit SubEnd SubPublic Function TickCount() As Long   '----------------------------------------------------------------------   '** A volatile function that is called each time the sheet is calculated.   '   Call with =TICKCOUNT().   '----------------------------------------------------------------------   oApp.Volatile   TickCount = GetTickCountEnd FunctionPublic Function Add1(Num1 As Variant, Num2 As Variant) As Variant   '----------------------------------------------------------------------    '** A function with two required arguments.    '   Can be called with formulas such as =Add1(1,3) or =Add1(A1,A2).   '----------------------------------------------------------------------    On Error Resume Next    Add1 = "The sum of " & Num1 & " and " & Num2 & " is " & _        CDbl(Num1) + CDbl(Num2)    If Err <> 0 Then Add1 = CVErr(2036)  'xlErrNum = 2036End FunctionPublic Function Add2(Num1 As Variant, Num2 As Variant, Optional Num3 As Variant) As Variant   '----------------------------------------------------------------------   '** A function with two required arguments and a third optional argument.   '   Can be called with formulas such as =Add2(1,2), =Add2(A1,A2,A3).   '----------------------------------------------------------------------    Dim Sum As Double, sMsg As String    On Error GoTo Handler    Sum = CDbl(Num1) + CDbl(Num2)    If IsMissing(Num3) Then        sMsg = "The sum of " & Num1 & " and " & Num2 & " is "    Else        Sum = Sum + CDbl(Num3)        sMsg = "The sum of " & Num1 & ", " & Num2 & " and " & Num3 & " is "    End If    Add2 = sMsg & Sum    Exit FunctionHandler:    Add2 = CVErr(2036)  'xlErrNum = 2036End FunctionPublic Function Add3(ParamArray Nums()) As Variant   '----------------------------------------------------------------------   '** Demonstrates a function with a variable number of arguments.   '   Can be called with formulas like =Add3(1), =Add3(1,2,3,4),   '   or =Add3(A1,A2).   '----------------------------------------------------------------------    Dim Sum As Double, i As Integer    On Error GoTo Handler    For i = 0 To UBound(Nums)        Sum = Sum + CDbl(Nums(i))    Next    Add3 = "The sum is " & Sum    Exit FunctionHandler:    Add3 = CVErr(2036)  'xlErrNum = 2036End FunctionPublic Function ReturnArray(nRows As Long, nCols As Long) As Variant   '----------------------------------------------------------------------   '** Demonstrates how to return an array of values (for use in Excel   '   "array formulas").   '   Can be called with a formula such as =ReturnArray(1,3).   '----------------------------------------------------------------------    On Error GoTo Handler    ReDim a(0 To nRows, 0 To nCols) As Variant    Dim r As Long, c As Long    For r = 0 To nRows - 1        For c = 0 To nCols - 1            a(r, c) = "r" & r + 1 & "c" & c + 1        Next c    Next r    ReturnArray = a    Exit FunctionHandler:    ReturnArray = CVErr(2015)  'xlErrValue = 2015End FunctionPublic Function GetArray(Nums As Variant) As Variant   '----------------------------------------------------------------------   '** Demonstrates how to use an array(or range of multiple cells) as   '   a function argument.   '   Can be called with formulas such as =GetArray(A1:B5), GetArray(A1),   '   or GetArray({1,2,3;4,5,6}).   '----------------------------------------------------------------------    Dim Sum As Double, v As Variant    On Error GoTo Handler    If IsArray(Nums) Then        For Each v In Nums            Sum = Sum + CDbl(v)        Next    Else        Sum = CDbl(Nums)    End If    GetArray = "The sum is " & Sum    Exit FunctionHandler:    GetArray = CVErr(2036)  'xlErrNum = 2036End Function					
  7. Membuat tambah pasang sebagai AutomationAddin.dll.

Menggunakan sampel otomatisasi tambah pasang di Microsoft Excel 2002 atau Microsoft Office Excel 2003

  1. Mulai Microsoft Excel 2002 jika Anda telah memilih Microsoft Excel 10.0 dalam daftar Versi aplikasi proyek tambah pasang Visual Basic.
    Catatan: mulai Microsoft Office Excel 2003 jika Anda telah memilih Microsoft Excel 11.0 dalam daftar Versi aplikasi proyek tambah pasang Visual Basic.
  2. Pada menu alat , klik tambah pasang untuk menampilkan kotak dialog tambah pasang Manager . Klik otomatisasi, pilih AutomationAddin.XLFunctions dalam daftar, dan kemudian klik OK. Pilih AutomationAddin.XLFunctions, dan kemudian klik OK untuk menutup kotak dialog tambah pasang Manager .
  3. Di sel A1, ketik rumus berikut:
    =TickCount()
    Rumus gulung balik sejumlah besar yang mewakili ofmilliseconds nomor yang telah berlalu sejak sistem Anda dimulai.
  4. Dalam sel B1 dan B2 buku kerja baru, ketik numericvalues 2 dan 5, masing-masing.
  5. Di sel B3, ketik rumus berikut:
    = Add1(B1, B2)
    dan tekan ENTER. Rumus gulung balik "Jumlah is7 2 dan 5".
  6. Di sel B4, ketik rumus berikut:
    = Add2(B1, B2)
    dan tekan ENTER. Rumus gulung balik "jumlah 2 dan 5 adalah 7". Mengubah formula menggunakan argumen opsional ketiga:
    = Add2(B1, B2, 10)
    Rumus gulung balik "jumlah 2, 5, dan 10 adalah 17."
  7. Di sel B5, ketik rumus berikut:
    =Add3(1,2,3,4,5,6)
    dan tekan ENTER. Rumus gulung balik "jumlah yang 21". Karena theparameter untuk fungsi Add3 dinyatakan sebagai ParamArray, Anda dapat menggunakan variabel jumlah argumen untuk fungsi ini.

    Catatan Excel batas fungsi lembar kerja tunggal untuk 29arguments.
  8. Di sel B6, ketik rumus berikut:
    =Add1("x","y")
    dan tekan ENTER. Rumus kembali #NUM! (xlErrNum) karena jenis konversi dengan fungsi CDbl gagal mengkonversi string "x" dan "y" untuk jenis ganda. Default gulung balik nilai saat fungsi mengalami run-timeerror adalah #VALUE!. Jika Anda ingin gulung balik galat berbeda, gunakan galat handlingand Anda dapat kembali salah satu dari nilai bawaan galat Excel (xlErrDiv0, xlErrNA, xlErrName, xlErrNull, xlErrNum, xlErrRefatau xlErrValue.)
  9. Pilih sel E1:G5. Ketik rumus berikut:
    =ReturnArray(5,3)
    dan tekan CTRL + SHIFT + ENTER untuk memasukkan rumus sebagai arrayformula. Fungsi gulung balik 5 x 3 larik nilai yang unik.
  10. Masukkan nomor sel I1:J3. Di sel I4, ketik rumus thefollowing:
    =GetArray(I1:J3)
    Rumus akan gulung balik hasil yang mirip dengan "jumlah ini n"(di mana n adalah jumlah nomor I1:J3). Pada I5, ketik followingformula:
    =GetArray({1,2,3,4})
    dan tekan ENTER. Rumus gulung balik "jumlah adalah 10".

Fungsi mengikat

Binding untuk fungsi otomatisasi tambah pasang adalah di akhir fungsi pengikatan didahulukan. Jika Anda memiliki fungsi Anda otomatisasi tambah pasang dengan nama yang sama sebagai Excel built-in fungsi, fungsi bawaan Excel akan diutamakan. Fungsi VBA di buku kerja dan rutin tambah pasang (.xla) juga diutamakan daripada otomatisasi tambah pasang fungsi. Ketika Anda membuat fungsi Anda sendiri untuk digunakan di Excel, disarankan bahwa Anda tidak memberi nama fungsi yang telah digunakan oleh fungsi Excel internal.

Khususnya memanggil fungsi otomatisasi tambah pasang, Anda dapat Telusuri fungsi dalam formula menggunakan sintaks seperti namaserver. ClassName. FunctionName (...). Misalnya, untuk memanggil fungsi Add1 dalam contoh, Anda dapat menggunakan berikut ini:
=AutomationAddin.XLFunctions.Add1(1,2)
Anda hanya dapat memanggil metode tingkat atas dan properti Anda otomatisasi Add-in; Anda tidak dapat berjalan di model objek Anda tambah pasang untuk memanggil fungsi yang bukan pada tingkat atas.

Fungsi fluktuatif

Fungsi fluktuatif adalah salah satu yang recalculates setiap kali perubahan yang dibuat untuk setiap sel pada lembar kerja, tanpa memperhatikan apakah atau tidak berubah sel adalah dependensi untuk fungsi. Salah satu contoh dari fungsi fluktuatif yang internal untuk Excel adalah fungsi RAND() . Fungsi fluktuatif juga hitung ulang saat Anda tekan F9.

Untuk membuat fungsi di otomatisasi tambah pasang tidak stabil, memanggil metode fluktuatif objek Excel aplikasi . Sebagai contoh kode di atas menunjukkan, referensi ke objek Excel aplikasi dapat diperoleh selama OnConnection acara tambah pasang. Fungsi TickCount sampel otomatisasi tambah pasang tidak stabil. Perhatikan bahwa jika Anda membuat perubahan apa pun sel pada lembar kerja atau Anda tekan F9, sel yang berisi rumus berikut:
=TickCount()
akan menghitung ulang.

Otomatisasi tambah pasang dan tambah pasang Manager

Di tambah pasang Manager, nilai asali dari HKEY_CLASSES_ROOT\<ProgID> bukti kunci registri untuk tambah pasang otomatisasi digunakan untuk tambah pasang dengan nama. Perhatikan bahwa ada properti tidak ada dalam Visual Basic antarmuka pengguna (UI) yang akan menetapkan nilai asali dari bukti kunci ini; Namun, bukti kunci ini dapat diubah secara manual di Penyunting registri atau selama penginstalan untuk tambah pasang.

Deskripsi untuk otomatisasi tambah pasang di tambah pasang manajer akan selalu tambah pasang di ProgID; tidak ada cara untuk mengubah perilaku ini.
</ProgID>

Otomatisasi tambah pasang dan Wisaya fungsi

Setiap otomatisasi tambah pasang memiliki kategori sendiri Wizard fungsi Excel. Nama kategori adalah ProgID untuk Add-in; Anda tidak dapat menentukan nama kategori berbeda untuk otomatisasi tambah pasang fungsi. Selain itu, tidak ada cara untuk menentukan fungsi deskripsi, Deskripsi argumen, atau bantuan untuk otomatisasi tambah pasang fungsi dalam Wizard fungsi.
Referensi
Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
256624 Cara menggunakan fungsi COM tambah pasang sebagai fungsi Lembar Kerja Excel
Untuk informasi lebih lanjut, lihat situs web Microsoft berikut ini:

(c) Microsoft Corporation 2001, Semua hak dilindungi undang-undang. Kontribusi oleh Lori B. Turner, Microsoft Corporation.

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 285337 - Tinjauan Terakhir: 12/05/2015 23:52:48 - Revisi: 3.0

Microsoft Visual Basic 6.0 Professional Edition, Microsoft Excel 2002 Standard Edition

  • kbnosurvey kbarchive kbhowto kbmt KB285337 KbMtid
Tanggapan