thaipv
XA Project
- Tham gia
- 18/5/14
- Bài viết
- 158
- Được thích
- 239
- Giới tính
- Nam
Hiện nay tôi đang nghiên cứu cách tạo highlight (tô sáng / làm nổi bật những ô được chọn) bằng UserForm. Thuật toán vắn tắt như sau :
1. Hiện UserForm (đặt tên là frmHighlight) có kích thước và vị trí bằng cửa sổ của Sheet hiện hành (ActiveSheet / của sổ EXCEL7)
2. Cắt frmHighlight sao cho làm nổi bật vùng đang được chọn (Application.Selection).
3. Làm trong suốt frmHighlight.
4. Khi người dùng click chuột trái hay chuột phải trên frmHighlight thì ta gửi sự kiện tương ứng đến Sheet hiện hành sao cho mọi thao tác trên frmHighlight giống như người dùng đang thao tác với Sheet hiện hành.
5. Dùng kỹ thuật hook (hoặc subclassing) để bắt sự kiện Sheet hiện hành cuộn, di chuyển, thay đổi kích thước... và định lại kích thước, vị trí của frmHighlight sao cho phù hợp.
Tuy nhiên, ở bước thứ 2 tôi chưa biết cách xác định Chiều cao và Chiều rộng của Outline và Heading (dòng tiêu đề của excel, các cột A, B, C, ... và các dòng 1, 2, 3...). Các bạn xem Sub Design trong frmHighlight, các biến x0 và y0. Bạn nào biết cách tính và các bạn có góp ý hay thảo luận gì thì trao đổi ở đây nhé.
Cách làm này giống với addin Kutools nha các bạn.
1. Hiện UserForm (đặt tên là frmHighlight) có kích thước và vị trí bằng cửa sổ của Sheet hiện hành (ActiveSheet / của sổ EXCEL7)
2. Cắt frmHighlight sao cho làm nổi bật vùng đang được chọn (Application.Selection).
3. Làm trong suốt frmHighlight.
4. Khi người dùng click chuột trái hay chuột phải trên frmHighlight thì ta gửi sự kiện tương ứng đến Sheet hiện hành sao cho mọi thao tác trên frmHighlight giống như người dùng đang thao tác với Sheet hiện hành.
5. Dùng kỹ thuật hook (hoặc subclassing) để bắt sự kiện Sheet hiện hành cuộn, di chuyển, thay đổi kích thước... và định lại kích thước, vị trí của frmHighlight sao cho phù hợp.
Tuy nhiên, ở bước thứ 2 tôi chưa biết cách xác định Chiều cao và Chiều rộng của Outline và Heading (dòng tiêu đề của excel, các cột A, B, C, ... và các dòng 1, 2, 3...). Các bạn xem Sub Design trong frmHighlight, các biến x0 và y0. Bạn nào biết cách tính và các bạn có góp ý hay thảo luận gì thì trao đổi ở đây nhé.
Cách làm này giống với addin Kutools nha các bạn.
File đính kèm
Lần chỉnh sửa cuối: