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
- Đặ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).
- 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 đó.
- Vào tab DVD Addin → nhóm Đồ họa → mũi tên ▾ của Tô màu Shape → Lấy vị trí.
- 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.
- 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.
- 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)
- Giới thiệu
- Mở lệnh
- 1 · Shape trong nhóm
- 2 · Tên dạng số, nhãn liên kết
- 3 · Ảnh, biểu đồ, nút, shape ẩn
- 4 · Tên trùng
- 5 · Đổi tên theo bảng
- 6 · Dòng bị bỏ qua, bị từ chối
- 7 · Thứ tự dòng: dời số, đổi chéo
- 8 · Cả nhóm, bỏ ảnh nền
- 9 · Hàng chéo, shape xoay
- 10 · Sai số cùng hàng
- 11 · Bắt đầu từ, tên đã có
- 12 · Nhiều nhóm, ảnh
- 13 · Lấy toạ độ Top;Left
- 14 · Tên sai, ô trống
- 15 · Dời lại bằng dvdMoveShape
- 16 · Ghi đè và hoàn tác
- 17 · Sheet đang bảo vệ
- 18 · Khi chọn sai
- Mẹo
- 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 2. Trên ribbon, mở tab DVD Addin → nhóm Đồ họa → mở Tô màu Shape → chọn 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ũ.

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 2 | LanTrai_BCH | 72;120 |
| Hàng 3 | KhoVatTu | 150;120 |
| Hàng 4 | BaiDucCauKien | 150;300 |
| Hàng 5 | CongChinh | 240;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 ra587,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;Leftlà 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
dvdMoveShapelà đư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;Leftlấy được ở đây.