Lấy giá trị scale của ảnh excel

Liên hệ QC
Status
Không mở trả lời sau này.

xedapdo2006

Thành viên mới
Tham gia
11/11/13
Bài viết
22
Được thích
0
Các a.c pro cho e hỏi, trong vba có thể lấy được giá trị scale của ảnh trong excel. Em cảm ơn
 
Upvote 0
Ví dụ một ảnh có giá trị scale height là 124% và scale width là 136%, thì trong VBA có lệnh nào có thể lấy 2 giá trị này ra ko ạ
 
Upvote 0
Cách tốt nhất là em đính kèm tập tin có cái gọi là ảnh, vì có muôn vàn loại ảnh. Và em nói rõ là với cái ảnh cụ thể đó em cần đọc ra giá trị số cụ thể nào. Tôi chỉ nhắc em thế thôi.
 
Upvote 0
Em xin ghi nhận ý kiến, nhưng em đang cần 1 câu trả lời câu hỏi hơn là 1 ý kiến bắt lỗi nhỏ nhặt như vậy. Em cảm ơn
Thay cho ghi nhận thì bạn vào bài #1 và sửa những từ viết tắt nhé. Nhớ là bỏ từ pro đi vì nhiều người không chấp nhận từ đó.
Tiếp theo làm theo yêu cầu của tôi trong bài #7. Tức đính kèm tập tin mà trong đó có cái gọi là "ảnh". Với cái ảnh ví dụ đó bạn cho biết cái gọi là scale height và scale width là bao nhiêu - 2 con số cụ thể cho ảnh cụ thể. Và giải thích bạn đã lấy bằng tay thế nào, hoặc tính toán thế nào để ra 2 con số đó. Có như vậy người giúp mới hiểu ý bạn.

Mà bạn cần 2 con số đó chắc cho mục đích cụ thể chứ không phải để thỏa chí tò mò. Vậy mục đích đó là gì? Biết đâu có con đường khác dễ dàng hơn để đi tới cái đích đó. Vậy hãy nói ra nhé.
 
Upvote 0
Ví dụ một ảnh có giá trị scale height là 124% và scale width là 136%, thì trong VBA có lệnh nào có thể lấy 2 giá trị này ra ko ạ
Có thể trả về giá trị gốc, sau đó lấy giá trị đã resize chia cho giá trị gốc thì ra giá trị scale nha bạn. Bạn nên đưa file cụ thể lên.

Những góp ý của mọi người có khắt khe một chút nhưng điều đó tốt chứ không xấu, hi vọng bạn sẽ ghi nhận điều tích cực.
 
Upvote 0
.. mình cần ý kiến xây dựng về bài
..
Mình rất tôn trọng mọi người, nhưng có những người nói những câu chói tai nên mình phản ứng lại thôi

Xin chào bạn @xedapdo2006
OT đã đọc các bài viết của bạn và mọi người trong chủ đề này, OT tham gia diễn đàn này đã lâu nên nhận hầu hết tất cả mọi người tham gia vào chủ đều này đều có thể giúp đỡ cho bạn được về mặt chuyên môn.
Bạn cần ý kiến xây dựng bài, OT có thấy trong bài viết mà OT trích dẫn dưới đây có hỏi/xác nhận với bạn vấn đề liên quan đến câu hỏi ccủa bạn nhưng chưa thấy bạn trả lời :

..Với cái ảnh ví dụ đó bạn cho biết cái gọi là scale height và scale width là bao nhiêu - 2 con số cụ thể cho ảnh cụ thể. Và giải thích bạn đã lấy bằng tay thế nào, hoặc tính toán thế nào để ra 2 con số đó. Có như vậy người giúp mới hiểu ý bạn.
Mà bạn cần 2 con số đó chắc cho mục đích cụ thể chứ không phải để thỏa chí tò mò. Vậy mục đích đó là gì? Biết đâu có con đường khác dễ dàng hơn để đi tới cái đích đó. Vậy hãy nói ra nhé.

thay vào đó bạn toàn trả lời các vấn đề liên quan đến tranh luận về quan điểm như vậy có thể coi là là xây dựng bài và tôn trọng được không bạn?
--------
Về vấn đề liên quan đến câu hỏi của bạn OT không hiểu tiếng anh của từ "scale" là gì và đã sử dụng trình dịch internet thì kết quả là.
Sau đó OT tìm kiếm theo chuỗi tiếng anh "get scale values of excel images"

1605851201550.png

thì có thấy link sau, :
Bạn hỏi về code chắc là bạn cũng đã biết sử dụng code rồi? Vậy bạn thử tham khảo code bên dưới này xem:
Mã:
Private Function GetOriginalMeasurements(ByRef myShape As Excel.Shape)
    Dim shpCopy As Excel.Shape
    Dim measurements(1) As Single

    Set shpCopy = myShape.Duplicate

    ' Reset original measurements
    shpCopy.ScaleHeight 1, msoTrue

    measurements(0) = shpCopy.width
    measurements(1) = shpCopy.height

    shpCopy.Delete

    GetOriginalMeasurements = measurements
