Professional Documents
Culture Documents
PHỤ LỤC
Chương 1 ................................................................................................................................................. 3
1.2. Giới thiệu sơ qua về các đối tượng trong VBA-Excel ............................................................ 5
Chương 2 ............................................................................................................................................... 11
2.1. Khái niệm cơ bản về mô hình đối tượng FSO (FileSystemObject) ..................................... 12
2.2. Các lớp và các phương thức của mô hình đối tượng FSO ................................................... 13
2.3. Trình tự làm việc với mô hình đối tượng FSO ..................................................................... 14
Chương 3 ............................................................................................................................................... 18
3.1.1. Tạo thuộc tính cho Block –Phương thức AddAttribute ................................................... 28
3.1.2. Thao tác với thuộc tính – Phương thức GetAttributes .................................................... 31
3.8.1. Gắn một tham chiếu ngoài vào bản vẽ – Phương thức AddExternalReference ............. 33
3.8.2. Gỡ bỏ tham chiếu ngoài ra khỏi bản vẽ - Phương thức Detach ....................................... 36
3.8.3. Tải lại tham chiếu ngoài – Phương thức Reload .............................................................. 36
3.8.4. Loại bỏ tham chiếu ngoài ra khỏi bản vẽ - Phương thức Unload .................................... 37
3.8.5. Ràng buộc tham chiếu ngoài – Phương thức Bind ........................................................... 38
Chương 4 ............................................................................................................................................... 39
Chương 1
- Một số ví dụ
Phương thức này dùng để tạo một WorkBook mới, một WorkBook mới được tạo ra sẽ trở
thành WorkBook hiện hành.
Phương thức này dùng để mở một WorkBook, WorkBook được mở sẽ trở thành hiện hành
a. Lưu WorkBoook.
Để lưu WorkBook sử dụng phương thức Save As hoặc phương thức Saved
ThisworkBook.SaveAs (SavaAsPath)
b. Đóng WorkBook
ThisworkBook.Close True(False)
Nếu True : WorkBook sẽ được lưu lại, nếu False WorkBook sẽ không được lưu.
Sử dụng phương thức Add có trong tập đối tượng WorkSheets hoặc trong đối tượng
Sheets để tạo một WorkSheet mới.
b. Xóa WorkSheet
Để xoá WorkSheet, sử dụng phương thức Delete có trong đối tượng WorkSheet.
Việc đổi tên worksheet được thực hiện một cách dễdàng, chỉ cần thay đổi thuộc tính
Name có trong đối tượng WorkSheet.
Đoạn mã sau sẽ đổi tên Sheet2 thành MySheet:
Worksheets("Sheet2").Name = "MySheet"
1.2.4. Làm việc với đối tượng Range
a. Cách khai báo đối tượng Range
Dim Myrange as Range
b. Duyệt qua từng ô trong vùng dữ liệu
Để duyệt qua từng ô trong vùng dữ liệu, sửdụng vòng lặp For Each… Next để duyệt
qua từng đối tượng trong tập đối tượng Cells. Trình tựduyệt là theo số thứ tự của ô:
Quá trình duyệt từ trái sang phải là từ trên xuống dưới.
Ví dụ sau sẽ duyệt qua từng ô trong vùng dữ liệu A1:D3, điền số vào từng ô theo thứ
tự được duyệt
1.3. Một số ví dụ
1.3.1. Ví dụ 1: Tìm dòng cuối cùng trong một cột
Chương 2
- Các phương thức và thuộc tính của mô hình đối tượng FSO
- Một số ví dụ
Mô hình đối tượng FSO là một đối tượng dùng để đọc dữ liệu hoặc ghi dữ liệu từ file
“*.txt”.Ngoài ra đối tượng FSO còn dùng để thực hiện với các tác vụ như Move File, CopyFile,
Delete File…
Các lớp đối tượng theo mô hình đối tượng FSO là một dạng bổ sung cho VBA và được cung cấp
dưới dạng thư viện lập trình với tên gọi “Microsoft Scriting Runtime”. Để sử dụng thư viện này
trong môi trường lập trình VBA IDE chúng ta cần thực hiện thao tác sau:
Trong VBA IDE chọn trình đơn Tools References Tìm đến “Microsoft Scripting
Runtime” đánh dấu chọn -OK.
2.2. Các lớp và các phương thức của mô hình đối tượng FSO
2.2.1. Các lớp đối tượng chính trong mô hình FSO
Tên lớp Mô tả
FileSystemObject Đối tượng quản lý trong mô hình FSO
2.3.7. Mở file Text để ghi thêm dữ liệu vào cuối tập tin(OpenforAppending)
Với phương thức OpenforAppending thì dữ liệu cũ vẫn được giữ lại và dữ liệu mới sẽ
được thêm vào cuối.
2.4. Một số ví dụ
a. Ví dụ 1: Trong ví dụ này sẽ lấy tên tất cả các file có trong một Folder sau đó ghi ra một
file Text.
b. Ví dụ 2: Trong ví dụ này sẽ Copy File từ một Folder này sang một Folder khác
Chương 3
Block là một đối tượng được tạo từ nhiều đối tượng cơ bản trong bản vẽ nhưng nó được coi
như một đối tượng đơn.Chúng ta có thể chèn Block trong cùng một bản vẽ hoặc các bản vẽ
khác nhau.
Ví dụ
Ví dụ này sẽ duyệt qua tất cả các Block có trong bản vẽ và hiện tên của các Block đó
Cú pháp
Giải thích
BlockObj Kiểu acadBlock – Biến chứa đối tượng Block được tạo
Kiểu Variant hoặc mảng 3 phần từ kiểu Double – là tâm chèn của
InsertPoint
Block.
Kiểu String – Tên của Block được tạo (Chú ý tên của Block không
BlockName
đuợc dài quá 31 ký tự và giữa chúng không có khoảng trắng)
Ví dụ
Ví dụ này sẽ khai báo và tạo một Block có tên “Section”, đồng thời tạo một đường tròn và
đường thẳng sau đó thêm đường tròn và đường thẳng này vào trong Block đó.
Cú pháp
BlockObj.Name = NewName
Giải thích
Ví dụ
Ví dụ này sẽ yêu cầu người dùng nhập vào tên Block cần đổi và tên mới của Block.Sau đó
sẽ sử dụng thuộc tính Name để Rename Block này.
Cú pháp:
BlockObj.Delete
Ví dụ
Chú ý
- Nếu một Block tạo theo phương thức Add được gọi là “Block Definition” và Block đó nếu
được Insert vào trong bản vẽ thì trở thành “Block Reference”.
- Các “Block Reference” đều tham khảo dữ liệu đến “Block Definition” do đó trong ví dụ
trên khi khai báo “Dim ObjBlock as acadBlock” thì đối tượng ObjBlock sẽ là “Block
Definition”.Chúng ta không thể Delete một “Block Definition” khi trong bản vẽ vẫn còn
tồn tại “Block Reference” (Cũng giống như không thể Delete một Layer khi nó vẫn còn
được dùng bởi một đối tượng khác).Mặt khác, khi Delete một “Block Reference” nếu
chúng ta không sử dụng lệnh “Purge” thì hiển nhiên đối tượng “Block Definition” vẫn còn
tồn tại trong bản vẽ.
Ví dụ
Ở ví dụ này sẽ yêu cầu người dùng nhập vào một tên Block Reference sau đó sử dụng bộ
lọc để lọc ra các Block có tên do người dùng nhập vào, tiếp đó sẽ Delete các Block này
khỏi bản vẽ.
Đối tượng trả về của phương thức InsertBlock là một “Block Reference”.
Cú pháp
Giải thích
Kiểu String – Tên Block cần chèn hoặc tên đầy đủ bao gồm
BlockName
đường dẫn chứa bản vẽ được chèn.
Ví dụ
Ví dụ này sẽ tạo một “Block Definition” có tên “Ex_6” chứa đối tượng Circle.Sau đó sẽ
chèn “Block Definition” này vào ModelSpace, điểm chèn do người dùng nhập vào.
Ví dụ
Trong ví dụ này sẽ yêu cầu người dùng nhập đường dẫn chứa bản vẽ cần chèn vào (bao
gồm cả phần mở rộng “.dwg”).Đồng thời các thông số như InsertPoint,Xscal, Yscale,
Zscale, RotationAngle cũng do người dùng nhập vào.
Cú pháp
VarArray = BlockReferenceObj.Explode
Giải thích
Chú ý
Phương thức Explode thực chất tạo ra một bản sao của đối tượng gốc, sau đó thực hiện
việc phá vỡ Block trên đối tượng này.Đối tượng gốc vẫn còn giữ nguyên.Nếu không
muốn giữ đối tượng này chúng ta có thể xóa nó ra khỏi bản vẽ bằng phương thức Delete.
Ví dụ
Ví dụ này sẽ yêu cầu người dùng chọn một Block trên màn hình bản vẽ và một điểm để
di chuyển kết quả của phương thức Explode.
Giải thích
Kiểu Long - Thông số điều khiển thuộc tính khi được chèn vào
Mode
trong bản vẽ.
Kiểu String – Chuỗi thông báo khi Block Attribute được chèn vào
Prompt
bản vẽ.
Kiểu Variant hoặc Double – Mảng 3 phần tử chứa tọa độ của thuộc
InsertionPoint
tính khi được chèn vào bản vẽ hay Block.
Kiểu String – Tên của thuộc tính, có thể chứa bất kỳ ký tự nào
Tag
nhưng không chứa khoảng trắng.
Value Kiểu String – Giá trị mặc định cho thuộc tính
Giá trị mặc định, với giá trị này không một giá
acAttributeModeNormal 0
trị nào còn lại của tham số Mode được gán.
Khi Block được chèn vào thì giá trị của thuộc
acAttributeModeVerify 4
tính được nhập tại dòng nhắc.
Block được chèn vào với giá trị mặc định của
acAttributeModePreset 8 thuộc tính, người dùng chỉ có thể Edit được giá
trị đó sau khi Block được chèn vào bản vẽ.
Ví dụ
Ví dụ này sẽ tạo một Block Attribute, trong đó các thuộc tính mô tả các giá trị của tham
số Mode.
Để xác định xem một “Block Reference” có chứa thuộc tính hay không chúng ta sử dụng
thuộc tính HasAttributes có trong đối tượng “Block Reference”.Nếu kết quả là TRUE thì
Block có thuộc tính, nếu là FALSE thì Block không chứa thuộc tính.
Cú pháp
VarAttributes = BlockReferenceObj.GetAttributes
Giải thích
Ví dụ
Ví dụ này sẽ yêu cầu người dùng chọn một đối tượng trên màn hình bản vẽ, kiểm tra
xem đó có phải là Block thuộc tính hay không nếu đúng sẽ hiển thị tên và giá trị của các
thuộc tính cho người dùng.
Ví dụ
Trong ví dụ này sẽ thay đổi các giá trị của thuộc tính trong “Block Reference” có tên
“TestAttribute” (Sử dụng ví dụ trong phương thức AddAttribute để tạo Block này)
3.8.1. Gắn một tham chiếu ngoài vào bản vẽ – Phương thức AddExternalReference
Cú pháp
RotationAngle, Overlay)
Giải thích
Kiểu String – Đường dẫn tới bản vẽ tham khảo ngoài (bao
FileName
gồm cả phần mở rộng “dwg”)
Kiểu String – Tên đặt cho bản vẽ tham khảo ngoài khi được
BlockName
chèn vào trong bản vẽ
Kiểu Double – Góc quay của bản vẽ tham khảo ngoài khi
RotationAngle
chèn vào bản vẽ (Đơn vị : Radians)
Kiểu Boolean – Điều khiển bản vẽ tham khảo ngoài khi được
gán vào bản vẽ.
TRUE : Bản vẽ tham khảo ngoài sẽ không được hiển thị
khi bản vẽ “được gán tham khảo” này trở thành bản vẽ
Overlay
tham khảo của bản vẽ khác.
FALSE : Bản vẽ tham khảo ngoài sẽ được hiển thị khi
bản vẽ “được gán tham khảo” này trở thành bản vẽ
tham khảo của bản vẽ khác.
Ví dụ
Ví dụ
Ví dụ
Nếu bản vẽ tham khảo ngoài bị loại bỏ (Bằng phương thức UnLoad) thì có thể được tải lại
bất kỳ lúc nào bằng phương thức Reload.
Ví dụ
3.8.4. Loại bỏ tham chiếu ngoài ra khỏi bản vẽ - Phương thức Unload
Sử dụng phương thức Unload để loại bỏ một tham khảo ngoài ra khỏi bản vẽ.Khi loại bỏ
một tham chiếu ngoài thì tốc độ làm việc của AutoCad sẽ được tăng cường do không phải
đọc và hiển thị các thông tin hình học hay các ký hiệu không cần thiết.Các đối tượng hình
học và các thông tin liên quan đến tham khảo ngoài sẽ không được thể hiện trên bản vẽ hiện
tại cho đến khi tham khảo ngoài được tải lại.
Chú ý : Cần phân biệt sự khác nhau giữa phương thức Detach và Unload
Phương thức Unload : Chỉ loại bỏ tạm thời tham chiếu ngoài ra khỏi bản vẽ và
chúng ta có thể tải lại tham chiếu ngoài này bất cứ khi nào bằng phương thức Reload.
Phương thức Detach : Sẽ loại bỏ tham hoàn toàn tham chiếu ngoài ra khỏi bản vẽ và
chỉ có thể sử dụng phương thức AddExternalReference để gắn lại tham chiếu ngoài.
Phương thức Bind chỉ có một tham số là PrefixName. Nếu tham số này được
gán giá trị TRUE thì tên trong bảng ký hiệu của bản vẽ tham chiếu ngoài sẽ được
thêm tiền tố<tên khối>$x$ trong bản vẽ hiện tại, trong đó x : là sốnguyên bất kỳ
được tự động tăng để tránh ghi đè lên định nghĩa khối đã có. Nếu tham số này nhận
giá trị FALSE thì tên trong bảng ký hiệu sẽ được ghép chung vào bản vẽ hiện tại mà
không có tiền tố. Nếu có các tên trùng nhau thì AutoCAD sẽ sửdụng ký hiệu vừa
Ví dụ
Chương 4
Tùy thuộc vào Version Autocad mà chúng ta sẽ đánh dấu chọn cho phù hợp
Bước 2 : Đoạn Code dùng để liên kết Excel với AutoCad