Đến nội dung

Lấy vị trí ​

Vị trí trên ribbon: Tab DVD Addin → Nhóm Đồ họa → mũi tên ▾ của nút Tô màu Shape

ID lệnh: btnShapePositions

Chức năng ​

Lệnh đọc tọa độ của các Shape trên sheet hiện tại và ghi ra ô bảng tính dưới dạng Top;Left (đơn vị point). Bạn đưa danh sách tên Shape vào một vùng ô, lệnh tra từng tên trong bộ sưu tập Shapes của sheet rồi trả về vị trí tương ứng.

Rất hữu ích khi bạn cần lưu lại bố cục của một bản vẽ mặt bằng, sơ đồ tổ chức công trường hay bảng ký hiệu để sau này dựng lại đúng vị trí cũ, hoặc để kiểm tra xem các khối hình đã thẳng hàng chưa mà không phải mở từng hộp thoại Format Shape.

Cách dùng ​

  1. Đặt tên các Shape cần lấy tọa độ (dùng lệnh Đổi tên Shape nếu tên mặc định khó theo dõi).
  2. Gõ hoặc dán danh sách tên Shape vào một cột trên sheet, rồi chọn vùng chứa các tên đó.
  3. Vào tab DVD Addin → nhóm Đồ họa → mũi tên ▾ của Tô màu Shape → Lấy vị trí.
  4. Lệnh quét lần lượt từng ô trong vùng đã chọn, bỏ qua ô trống và những tên không tìm thấy Shape.
  5. Hộp thoại chọn vùng "Chọn vùng cần dán vị trí các shapes" hiện lên — nhấp chọn ô/vùng đích rồi bấm OK. Nếu vùng đích đang có dữ liệu, cửa sổ Xác nhận thay đổi dữ liệu hỏi trước khi ghi đè — bấm Tiếp tục.
  6. Kết quả được dán theo đúng thứ tự đã quét; thanh thông báo hiện số vị trí đã dán.

Video hướng dẫn ​

Danh sách, Đổi tên, Đánh số, Lấy vị trí Shape · 7 phút 11 giây · 18 trường hợp · Tải video · File thực hành theo video

Lệnh trong video: Danh sách shape · Đánh số Shape · Đổi tên Shape · Lấy vị trí

Các chương (22)
  1. Giới thiệu
  2. Mở lệnh
  3. 1 · Shape trong nhóm
  4. 2 · Tên dạng số, nhãn liên kết
  5. 3 · Ảnh, biểu đồ, nút, shape ẩn
  6. 4 · Tên trùng
  7. 5 · Đổi tên theo bảng
  8. 6 · Dòng bị bỏ qua, bị từ chối
  9. 7 · Thứ tự dòng: dời số, đổi chéo
  10. 8 · Cả nhóm, bỏ ảnh nền
  11. 9 · Hàng chéo, shape xoay
  12. 10 · Sai số cùng hàng
  13. 11 · Bắt đầu từ, tên đã có
  14. 12 · Nhiều nhóm, ảnh
  15. 13 · Lấy toạ độ Top;Left
  16. 14 · Tên sai, ô trống
  17. 15 · Dời lại bằng dvdMoveShape
  18. 16 · Ghi đè và hoàn tác
  19. 17 · Sheet đang bảo vệ
  20. 18 · Khi chọn sai
  21. Mẹo
  22. Kết thúc

Hướng dẫn bằng hình ​

Thực hành

Tải file mẫu của lệnh này — dữ liệu y như hình dưới (sheet Bố trí lán trại), mở ra là làm theo được ngay từng bước.

Bước 1. Gõ hoặc dán tên các Shape cần lấy toạ độ vào một cột rồi chọn vùng chứa các tên đó (1).

Bước 1

Bước 2. Trên ribbon, mở tab DVD Addin → nhóm Đồ họa → mở Tô màu Shape → chọn Lấy vị trí.

DVD Addin ▸ Đồ họa ▸ Tô màu Shape ▸ Lấy vị trí