End Function
Mã:
Sub Main()
    Dim myShape As Excel.Shape
    Dim measurements() As Single
    Dim width As Single
    Dim height As Single

    Set myShape = ActiveWorkbook.ActiveSheet.Shapes(1)
    measurements = GetOriginalMeasurements(myShape)

    width = measurements(0)
    height = measurements(1)

    Debug.Print width
    Debug.Print height
End Sub
OT cũng không hiểu ý bạn như thế nào nhưng thấy bạn cứ nhất định muốn xây dựng bài mà không trả lời các câu hỏi liên quan của người hỏi thì OT trả lời mò thôi.
 
Upvote 0
@NHN_Phương : Giúp có nhiều cách giúp, giúp đúng thì sẽ hiệu quả. Giúp đúng nhưng không đúng chỗ chỉ làm cho tiếp tục nuôi dưỡng các chủ đề kiểu này còn xảy ra (cái này diễn đàn đã lặp nhiều lần rồi) -- ngoài kia còn nhiều vấn đề cần giúp.

Nhiều người đã nhắn chủ topic: hãy nhìn nhận bàn vào vấn đề, thay vì cứ lấn cấn giữ cái tôi. Vậy mà còn chưa nhận ra.
 
Upvote 0
Giả sử tôi có ảnh "anh.jpg" nào đó với kích thức trên đĩa là height = 8,33 cm, width = 20,48 cm.

Tôi chọn Insert -> Picture -> chọn anh.jpg. Trên sheet tôi có ảnh với kích thước thực.

Bây giờ tôi chọn Insert -> Shape -> chọn hình chữ nhật -> vẽ hình chữ nhật có height = 8,33 và width = 10,24 -> phải chuột chọn Size and Properties -> chọn Fill -> chọn anh.jpg. Trên sheet tôi cũng có ảnh nhưng nhỏ bằng 1/2 ảnh gốc.

Bây giờ tôi chọn Insert -> Shape -> chọn hình chữ nhật -> vẽ hình chữ nhật có height = 8,33 và width = 5,12 -> phải chuột chọn Size and Properties -> chọn Fill -> chọn anh.jpg. Trên sheet tôi cũng có ảnh nhưng nhỏ bằng 1/4 ảnh gốc.

Bây giờ phải chuột trên từng ảnh chọn Size and Properties. Sẽ thấy là với cả 3 ảnh đều thấy ghi Scale Height = 100%, Scale width = 100%.

anh.jpg

Ba ảnh lần lượt bằng 100%, 50% và 25% ảnh gốc mà đều có cái gọi là Scale Height và Scale width bằng 100%. Vậy giả sử nếu bằng cách nào đó đọc được giá trị Scale Height = Scale width = 100% thì các giá trị đọc được là vô dụng, chắc là người hỏi không muốn đọc các giá trị này. Còn nếu người hỏi muốn đọc ra cho "ảnh 1" giá trị 100% và 100%, cho "ảnh 2" giá trị 100% và 50%, cho "ảnh 3" giá trị 100% và 25% thì người hỏi phải mô tả rõ ràng. Tốt nhất là đính kèm tập tin và dựa vào ̣đó mô tả.

Nếu đọc bài #7 và #10 thì moi người sẽ thấy là tôi không bắt bẻ chủ thớt. Chỉ có lời khuyên sửa bài #1 và câu hỏi. Lời khuyên tốt cho chủ thớt vì nếu làm theo tôi nói thì mọi lưu ý về nội qui sẽ chấm dứt ngay lập tức. Một khi tôi chưa hiểu ý thì tôi luôn hỏi. Tôi không muốn mất thời gian cho những chuyện không đâu. Nhưng nếu người hỏi không muốn nhọc công thì thôi. Họ có quyền không trả lời mình. Tât nhiên tôi cũng có quyền của tôi. Tôi không thấy buồn tẻ tới mức phải van lậy ai đó để có việc làm không công.

Tôi chấm dứt ở đây.
 
Upvote 0
Xin chào bạn @xedapdo2006
OT đã đọc các bài viết của bạn và mọi người trong chủ đề này, OT tham gia diễn đàn này đã lâu nên nhận hầu hết tất cả mọi người tham gia vào chủ đều này đều có thể giúp đỡ cho bạn được về mặt chuyên môn.
Bạn cần ý kiến xây dựng bài, OT có thấy trong bài viết mà OT trích dẫn dưới đây có hỏi/xác nhận với bạn vấn đề liên quan đến câu hỏi ccủa bạn nhưng chưa thấy bạn trả lời :



thay vào đó bạn toàn trả lời các vấn đề liên quan đến tranh luận về quan điểm như vậy có thể coi là là xây dựng bài và tôn trọng được không bạn?
--------
Về vấn đề liên quan đến câu hỏi của bạn OT không hiểu tiếng anh của từ "scale" là gì và đã sử dụng trình dịch internet thì kết quả là.
Sau đó OT tìm kiếm theo chuỗi tiếng anh "get scale values of excel images"

View attachment 249702

