Chia sẻ ControlForOffice - Bộ công cụ điều khiển Office/Excel

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,649
Được thích
10,138
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Gửi tặng các bạn bộ công cụ ControlForOffice.

MsgBox.jpg


MsgBoxW.jpg


MsgBoxTimer.jpg


MsgBoxTimerProgress.jpg


MsgBoxTimerProgressCallback.jpg


ChooseLan.jpg


Rename.jpg


CFO2.0.jpg


IPBTimer.jpg


IPBCallBFN.jpg



Download
. Phiên bản 2.0.4, cập nhật ngày 25/07/08.
 
Lần chỉnh sửa cuối:
Mã:
[INDENT]StartHookMsgBox
MsgBoxW
MsgBoxTimer
CallbackTimerProc 

Type TInputStruct[/INDENT]

àh, các hàm trên đã được cải tiến như thế nào vậy TuanVNUNI, mình thấy hàm MsgboxW đâu khác gì so với cái cũ đâu.
Thanks

Mã:
Declare Sub StartHookMsgBox Lib "ControlForOffice.ocx" (Optional ByVal hwnd As Long = 0, _
                                                        Optional ByVal StrInputType As StrInput = strTCVN3, _
                                                        Optional ByVal UseButtonTextVBA As Boolean = False, _
                                                        Optional ByVal FORECOLOR As Long = 0, _
                                                        Optional ByVal BackColor As Long = 0, _
                                                        Optional ByVal hFontMSG As Long = 0)

Declare Function MsgBoxW Lib "ControlForOffice.ocx" (ByVal Msg As Variant, _
                                                    Optional ByVal uType As VbMsgBoxStyle = vbOKOnly, _
                                                    Optional ByVal Caption As Variant = vbNullString, _
                                                    Optional ByVal StrInputType As StrInput = strTCVN3, _
                                                    Optional ByVal FORECOLOR As Long = 0, _
                                                    Optional ByVal BackColor As Long = 0, _
                                                    Optional ByVal hFontMSG As Long = 0) As VbMsgBoxResult

Declare Function MsgBoxTimer Lib "ControlForOffice.ocx" (ByRef TIMERSTRUCT As MsgTimerStruct, _
                                                        ByVal Msg As Variant, _
                                                        Optional ByVal uType As VbMsgBoxStyle = vbOKOnly, _
                                                        Optional ByVal Caption As Variant = vbNullString, _
                                                        Optional ByVal StrInputType As StrInput = strTCVN3, _
                                                        Optional ByVal FORECOLOR As Long = 0, _
                                                        Optional ByVal BackColor As Long = 0, _
                                                        Optional ByVal hFontMSG As Long = 0) As VbMsgBoxResult

Bạn để ý 3 tham số cuối của các hàm, cho phép thay đổi màu chữ và màu nền và font chữ của hộp thoại.
 
Upvote 0
hix, bác TuanVNUNI ơi mình vào trang chủ của bác nhưng mình tìm kô thấy phần mềm cắt ảnh theo pixel như bác giới thiệu ạh. Bác vui lòng cho em cái link nhé.Và phần BSTaskPane PictureViewer không chạy được. Nó chỉ nháy màn hình 1 cái rồi không có phản ứng gì nữa.
Xin cám ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
ControlForOffice v2.0.3, ngày 22/07/08

Xin gửi tới các bạn phiên bản mới

ControlForOffice
v2.0.3, ngày 22/07/08

Thêm mới và sửa đổi trong phiên bản mới:

+ Thêm : Hàm InputBox & MsgBox chạy với cấu trúc tính TimerStruct, khi chạy hàm "callback function" cho phép thay đổi văn bản (Text) của hộp thoại, các thong báo và nút lệnh
+ Thêm : Hàm InputBox & MsgBox cho phép chạy Timer liên tục nếu khai báo TimerDuration = -1 (biến này nếu>0 thì sẽ giới hạn về thời gian).
+ Thêm : Hàm StartHookMsgBoxEx, MsgBoxEx với kiểu dữ liệu BSMsgBoxParams hỗ trợ cho người dùng giải pháp tổng thể với MsgBox.
+ Thêm: Hàm MsgBox cho phép người dùng thay đổi ảnh (icon) của hộp thoại.
+ Sửa :một vài lỗi liên quan tới đối tượng BSTaskPanes.ActiveTaskPane, BSTaskPane, cho phép nhận vùng Client của Task Pane thông qua thuộc tính BSTaskPane.Client (phiên bản cũ lỗi với Office 2003 và các phiên bản thấp hơn).
+ Thêm : Bổ sung hướng dẫn chi tiết về việc sử dụng ControlForOffice cho ứng dụng của người dùng, thêm nhiều ví dụ cụ thể cùng mã nguồn. Hỗ trợ việc xem ví dụ và đọc code nhanh.
+ Sửa sửa lỗi xung đột với PM bộ gõ Unikey.

