NetForVBA: Thư viện .NET Framework dùng cho VBA

Liên hệ QC

thuanfun

Thành viên chính thức
Tham gia
7/2/09
Bài viết
83
Được thích
92
Giới tính
Nam
Chào các bác!

Em mới mày mò tìm ra cách sử dụng được các đối tượng .NET Framework trong lập trình VBA nên cho ra đời thư viện NetForVBA.
NetForVBA cung cấp cho code VBA một phương pháp để tận dụng sức mạnh của .NET Framework vào ứng dụng VBA của mình.
Các đối tượng được khai báo, xử lý giao diện, sự kiện, ... hoàn toàn bằng code VBA.

Hình dưới là Form có tên class là dnForm, so với VBA UserForm thì dnForm có nhiều điểm mạnh kế thừa từ .NET như có sẵn icon, các nút minimum, maximum, thay đổi kích thước bằng kéo chuột, … và dnForm có thể chứa tất cả các control thông thường của .NET , đặc biệt là ListView, DataGridView, DateTimePicker, MonthCalendar, ToolStrip, ContextMenuStrip, WebBrowser… thông qua các đối tượng dn*** tương ứng (dnListView, …).

Các bác tải về ở đây ạ! Download NetForVBA

Thư viện em mới phát triển nên chắc chắn còn nhiều thiếu sót, rất mong nhận được nhiều ý kiến góp ý của các bác.
Em xin cảm ơn!

PS: Em sẽ viết bài hướng dẫn code cụ thể dần dần phía dưới các bác nhé!

dnForm.png
 
Lần chỉnh sửa cuối:
Free thì free xác định ngay từ đầu, hoặc phải nói rõ: có 2 bản, bản free và bản shareware.
Cung cấp cho mọi người trên diễn đàn test thì cung cấp bản free, bỏ frmLicense và frmPurchase đi.
Không pack/protect = .NET Reactor, dễ bị các AV nhận diện là mèo.
Đã free và trong sáng thì không có gì phải protect assembly dll của mình cả. Shareware cũng vậy.
Sign assembly của mình đi.
Cả free hay shareware đều phải có file license .txt của MIT đi kèm.
Góp vài ngu ý vậy thôi, đừng giận, làm tốt đấy.
PS: Cố gắng giữ cho cái tâm trong sáng,đừng vì tiền, lợi nhuận mà gắn gì bậy bạ vào đấy. Bị soi, rờ ra hết đấy.
Cứ nhớ: trên đời, muốn người ta không biết thì đừng làm.
À sẵn đây nhắc mấy cậu nhóc choi choi hay những người mới học Delphi chưa tới đâu đã lo tập tành viết RAT, mèo rồi nhé. Down mấy cái code vớ vẫn trên mạng, Github về gắn vô chế tá lã cho chạy mà không có hiểu, quậy quá lung tung. Có ngày CA, C50 nó mò tới tận nhà mời đi uống trà, mặc áo Juventus miễn phí đấy.

Cảm ơn bác ThangCuAnh đã xem xét và có những góp ý!

# Như trên em đã nhấn mạnh Lib của em không miễn phí. Em triển khai theo mô hình Freemium, tức là miễn phí tính năng cơ bản và thu phí tính năng cao cấp. Các phần mềm Skype, LinkedIn, Spotify, Candy Crush Saga cũng triển khai (một phần/hoặc toàn bộ) dạng Freemium.

# Trong mô hình này không tách làm 2 bản Free (hoặc demo, trial) và trả phí mà chỉ có 1 phiên bản chung. Giống như bác chơi game online thường là miễn phí, lúc nào cần thăng level nhanh hơn, nhàn hơn thì bỏ tiền vào mua đồ game vậy.

# Mục tiêu rõ ràng của em là tạo một sản phẩm phục vụ tốt cho số đông miễn phí và thêm vào những tính năng cao cấp hơn để hi vọng có người mua. Gắn code bẩn vào kiếm tiền sao được bác.

# Vì là sản phẩm sẽ dùng để kiếm tiền nên em có protect để giảm bớt rủi ro cạnh tranh không đáng có (tất nhiên em hiểu với những người chuyên nghiệp như bác thì protect bằng không).

Em rất mong nhận được thêm nhiều ý kiến đóng góp từ những người am hiểu như bác!
Cảm ơn bác ThangCuAnh ! :D
 
Lần chỉnh sửa cuối:
Upvote 0
Mọi người cho em hỏi, giờ tháo cái thư viện NetForVBA này thì làm sao ạ.
 
Upvote 0
Mọi người cho em hỏi, giờ tháo cái thư viện NetForVBA này thì làm sao ạ.
Hỏi khổ chủ của nó là được
Tôi thì không dùng đồ miễn phí 1 phần, bị khóa bị mã hóa, ai biết ẩn trong nó là những gì
Hoặc là dùng bản thương mại (ràng buộc khổ chủ), hoặc là bản mở hoàn toàn.
 
Upvote 0
Mọi người cho em hỏi, giờ tháo cái thư viện NetForVBA này thì làm sao ạ.

Em gửi bác file *.bat để gỡ cài đặt ạ. Bác tải phiên bản đầu nên chưa có file này, các phiên bản sau em đã bổ sung.
Bài đã được tự động gộp:
 