thì có thấy link sau, :
Bạn hỏi về code chắc là bạn cũng đã biết sử dụng code rồi? Vậy bạn thử tham khảo code bên dưới này xem:
Mã:
Private Function GetOriginalMeasurements(ByRef myShape As Excel.Shape)
    Dim shpCopy As Excel.Shape
    Dim measurements(1) As Single

    Set shpCopy = myShape.Duplicate

    ' Reset original measurements
    shpCopy.ScaleHeight 1, msoTrue

    measurements(0) = shpCopy.width
    measurements(1) = shpCopy.height

    shpCopy.Delete

    GetOriginalMeasurements = measurements
End Function
Mã:
Sub Main()
    Dim myShape As Excel.Shape
    Dim measurements() As Single
    Dim width As Single
    Dim height As Single

    Set myShape = ActiveWorkbook.ActiveSheet.Shapes(1)
    measurements = GetOriginalMeasurements(myShape)

    width = measurements(0)
    height = measurements(1)

    Debug.Print width
    Debug.Print height
End Sub
OT cũng không hiểu ý bạn như thế nào nhưng thấy bạn cứ nhất định muốn xây dựng bài mà không trả lời các câu hỏi liên quan của người hỏi thì OT trả lời mò thôi.
Cảm ơn bạn đã xây dựng bài, code đường vòng mình có làm được rồi, ý của mình là có câu lệnh nào rút ra được ngay không. Dù sao cũng cảm ơn bạn đã hỗ trợ
Bài đã được tự động gộp:

Giả sử tôi có ảnh "anh.jpg" nào đó với kích thức trên đĩa là height = 8,33 cm, width = 20,48 cm.

Tôi chọn Insert -> Picture -> chọn anh.jpg. Trên sheet tôi có ảnh với kích thước thực.

Bây giờ tôi chọn Insert -> Shape -> chọn hình chữ nhật -> vẽ hình chữ nhật có height = 8,33 và width = 10,24 -> phải chuột chọn Size and Properties -> chọn Fill -> chọn anh.jpg. Trên sheet tôi cũng có ảnh nhưng nhỏ bằng 1/2 ảnh gốc.

Bây giờ tôi chọn Insert -> Shape -> chọn hình chữ nhật -> vẽ hình chữ nhật có height = 8,33 và width = 5,12 -> phải chuột chọn Size and Properties -> chọn Fill -> chọn anh.jpg. Trên sheet tôi cũng có ảnh nhưng nhỏ bằng 1/4 ảnh gốc.

Bây giờ phải chuột trên từng ảnh chọn Size and Properties. Sẽ thấy là với cả 3 ảnh đều thấy ghi Scale Height = 100%, Scale width = 100%.

View attachment 249717

Ba ảnh lần lượt bằng 100%, 50% và 25% ảnh gốc mà đều có cái gọi là Scale Height và Scale width bằng 100%. Vậy giả sử nếu bằng cách nào đó đọc được giá trị Scale Height = Scale width = 100% thì các giá trị đọc được là vô dụng, chắc là người hỏi không muốn đọc các giá trị này. Còn nếu người hỏi muốn đọc ra cho "ảnh 1" giá trị 100% và 100%, cho "ảnh 2" giá trị 100% và 50%, cho "ảnh 3" giá trị 100% và 25% thì người hỏi phải mô tả rõ ràng. Tốt nhất là đính kèm tập tin và dựa vào ̣đó mô tả.

Nếu đọc bài #7 và #10 thì moi người sẽ thấy là tôi không bắt bẻ chủ thớt. Chỉ có lời khuyên sửa bài #1 và câu hỏi. Lời khuyên tốt cho chủ thớt vì nếu làm theo tôi nói thì mọi lưu ý về nội qui sẽ chấm dứt ngay lập tức. Một khi tôi chưa hiểu ý thì tôi luôn hỏi. Tôi không muốn mất thời gian cho những chuyện không đâu. Nhưng nếu người hỏi không muốn nhọc công thì thôi. Họ có quyền không trả lời mình. Tât nhiên tôi cũng có quyền của tôi. Tôi không thấy buồn tẻ tới mức phải van lậy ai đó để có việc làm không công.

Tôi chấm dứt ở đây.
Ý bạn nói tôi hiểu, nhưng tôi chỉ muốn hỏi giá trị scale thôi, tức là 3 hình kích thước khác nhau nhưng nếu scale 100% thì vẫn rút ra đúng số như vậy. Cảm ơn bạn đóng góp ý kiến
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi xoá các bài tranh luận trong chủ đề vì ra ngoài nội dung quá nhiều. Mặc dù các tranh luận liên quan đến cách hỏi và cách trả lời nhưng tác giả chủ đề không muốn tiếp thu. Nay đã có người giúp nhưng thái độ không đổi, nên hành động tiếp theo của tôi là khoá chủ đề. Tác giả muốn hỏi thêm, hoặc muốn hỏi vấn đề khác thì mở chủ đề đúng chuyên mục, không viết tắt, không dùng từ chat chit, khi được hỏi lại cho rõ thì trả lời đúng trọng tâm, may ra có người trả lời tiếp.
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom