1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình hướng dẫn phân tích ứng dụng lập trình bằng ngôn ngữ visual basic trên excel p1 pptx

5 454 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 822,7 KB

Nội dung

Duyệt qua từng ô trong vùng dữ liệu theo hàng và cột Quá trình duyệt theo hàng hoặc cột được thực hiện sử dụng vòng lặp For Each…Next trên các tập đối tượng Rows, Columns và Cells.. Tro

Trang 1

CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCE  

153

thông báo bằng cách gán thuộc tính DisplayAlerts bằng FALSE, và cũng nên nhớ là phải trả về các giá trị mặc định trước khi kết thúc chương trình

Đổi tên 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"

7.4 Làm việc với Range và Cells

7.4.1 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 ô: 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 Thông qua ví dụ này, ta sẽ hiểu rõ hơn về trình tự duyệt các

ô trong vùng dữ liệu:

Sub Duyet_O()

Dim myCell As Range

Dim i As Integer

i = 0

For Each myCell In Range("A1:D3").Cells

‘Các thao tác xử lý nằm ở đây

‘Ví dụ: điền số thứ tự duyệt vào từng ô

i = i + 1

myCell.Value = i

Next myCell

End Sub

7.4.2 Duyệt qua từng ô trong vùng dữ liệu theo hàng và cột

Quá trình duyệt theo hàng hoặc cột được thực hiện sử dụng vòng lặp For Each…Next trên các tập đối tượng Rows, Columns và Cells Đối tượng thành phần trong các tập đối tượng này đều

có kiểu là Range Ví dụ sau sẽ tính tổng từng cột của vùng dữ liệu được tham chiếu và điền giá trị tổng này vào ô ở ngay phía dưới từng cột

1 Sub Duyet_O_Theo_Cot()

2 Dim myCell As Range

3 Dim myColumn As Range

4 Dim Tong As Double

5 For Each myColumn In Range("A1:D3").Columns

6 Tong = 0

7 For Each myCell In myColumn.Cells

8 Tong = Tong + Val(myCell.Value)

9 Next myCell

10 myColumn.Cells(myColumn.Rows.Count + 1, 1) = Tong

11 Next myColumn

12 End Sub

Giáo trình hướng dẫn phân tích ứng dụng lập trình bằng

ngôn ngữ visual basic trên excel

Trang 2

154

Dòng thứ 5 là vòng lặp cho phép duyệt qua từng cột trong vùng dữ liệu A1:D3 Mỗi cột lại là một vùng dữ liệu, vì thể lại tiếp tục duyệt qua từng ô trong vùng dữ liệu đó, điều này được thực hiện ở dòng thứ 7 Dòng thứ 10 dùng đế gán giá trị tổng tính được của mỗi ô vào ô dưới cùng của cột

7.4.3 Vùng có chứa dữ liệu – Thuộc tính UsedRange

UsedRange là một thuộc tính rất hữu dụng của đối tượng Worksheet Thuộc tính này trả về vùng dữ liệu là hình chữ nhật bao của tất cả các ô có chứa dữ liệu Góc trên bên trái của hình chữ nhật là ô đầu tiên có chứa dữ liệu, còn góc dưới bên phải của hình chữ nhật là ô cuối cùng

có chứa dữ liệu Các ô có chứa dữ liệu được hiểu là những ô có chứa thông tin như: giá trị, định dạng và chú thích Hình sau minh hoạ rõ hơn về thuộc tính UsedRange

Mặc dù trong vùng dữ liệu trả về của thuộc tính UsedRange có chứa cả những ô không có dữ liệu, nhưng như vậy đã là hiệu quả và tiết kiệm thời gian hơn là so với việc duyệt qua tất cả các

ô trong worksheet Ví dụ sau sẽ duyệt qua tất cả các ô có chứa dữ liệu và chọn những ô có giá trị âm trên worksheet hiện hành:

Sub Su_dung_UsedRange( )

Dim cel As Range, str As String

For Each cel In ActiveSheet.UsedRange

If cel.Value < 0 Then str = str & cel.Address & ","

Next

If str <> "" Then

str= Left(str, Len(str) - 1)

ActiveSheet.Range(str).Select

