Tool xuất ảnh từ Excel

tuhocvba

Administrator
Thành viên BQT
Diễn đàn ta đặt ra vấn đề trình bày sao cho dễ hiểu là vấn đề đặc biệt quan trọng. Do đó, hình vẽ minh họa là cần thiết.
Nhận thấy có mấy vấn đề sau:
1. Biên soạn ảnh trên excel thao tác cứ lặp đi lặp lại, như là chọn màu cho chữ, font chữ, chọn cỡ chữ, chọn màu nền...
Điều này thật là phiền phức.
2. Khi biên soạn xong ảnh, muốn xóa hết các đối tượng đi cũng mất nhiều thời gian. Vì vậy mọi người thường xóa bỏ sheet đó đi và tạo ra sheet mới để biên tập lại hình ảnh trên đó. Việc này cũng không bất tiện lắm, nhưng bây giờ thao tác thiết định lại cho sheet trở nên phiền hà vô cùng.
3. Điều quan trọng nhất là, đối với hình minh họa trải rộng, có kích thước lớn, các bạn muốn chụp ảnh toàn bộ ảnh thì các bạn sẽ phải zoom excel cho nhỏ lại.
Bạn cần đăng nhập để thấy hình ảnh

Như vậy ảnh vô tình cũng sẽ bị thu nhỏ lại. Trong khi ta muốn bảo toàn kích cỡ ban đầu. Tóm lại cách chụp ảnh màn hình thì cho bạn kích thước ảnh lớn nhất bằng kích thước màn hình máy tính. Trong khi chúng ta có nhu cầu tạo ra ảnh lớn hơn.

Vì vậy tôi nảy ra ý tưởng, toàn bộ các đối tượng trong vùng Range do bạn chỉ định sẽ tạo thành bức ảnh mà kích cỡ giữ y nguyên. Tức là bây giờ bạn không cần zoom excel để thu nhỏ lại nhìn toàn màn hình và chụp ảnh màn hình nữa. Bạn chỉ cần chỉ định:
Bạn cần đăng nhập để thấy hình ảnh


Như vậy, ý tưởng về cơ bản đã rõ ràng.
1. Giao diện chương trình:
Bạn cần đăng nhập để thấy hình ảnh


Phần số 1: Tôi sẽ đặt các nút lệnh để tạo ra các đối tượng hay sử dụng nhất. Tạm thời, ở đây có hai nút bấm, để tạo ra hai loại ô thuyết minh với hướng mũi tên ngược nhau.
Sau này nếu thấy đối tượng nào hay được dùng, thì ta sẽ thêm vào sau. Việc này không khó khăn gì.
Phần số 2: Đây là nút xuất ảnh. Khi ấn vào nút Export Image, bạn sẽ chọn vùng Range để xuất ra ảnh, chẳng hạn là F8:N20.
Địa chỉ vùng Range sẽ được ghi vào ô E2, không có ý nghĩa cho code, chỉ là để bạn biết chúng ta đang làm việc với vùng Range này.
Phần số 3: Là nút xóa hết các đối tượng shape (gồm cả ảnh do bạn dán vào excel) có trên sheet này.
Phần số 4: Kết quả là ảnh được xuất ra, đường link ảnh dán ở ô F4. Tuy nhiên bạn cũng không cần copy đường link này. Mặc định chương trình đã copy đường link này rồi.
Phần số 5: Là link upload ảnh. Bạn click vào để upload.
Bạn cần đăng nhập để thấy hình ảnh

Phần số 6: Là nơi bạn biểu diễn các đối tượng cần thuyết minh trong khu vực này, rất rộng. Từ hàng thứ 8 trở xuống, và từ cột F trở đi.

2. Ví dụ thao tác với chương trình:
Ví dụ thao tác:
Bạn cần đăng nhập để thấy hình ảnh

Và đây là sản phẩm của thao tác ban nãy:

Bạn cần đăng nhập để thấy hình ảnh


3. Download:
Link:
 
B

bvtvba

Guest
Về phần xuất ảnh từ Rage (Export image from range), mình tham khảo được đoạn code này, không cần phải dùng sheet phụ:
Mã:
Sub Tester()
   

    Call SelectionToPicture("C:\3.jpg")
End Sub

Sub SelectionToPicture(nome)

'save location ( change if you want )
FName = nome

'copy selection and get size
Selection.CopyPicture xlScreen, xlBitmap
w = Selection.Width
h = Selection.Height



With ThisWorkbook.ActiveSheet

    .Activate

    Dim chtObj As ChartObject
Set chtObj = .ChartObjects.Add(100, 30, 400, 250)
    chtObj.Name = "TemporaryPictureChart"

    'resize obj to picture size
chtObj.Width = w
    chtObj.Height = h

    ActiveSheet.ChartObjects("TemporaryPictureChart").Activate
    ActiveChart.Paste

    ActiveChart.Export Filename:=FName, FilterName:="jpg"

    chtObj.Delete

End With
End Sub
Nguồn:
 

tuhocvba

Administrator
Thành viên BQT
Từ , tôi tạo luôn Addin dùng cho tiện:
Bạn cần đăng nhập để thấy hình ảnh

Link download:
 
Top