MsgBoxEx.jpg


ChangeText.jpg


Với phiên bản mới này, thêm một số các hàm:
Mã:
[INDENT]
Type BSMsgBoxParams
    hIcon                  As Variant 'HICON or Icon Name or Path file (*.ico) 'v2.0.3
[COLOR="SeaGreen"]        '.hIcon = ExtractIcon(GetHInstance, Application.Path & "\Excel.exe", 0)
        '.hIcon = ExtractIcon(GetHInstance, GetSysDir() & "\shell32.dll", 5)
        '.hIcon = ThisWorkbook.Path & "\ICON\Favorites.ico"[/COLOR]
    BACKCOLOR             As Long
    FORECOLOR             As Long
    hFontMsg              As Long
    InputType             As StrInput
    TimerStruct           As MsgTimerStruct
End Type

Declare Sub StartHookMsgBoxEx Lib "ControlForOffice.ocx" (ByRef MsgParams As BSMsgBoxParams)
Declare Function MsgBoxEx Lib "ControlForOffice.ocx" (ByVal Msg As Variant, Optional ByVal uType As VbMsgBoxStyle = vbOKOnly, Optional ByVal Caption As Variant = vbNullString) As VbMsgBoxResult

[COLOR="SeaGreen"]'Cho phép thay đổi ảnh của MsgBox trong khi chạy hàm callback function.[/COLOR]
Declare Function ChangeMsgIcon Lib "ControlForOffice.ocx" (ByVal Icon As Variant, ByVal HwndMsg As Long) As Long

[COLOR="SeaGreen"]'Cho phép thay đổi nội dung thông báo, nút lệnh, tiêu đề của MsgBox & InputBox trong khi chạy hàm callback function.[/COLOR]
Declare Function SetCtrlTextW Lib "ControlForOffice.ocx" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Boolean

[/INDENT]

Các bạn có thể download tại trang đầu.
 
Lần chỉnh sửa cuối:
Upvote 0
àh, bác TUANVNUNI ơi, bác có ví dụ nào để ứng dụng cái progressbar trên form mà thời gian chạy của bar ứng với thời gian code chạy không? Xin vui lòng giúp đỡ.Và controforOffice của bác có hỗ trợ callback time trên form không ạh? Nếu được thì làm như thế nào?
Xin chân thành cám ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
àh, bác TUANVNUNI ơi, bác có ví dụ nào để ứng dụng cái progressbar trên form mà thời gian chạy của bar ứng với thời gian code chạy không? Xin vui lòng giúp đỡ.Và controforOffice của bác có hỗ trợ callback time trên form không ạh? Nếu được thì làm như thế nào?
Xin chân thành cám ơn.


Tôi gửi bạn file ví dụ, hy vọng bạn sẽ sử dụng tốt ControlForOffice.
 

File đính kèm

  • ProgressAnhTimer.zip
    13.4 KB · Đọc: 210
Upvote 0
Bác TUANVNUNI ơi, khi sử dụng file controlForOffice của bác bị lỗi không hiển thị được bảng màu trong VBA.Bác xem lại giúp nhé, hồi trước cứ tưởng máy mình bị lỗi nhưng hôm nay mới ghost lại máy, trước khi xài control for office thì kô sao, nhưng now xài file .dll của bác thị bị hiện tượng trên.Mở 1 file mới cũng bị hiện tượng trên (đã restart lại máy luôn).Máy mình xài WINXP rồi nhé
Thanks
Xem hình góc trái, bảng Pallete

loi1jp4.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Lỗi trên không phải do ControlForOffice! Là do bạn đã thêm file EXCEL.exe.manifest vào trong đường dẫn "C:\Program Files\Microsoft Office\OFFICE11" để dùng Theme XP trong Excel 2003 (11).

Vậy nếu bạn không muốn dùng Theme XP thì bạn hãy xóa file EXCEL.exe.manifest trong đường dẫn "C:\Program Files\Microsoft Office\OFFICE11" đi.

Trước tới giờ, khi lập trình tôi hay dùng màu ở tab System nên cũng quên không nhắc người dùng với vấn đề của EXCEL.exe.manifest.
 
