- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,954
Trước đây có người từng thắc mắc việc đưa biểu đồ lên UserForm
Tham khảo trang này:
http://www.j-walk.com/ss/excel/tips/tip66.htm
Thấy rằng cách người ta làm là Export Chart ra thành 1 file hình trên đĩa cứng rồi Load hình lên Image của UserForm
Tuy nhiên, từ ngày tôi nghiên cứu về vấn đề Load Shape từ sheet lên form, tôi nhận thấy tuy code loại này có dài hơn nhưng việc áp dụng lại vô cùng đơn giản. Tất cả công việc của ta là xác định đâu là object mà ta muốn load lên UserForm (bất kể object ấy là chart hay là cái gì)
Đại khái code thế này:
Trong code có dùng hàm PictureFromObject nhưng ta cũng không cần quan tâm đến, chỉ biết cách áp dụng là được
Lưu ý: Hàm PictureFromObject không biến object thành file hình trên đĩa cứng mà chỉ convert nó thành dạng IPictureDisp (và Image lại là control có thể tương tác được với dạng IPictureDisp này)
----------------------------------
Mời tham khảo file đính kèm
(với code dạng này, bạn có thể đưa bất cứ thứ "hằm bà lằng" gì lên UserForm cũng không có vấn đề)
Tham khảo trang này:
http://www.j-walk.com/ss/excel/tips/tip66.htm
Thấy rằng cách người ta làm là Export Chart ra thành 1 file hình trên đĩa cứng rồi Load hình lên Image của UserForm
Tuy nhiên, từ ngày tôi nghiên cứu về vấn đề Load Shape từ sheet lên form, tôi nhận thấy tuy code loại này có dài hơn nhưng việc áp dụng lại vô cùng đơn giản. Tất cả công việc của ta là xác định đâu là object mà ta muốn load lên UserForm (bất kể object ấy là chart hay là cái gì)
Đại khái code thế này:
Mã:
Private Sub ComboBox1_Change()
Dim obj As ChartObject, IPic As IPictureDisp
Sheets("Charts").Range("F1").Value = ComboBox1
Set obj = Sheets("Charts").ChartObjects(1)
Set IPic = [COLOR=#ff0000]PictureFromObject(obj)[/COLOR]
Image1.Picture = IPic
End Sub
Lưu ý: Hàm PictureFromObject không biến object thành file hình trên đĩa cứng mà chỉ convert nó thành dạng IPictureDisp (và Image lại là control có thể tương tác được với dạng IPictureDisp này)
----------------------------------
Mời tham khảo file đính kèm
(với code dạng này, bạn có thể đưa bất cứ thứ "hằm bà lằng" gì lên UserForm cũng không có vấn đề)