Excel & VBA - Di mana kode yang mendasari fungsi?

4

Saya bertanya-tanya apakah ada di mana saja di Excel, atau online, yang dapat saya gunakan untuk melihat bagaimana fungsi di Excel bekerja.

Idenya adalah saya mulai belajar cara membuat UDF, dan melakukan berbagai hal di VBA, dan berpikir bahwa jika saya bisa melihat bagaimana Excel benar-benar dieksekusi Sum()misalnya, saya bisa belajar bagaimana membuat kode saya lebih ketat, mengambil lebih sedikit ruang, dll.

Pada dasarnya, di mana repositori untuk bagaimana fungsi bawaan Excel bekerja? Apakah itu tersedia?

Sunting: Saya mengerti bahwa formula dapat ditulis dalam bukan-VBA. Tidak apa-apa - Saya hanya ingin tahu apakah ada cara untuk melihatnya, bahasa apa pun yang mereka gunakan.

Sunting2: Ide keseluruhannya adalah saya sedang belajar C ++ / VBA / C #, dan ingin melihat fungsi "resmi" hanya untuk mempelajari cara kerjanya, dan melihat apakah ada cara untuk mempercepat kode. Fungsi OpenOffice juga bagus!

BruceWayne
sumber
1
Kode yang mendasari untuk fungsi-fungsi Excel bawaan tidak dalam VBA. Excel ditulis dalam C # dan / atau C ++.
Excellll
@Excellll - Apakah Anda tahu di mana saya dapat menemukan kode itu? Saya juga belajar C ++ jadi mungkin membantu juga!
BruceWayne
2
Ini bukan open source
Dave
1
@Dave - Saya takut itu :(
BruceWayne
1
Apakah Anda tertarik melihat kode sumber beberapa produk alternatif? Misalnya OpenOfiice Calc ?
miroxlav

Jawaban:

4

Microsoft Excel adalah produk sumber tertutup,
tetapi seperti yang Anda tunjukkan, kode sumber alternatif untuk Excel juga cukup.

Anda dapat memeriksa kode sumber dari OpenOffice Calc yang mirip Microsoft Excel (lihat screenshot).

Anda tidak perlu menginstal produk. Pada halaman unduhan , fokus ke bagian berlabel Sumber dan ambil arsip dengan ekstensi zip .

Di dalam arsip, lihat ke file aoo-4.1.2\main\sc\source\core\tool\interpr4.cxx
dan ada sekitar baris 3500 Anda dapat menemukan casepernyataan panjang yang menunjukkan panggilan fungsi internal untuk fungsi spreadsheet bawaan. Ini adalah titik awal Anda.

Kemudian Anda dapat mencari file sumber untuk implementasi fungsi-fungsi ini.

Semoga berhasil!

miroxlav
sumber
Basis kode LibreOffice secara substansial lebih baik sekarang IMHO. Lihat komitmen ini untuk penerapan berbagai fungsi Excel: cgit.freedesktop.org/libreoffice/core/log/…
phw
@phw - Begitu. Apakah Anda pikir ini juga alasan mengapa Anda memilih bahwa "jawabannya tidak berguna" (yaitu downvoted)? Atau bukan Anda? Dan apakah Anda dapat menemukan bahwa implementasi fungsi spreadsheet di Libre Office jauh lebih unggul daripada implementasinya di OpenOffice? Mungkin Anda bisa membagikan temuan Anda dalam jawaban terpisah.
miroxlav
Yah, mereka telah refactored seluruh cara kerja Calc dan memindahkan beberapa bagian ke perpustakaan eksternal (disebut MDDS). Mengingat OO.o tidak melakukan itu, itu memberi mereka keuntungan dalam buku saya. Ini adalah awal yang baik untuk menggali kode sumber: wiki.documentfoundation.org/Development/Code_Overview
phw
Saya menemukan beberapa di: cgit.freedesktop.org/libreoffice/core/tree/sc/source/core/tool dalam file interpr?.cxx.
Marius
1

Sebagai gantinya, saya mendesak Anda untuk memahami logika fungsi. Anda tahu apa Sumitu, yang seharusnya mudah bagi Anda untuk ditiru. Hal-hal yang Anda tidak tahu - suka vlookupatau stdevmemiliki semacam logika - apakah murni matematika atau operasional (suka transpose). Pelajari cara kerjanya dan rancang kode Anda berdasarkan logika.

Raystafarian
sumber
Terima kasih atas sarannya! Saya berencana melakukannya, mulai dengan matematika yang lebih sederhana kemudian pindah ke fungsi yang lebih "rumit".
BruceWayne