End If

End Sub

Ví dụ trên lấy về địa chỉ của tất cả các ô có giá trị âm và sử dụng dấu “,” ngăn cách giữa địa chỉ

của các ô để lấy hợp của tất cả các ô (xem thêm mục “Tham chiếu đến đối tượng Range” trang

132) Sau khi kết thúc vòng lặp, chuỗi str sẽ có kiểu là “$A$1,$D$5,” nên dòng lệnh If cuối cùng sẽ cắt ký tự cuối cùng của chuỗi str để chuyển về dạng thức địa chỉ đúng

“$A$1,$D$5” Câu lệnh Len(str) trả về chiều dài của chuỗi ký tự str Còn câu lệnh

Left(str,n) trả về n ký tự nằm ở bên trái của chuỗi ký tự str

Trang 3

CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCE  

155

7.5 Làm việc với biểu đồ

Tính năng biểu đồ trong Excel khá ấn tượng Một biểu đồ có thể thể hiện nhiều kiểu dữ liệu khác nhau trong Excel Excel hỗ trợ hơn 100 loại biểu đồ khác nhau và người dùng có thể điều khiển hầu như tất cả các thành phần trong biểu đồ bởi lẽ, mỗi thành phần trong biểu đồ chính là một đối tượng với các phương thức và thuộc tính khác nhau Vì vậy, việc lập trình với biểu đồ

là không dễ, nhưng một khi đã hiểu rõ cây phân cấp đối tượng thì kết quả sẽ ấn tượng hơn rất nhiều

Tuỳ theo vị trí mà biểu đồ trong Excel được phân thành 2 loại sau:

Ø Biểu đồ nhúng – ChartObject: là dạng biểu đồ nằm bên trong một worksheet Trong một worksheet có thể chứa nhiều biểu đồ nhúng khác nhau và các biểu đồ này có thể được truy xuất thông qua tập đối tượng ChartObjects có trong đối tượng worksheet

Ø Biểu đồ độc lập – ChartSheet: là dạng biểu đồ nằm trong một sheet riêng biệt, gọi là chartsheet Mỗi một chartsheet chỉ có thể chứa một biểu đồ dạng này mà thôi Biểu đồ dạng này có thể được truy xuất thông qua tập đối tượng Charts có trong đối tượng workbook

Biểu đồ, dù là dạng nhúng hay độc lập, đều có cùng một kiểu dữ liệu là Chart Hơn nữa, trong hầu hết các bảng tính, các biểu đồ thường được nhúng trong worksheet để tiện cho việc trình bày Chính vì vậy, nội dung trong giáo trình này chỉ tập trung thao tác đối với biểu đồ nhúng

7.5.1 Tạo mới biểu đồ

Cách nhanh nhất để tạo biểu đồ bằng mã lệnh là sử dụng phương thức ChartWizard của đối tượng Chart Với phương thức này, người lập trình có thể tạo được biểu đồ chỉ trong 2 bước:

1 Tạo mới đối tượng Chart, sử dụng phương thức Add

2 Gọi phương thức ChartWizard của đối tượng Chart vừa được tạo

Phương thức ChartWizard có rất nhiều tham số khác nhau, tất cả đều là tham số tuỳ chọn

ChartWizard(Source, Gallery, Format, PlotBy, CategoryLabels,

SeriesLabels, HasLegend, Title, CategoryTitle, ValueTitle,

ExtraTitle)

Source Vùng dữ liệu chứa số liệu đầu vào cho biểu đồ

Gallery Dạng biểu đồ, có thể là một trong những giá trị sau: xlArea, xlBar, xlColumn,

xlLine, xlPie, xlRadar, xlXYScatter, xlCombination, xl3DArea, xl3DBar, xl3DColumn, xl3DLine, xl3DPie, xl3DSurface, xlDoughnut, xlDefaultAutoFormat Format Định dạng tự động Giá trị từ 1÷10 tuỳ thuộc vào loại biểu đồ Nếu bỏ qua tham

số này, Excel sẽ tự chọn giá trị mặc định dựa trên dạng biểu đồ và số liệu đầu vào

PlotBy Xác định xem số liệu cho từng chuỗi số liệu là theo cột hay hàng, có thể là