File đính kèm

  • Gỡ cài đặt - Uninstall.rar
    275 bytes · Đọc: 13
Lần chỉnh sửa cuối:
Upvote 0
Gửi các bác một ví dụ đơn giản về Form, giúp tạo bảng chọn ngày tháng ngay dưới Cell.

Các bước thực hiện gồm:
1. Tạo một dnForm mới, và ẩn form title, ẩn không cho hiện dưới TaskBar
Mã:
Dim picker As New dnForm
picker.FormBorderStyle = dnFormBorderStyle_None
picker.ShowInTaskbar = False

2. Thêm control dnMonthCalendar
Mã:
Dim mca As New dnMonthCalendar
mca.Name = "mca"
mca.regEvent_DateSelected ThisWorkbook, "date_DateSelected"
picker.AddControl mca, 0, 0

3. Hiển thị ngay dưới tọa độ của cell (dùng hàm app.CellPosition(cell) để lấy tọa độ cell) nếu cell có định dạng ngày

MonthCalendar.png


Để chạy được ví dụ này các bác cần tải lại thư viện nhé. http://netforvba.com/Downloads
 

File đính kèm

  • floating-date-picker-with-NetForVBA.xlsm
    21.5 KB · Đọc: 5
Upvote 0
Xin lỗi bác file trên em copy nhầm phiên bản excel. Bác thử lại với file dưới đây, vào các thư mục:
#1. Thư mục cài đặt NetForVBA
#2. (Thư mục cài đặt office)\Office16\DCF (C:\Program Files (x86)\Microsoft Office\Office16\DCF\ hoặc C:\Program Files\Microsoft Office\Office16\DCF\ )

Đường dẫn thư mục của bác em thấy có chữ root (C:\Program Files (x86)\Microsoft Office\root\Office16\DCF) không biết có được ko. Bác thử tạo đường dẫn không có chữ root xem sao. Không được nữa thì bác ném vào C:\Windows\System32 hoặc C:\Windows\SysWOW64 thử thế nào.

Nếu vẫn không được thì bác vào Control Panel để, chuột phải vào Office để Add or Remove Features xem có bị lược bỏ các thành phần hỗ trợ không.

Office-add-or-remove-features.png
Mình đã làm hết các cách theo hướng dẫn của bạn nhưng vẫn không được

1577167868778.png
 
Upvote 0
Sao mình tháo không được bạn ơi, bạn chỉ mình cặn kẻ một tí.
Mình làm nó hiện vầy nè
Net.png
 
Upvote 0

File đính kèm

  • NetForVBA_CaiDat_GoCaiDat.zip
    778 bytes · Đọc: 13
Upvote 0
Copy file gỡ cài đặt vào trong cái folder "NetForVBA" (cái folder nào chứa cái NetForVBA.DLL) đấy rồi chạy thôi.
Mình tìm không thấy có NetForVBA trong PC, nhưng trong Reference của Excel lại có:
NetForVBA.png
Bài đã được tự động gộp:

Bác thử lại với file gỡ cài đặt em gửi sau có được không nhé!
Mình tải và chạy cũng không được.
 
Upvote 0
Upvote 0
Nó trong C:\Users\DMQ\Downloads\NetForVBA\NetForVBA.tlb
Mình đã xóa trong Downloads luôn rồi mà vẫn còn.
 
Upvote 0
Mình đã đưa vào Downloads và chạy gỡ cài đặt vẫn không xóa được.
Hinh1.png
 
Upvote 0
Mình đã đưa vào Downloads và chạy gỡ cài đặt vẫn không xóa được.
View attachment 230456

Bác tải lại cho có đầy đủ thư mục NetForVBA và các file bên trong.
Bằng cách tải lại file ZIP cài đặt https://netforvba.com/NetForVBA.zip vào thư mục Downloads của bác.
Sau đó giải nén bác sẽ có đúng thư mục: C:\Users\DMQ\Downloads\NetForVBA\ và các file bên trong.
Bác vào thư mục NetForVBA đó, click phải chuột vào file "Gỡ cài đặt - Uninstall" và chọn "Run as administrator".

Bác thử xem có được không ạ.
 
Upvote 0
Mình làm đúng các bước của bạn: 1/đã có thư mục NetForVBA trong Downloads
1/1.png
2 mở thư mục NetForVBA-> phải chuột vào gỡ cài đặt..->Run as Admin
2.png
3/Nhưng lại chưa được
3.png
 
Upvote 0
Mình làm đúng các bước của bạn: 1/đã có thư mục NetForVBA trong Downloads
1/View attachment 230457
2 mở thư mục NetForVBA-> phải chuột vào gỡ cài đặt..->Run as Admin
View attachment 230458
3/Nhưng lại chưa được
View attachment 230459

Em test thì khi thư mục lúc cài đặt mà khác với thư mục lúc gỡ cài đặt thì nó sẽ ra thông báo lỗi này.
Bác xem lại trong References của Excel xem có nhầm lẫn gì không ạ.

VD: có thể bác giải nén ra C:\Users\DMQ\Downloads\NetForVBA\NetForVBA\
 
Upvote 0
Web KT
Back
Top Bottom