Upvote 0
Ok, đành tạm thời không bỏ file manifest vào thôi. Khi nào không cần đến các pallete nữa thì cho vào lại. Thanks bác nhé. Nếu được thì bác có thể làm cho người dùng vừa xài đc theme XP mà lại xài đc Pallete luôn thì hay quá, vỉ màu trong system có vẻ hơi đơn điệu!
 
Upvote 0
hix, bác ơi giúp em với, không biết em làm gì sau khi ghost lại máy thì vào file progressAnhTimer của bác khi click vào đọc số thì nó cứ hiện bảng ActiveX component can't create object.Dù mình đã chọn trong tools\reference\micrsoft ActiveX Data Objects 2.8 Library.
Thanks
 
Upvote 0
hix, bác ơi giúp em với, không biết em làm gì sau khi ghost lại máy thì vào file progressAnhTimer của bác khi click vào đọc số thì nó cứ hiện bảng ActiveX component can't create object.Dù mình đã chọn trong tools\reference\micrsoft ActiveX Data Objects 2.8 Library.
Thanks

Bạn phải chạy file "Install.bat" lần đầu tiên để đăng ký các đối tượng cho WINDOWS.
 
Upvote 0
Thanks bác. Àh, cho phép mình hỏi liệu bác có ý định triển khai tạo menu bằng tiếng việt trên form tích hợp vào controlForOffice không ạh? Nếu có thì sẽ tuyệt vời hơn.
 
Upvote 0
Thanks bác. Àh, cho phép mình hỏi liệu bác có ý định triển khai tạo menu bằng tiếng việt trên form tích hợp vào controlForOffice không ạh? Nếu có thì sẽ tuyệt vời hơn.

Vụ menu trên Userform này mình thấy cũng khó và phải mất nhiều thời gian, cuối năm nếu tôi thu xếp được thời gian thì có thể sẽ bắt tay vào làm.
 
Lần chỉnh sửa cuối:
Upvote 0
Tuân ơi, hình như dạo này các ứng dụng trên bộ Office của anh nó lại có vấn đề về gõ tiếng Việt.

Em thử vào chức năng Find & Replace (Ctrl + H) và gõ chữ Hương xem nó có thành "Hưươơng" không nhé (hầu hết bị ở các Dialog box và hình như 1 số nơi khác anh quên mất rồi).

Anh nghi vụ này liên quan tới A-Excel hay OfficeControl gì đó của em lắm.
 
Upvote 0
Tuân ơi, hình như dạo này các ứng dụng trên bộ Office của anh nó lại có vấn đề về gõ tiếng Việt.

Em thử vào chức năng Find & Replace (Ctrl + H) và gõ chữ Hương xem nó có thành "Hưươơng" không nhé (hầu hết bị ở các Dialog box và hình như 1 số nơi khác anh quên mất rồi).

Anh nghi vụ này liên quan tới A-Excel hay OfficeControl gì đó của em lắm.

Em đã kiểm tra lại và thấy đúng bị vậy với Excel: Dialog có EditBox ; UserForm.TextBox (FM20.DLL). Tất cả lỗi này chỉ xảy ra với PM bộ gõ UniKey +-+-+-+, với VietKey thì không sao. Rất có thể UniKey sử dụng

Mã:
SetWindowsHookExW(WH_GETMESSAGE, GetMessageProc, 0, GetCurrentThreadID);
Những lệnh xử lý trong hàm GetMessageProc có lẽ không được toàn vẹn?

Em đã sửa được các lỗi trên rồi. Em đang đóng gói lại A-Excel, A-Tools vì chúng đều dùng ControlForOffice. Trong ngày hôm nay em sẽ gửi phiên bản mới.
 
Upvote 0
ControlForOffice v2.0.4 - Ngày 25/07/08

Xin gửi tới các bạn phiên bản mới

ControlForOffice
v2.0.4, ngày 25/07/08

Thêm mới và sửa đổi trong phiên bản mới:
+ Sửa : Cho phép chạy Task Pane với sự kiện OnVisible với Excel XP, 2003 (phiên bản 2007 chạy đủ hết).

+ Sửa : lỗi không tương thích với phần mềm bộ gõ Unikey khi gõ chuỗi Unicode có dấu trong Excel: Dialog có EditBox; MSForms.TextBox; MSForms.ComboBox; ...các control trong thư viện FM20.DLL.
 
Upvote 0
ủa, sao post bài mà hình như bác TUANVNUNI quên attach file thì phải.Xem lại nhé bác
Thanks
 
Upvote 0
Web KT
Back
Top Bottom