xlRows hoặc xlColumns

CategoryLabels Số nguyên xác định số hàng hoặc cột bên trong vùng dữ liệu đầu vào sẽ làm

CategoryLabels

SeriesLabels Số nguyên xác định số hàng hoặc cột bên trong vùng dữ liệu đầu vào sẽ làm

SeriesLabels

HasLegend Bằng TRUE thì biểu đồ sẽ có thêm phần chú giải

Trang 4

156

Title Tiêu đề của biểu đồ

CategoryTitle Tiêu đề của trục ngang

ValueTitle Tiêu đề của trục đứng

ExtraTitle Tiêu đề trục đối với biểu đồ 3D hoặc tiêu đề của trục giá trị thứ 2 của biểu đồ 2D

Ví dụ sau tạo một biểu đồ trong một chartsheet nằm sau worksheet hiện hành, sau đó sử dụng phương thức ChartWizard để tạo biểu đồ dựa trên vùng dữ liệu có tên là SoLieu Nội dung của vùng dữ liệu đó như sau:

Sub ChartWizard()

Dim ws As Worksheet, chrt As Chart

Set ws = ActiveSheet

' Tạo mới chartsheet, nằm sau worksheet hiện hành

Set chrt = Charts.Add(, ws)

' Đặt tên cho chartsheet

chrt.Name = "Bieu Do Gia"

' Tạo biểu đồ sử dụng phương thức ChartWizard

chrt.ChartWizard ws.[SoLieu], xlLine, , xlColumns, 1, 1, True, _ "Bieu Do Gia Hang Nam", "Nam", "Gia"

End Sub

Trang 5

CHƯƠNG IV: LẬP TRÌNH TRÊN MICROSOFT EXCE  

157

7.5.2 Thêm một chuỗi số liệu vào biểu đồ đã có

Các số liệu đã được vẽ trong biểu đồ được lưu trữ trong tập đối tượng SeriesCollection Mỗi hàng hoặc cột dữ liệu được lưu trữ trong một đối tượng Series tương ứng và mỗi số liệu trong một đối tượng Series được lưu trữ trong đối tượng Point

Người lập trình có thể thêm chuỗi số liệu vào một biểu đồ đã có bằng cách gọi phương thức Add của tập đối tượng SeriesCollection Phương thức Add có những tham số sau:

Source Vùng dữ liệu chứa dữ liệu của chuỗi số liệu mới hoặc có thể là mảng số liệu Rowcol Xác định xem chuỗi số liệu bố trí theo dạng cột hay dạng hàng, có thể là xlRows

hoặc xlColumns

SeriesLabels Giá trị này sẽ bị bỏ qua nếu Source là một mảng số liệu Nếu Source là vùng dữ

liệu thì giá trị này sẽ là TRUE nếu hàng hoặc cột đầu tiên của vùng dữ liệu chứa tên của chuỗi số liệu, nếu không thì gán giá trị này bằng FALSE

CategoryLabels Giá trị này sẽ bị bỏ qua nếu Source là một mảng số liệu Nếu Source là vùng dữ

liệu thì giá trị này sẽ là TRUE nếu hàng hoặc cột đầu tiên của vùng dữ liệu chứa giá trị làm CategoryLabels của chuỗi số liệu, nếu không thì gán giá trị này bằng FALSE

Replace Nếu CategoryLabels là TRUE và Replace là TRUE, thì giá trị CategoryLabels

của biểu đồ hiện tại sẽ được thay mới Nếu Replace là FALSE thì CategoryLabels của biểu đồ hiện tại sẽ được giữ nguyên Mặc định là giá trị FALSE

Ví dụ sau sẽ thêm một chuỗi số liệu mới vào biểu đồ đã được tạo ở ví dụ trước, và chuyển dạng biểu đồ thành dạng cột

Sub AddNewSeries()

Dim chrt As Chart, sc As SeriesCollection, sr As Series

' Lấy lại biểu đồ theo tên biểu đồ

Set chrt = Charts("Bieu Do Gia")

' Lấy tập đối tượng SeriesCollection

Ngày đăng: 23/07/2014, 17:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w