AI muốn lập trình DLL cho Excel và các loại bằng Delphi thì xem video này nhé!

Liên hệ QC

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,540
Được thích
9,970
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Lần chỉnh sửa cuối:

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,540
Được thích
9,970
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Code với trả két ... chi phí mất thời gian quá
kể từ ngày biết viết cái Hàm kiểu 365 trên VBA ... sau gần 2 năm mới chuyển nó vào Delphi thành công
ko thể ngờ được nó đơn giản lắm chỉ có trên 10 dòng code thôi ... viết 1 cái Hàm chung nhất gán bất cứ 1 Array nào vào là ok

code ngắn lắm nó như sau.. Trong File có sử dụng code của @ThangCuAnh = Cảm ơn lắm lắm
Mã:
Rem https://youtu.be/XICP6C0yJQc
Declare PtrSafe Function ResizeArrayA Lib "MyLibrary64.dll" (ByVal arr As Variant) As Variant
Rem ==========
Function TransArray(ByVal rngIn As Range) As Variant
    Dim arr As Variant
    arr = rngIn.value
    TransArray = ResizeArrayA(arr)
End Function
Rem ==========
Function GetSQLArray(ByVal aPath As Variant, ByVal SQL As Variant) As Variant
    Dim hr As Long
    Dim arr As Variant, ArrDest As Variant
    Dim VB As New MyLibrary.VBLib                                   ''Check References ...MyLibrary64.dll
    arr = DataBaseToArray(aPath, SQL)
    Rem hr = FastTransArrayDirect(arr, ArrDest)                     ''Su dung ham API
    ArrDest = VB.TransposeArray(arr)                                ''Su dung COM
    If IsArray(ArrDest) Then GetSQLArray = ResizeArrayA(ArrDest)
End Function
Rem ========== Tao 1 mang voi so dong va cot tren Range
Function TaoArr(dong As Long, cot As Long) As Variant
    Rem Cu Phap: =TaoArr(10,10) Tao ra 10 dong x 10 cot
    Dim i As Long, J As Long
    ReDim arr(1 To dong, 1 To cot)
    For i = 1 To dong
        For J = 1 To cot
            arr(i, J) = i & "_" & J
        Next
    Next
    TaoArr = ResizeArrayA(arr)
End Function
Rem ==========
Video Demos
Liên kết: https://youtu.be/XICP6C0yJQc

Nếu không có nội dung bạn viết ở đây cùng video demo trên Youtube tại đó thi chắc tôi không quan tâm hàm của bạn làm gì cả. Điều duy nhất tôi chỉ muốn test nó làm đúng như video đó không mà thôi. Nếu không có hay có sự nhầm lẫn thì ta không nói nữa nhé.
 
Upvote 0

Kiều Mạnh

IIIIIIIIIIIIIIIII
Tham gia
9/6/12
Bài viết
4,707
Được thích
3,361
Giới tính
Nam
Mạnh cũng dễ thương lắm ... xong là thôi ... nghe lời cái anh kia cũng sẻ bớt bớt lại ... sẻ ko làm tổn thương ai nữa
trừ khi thấy nhột nhột thì cũng ấy thôi :p
 
Upvote 0

Kiều Mạnh

IIIIIIIIIIIIIIIII
Tham gia
9/6/12
Bài viết
4,707
Được thích
3,361
Giới tính
Nam
Gửi @Nguyễn Duy Tuân .... cái này là thiện ý vui vẻ he .... ko ai hack với hóc ở đây cả

nên làm thành sách và chỉ dẫn cái DLL như sau ... cho công chúng biết và cách sử dụng nó .... nếu thấy bài này thừa thì cho vào thùng RÁC ko sao cả he

1640401902563.png

Tải File đính kèm và xem
 

File đính kèm

  • Atools.rar
    157.5 KB · Đọc: 14
Upvote 0

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,540
Được thích
9,970
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Gửi @Nguyễn Duy Tuân .... cái này là thiện ý vui vẻ he .... ko ai hack với hóc ở đây cả

nên làm thành sách và chỉ dẫn cái DLL như sau ... cho công chúng biết và cách sử dụng nó .... nếu thấy bài này thừa thì cho vào thùng RÁC ko sao cả he

View attachment 270743

Tải File đính kèm và xem

Tôi cũng muốn viết hướng dẫn chi tiết theo từng thành phần của các class trong addinatools.dll mà chưa làm được, phần cũng là chứ biết tools hỗ trợ. Hiện nay tôi chỉ tranh thủ tạo các clip hỗ trợ qua các ví dụ điển hình thôi còn tài liệu PDF hay viết lên website chưa làm được chi tiết.
Nếu có thể bạn chia sẻ tool để Reference như bạn làm thì việc tôi viết tài liệu sẽ đỡ mất nhiều time hơn.
 
Upvote 0

giaiphap

==(^o^)==
Tham gia
12/3/07
Bài viết
5,511
Được thích
5,573
Donate (Momo)
Donate
Giới tính
Nam
Các anh cho em hỏi chút về tham số mảng truyền từ VBA sang Delphi.
Bên Delphi em viết hàm TestArray như sau:
Mã:
function TestArray(Arr: array of integer): integer ; stdcall;
    var
        x, Tong : integer;
    begin
      Tong:=0;
        for x:= 0 to length(Arr)-1 do begin
            Tong:=Tong + Arr[x];
        end;
        Result := Tong;
    end;
Tham số của em là mảng số nguyên (Ở đây em làm ví dụ đơn giản để hiểu cách truyền tham số mảng), giờ bên VBA em viết lệnh như sau:
Mã:
Declare Function TestArray Lib "TestDLL.DLL" (ByVal Arr As Variant) As Integer

Public Sub Test()
    MsgBox TestArray(Array(1, 3))
End Sub
Nhưng lại không chạy được, Excel tắt luôn. Vậy code của em truyền như thế nào để delphi hiêu tham số Array, cảm ơn các anh trước.
 
Upvote 0
Web KT

Group

DIỄN ĐÀN GIẢI PHÁP EXCEL
Top Bottom