Bước 3. Lệnh tra từng tên trên sheet đang mở (bỏ qua ô trống và tên không có Shape), rồi hiện hộp chọn vùng Chọn vùng cần dán vị trí các shapes: chọn B4 (hoặc B4:B7) rồi bấm OK. Vùng đích đang có dữ liệu thì add-in hỏi lại trước khi ghi đè.

Bước 4. Mỗi ô nhận chuỗi Top;Left tính bằng point, theo đúng thứ tự đã quét (1) — dấu thập phân theo máy. Thanh trạng thái báo số vị trí đã dán (2). Dán chuỗi này vào hàm dvdMoveShape là đưa Shape về đúng chỗ cũ.

Bước 4

Ví dụ ​

Sheet mặt bằng bố trí lán trại có 4 khối hình đã đặt tên. Bạn chọn vùng A2:A5 chứa tên rồi chọn B2:B5 làm vùng dán.

ÔTrước (tên Shape)Sau (ô B — Top;Left)
Hàng 2LanTrai_BCH72;120
Hàng 3KhoVatTu150;120
Hàng 4BaiDucCauKien150;300
Hàng 5CongChinh240;60

Nhìn cột B thấy ngay KhoVatTu và BaiDucCauKien cùng Top = 150, tức là hai khối đã thẳng hàng ngang.

Lưu ý ​

  • Phải chọn trước một vùng ô; nếu vùng chọn không phải Range, lệnh báo "Vui lòng chọn vùng chứa tên shapes" và dừng.
  • Chỉ tìm Shape trong sheet đang hiển thị; tên Shape ở sheet khác sẽ không khớp và bị bỏ qua âm thầm.
  • Ô trống và tên sai đều bị bỏ qua, nên số dòng kết quả có thể ít hơn số ô đã chọn — kết quả dán liên tục, không chừa chỗ trống.
  • Giữ ESC để dừng giữa chừng; nếu dừng trong lúc đang quét thì lệnh thoát luôn, không mở hộp thoại dán.
  • Giá trị ghi ra là chuỗi văn bản Top;Left, không phải hai số riêng — muốn tách thành 2 cột thì dùng Text to Columns với dấu phân cách ;. Dấu thập phân theo Regional format của máy (máy tiếng Việt ra 587,81;653,415), làm tròn 0,001 pt.
  • Tọa độ ghi ra là chỗ Excel thật sự vẽ Shape, kể cả Shape nằm trong nhóm. Ở sổ dùng chung qua nhiều máy, khung lưu sẵn của nhóm có thể lệch khung tính theo ô neo; khi đó con số Excel báo cho Shape con lệch chỗ vẽ tới vài point, càng xuống cuối nhóm càng lệch (đo được 7,5 pt trên mặt bằng móng 57 hình). Bản trước ghi thẳng con số đó nên sai; bản này quy đổi về đúng chỗ vẽ.
  • Shape bị xoay: Top;Left là góc trên-trái của hình chưa xoay — đúng nghĩa Top/Left trong Format Shape và trong VBA — không phải của khung bao quanh hình sau khi xoay.
  • Dán kết quả vào dvdMoveShape là đưa Shape về đúng chỗ cũ: hàm đọc được cả dấu phẩy lẫn dấu chấm thập phân, và với Shape trong nhóm thì không làm các Shape khác của nhóm xê dịch theo.
  • Hộp chọn vùng không khoá Excel: trong lúc hộp mở vẫn cuộn, đổi sheet, đổi sổ để chọn vùng ở đó. Chọn xong bấm OK hoặc Enter trên sheet; Hủy hoặc Esc để thôi.

Liên quan ​

  • Đổi tên Shape — đặt tên dễ nhớ cho Shape trước khi lấy tọa độ.
  • Danh sách Shape — liệt kê toàn bộ Shape có trên sheet để biết tên chính xác.
  • Chỉnh ảnh — canh lại một hình/ảnh vào đúng ô sau khi biết vị trí.
  • Tô màu Shape — thao tác hàng loạt khác trên cùng bộ Shape.
  • dvdMoveShape — hàm đưa Shape về đúng tọa độ Top;Left lấy được ở đây.

Phát hành theo giấy phép DVDAddin.