Xây dựng macro visual basic để nhập dữ liệu tự động

6 106 0
Xây dựng macro visual basic để nhập dữ liệu tự động

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

Thông tin tài liệu

Xây dựng macro Visual Basic để nhập liệu tự động Trong thực tế, dù mơi trường lập trình Chuyên nghiệp hay ứng dụng văn phòng, thường xuyên thao tác dạng sở liệu Việc ghi liệu định dạng liệu có cơng việc thường xun tương đối nhàm chán Trong viết xin giới thiệu phương pháp tương đối đặc biệt cho phép nhanh chóng nhập liệu vào định dạng ứng dụng có hỗ trợ ngôn ngữ macro VBA Microsoft Excel, Access, Word Có nhiều kỹ thuật để ghi liệu vào định dạng liệu chuẩn, với định dạng MDB Access sử dụng DAO kèm với phát triển Microsoft; với định dạng chuẩn sở liệu DBF (DBase, FoxPro), MDB (Access), DB (Paradox) sử dụng giao tiếp ODBC đại OLE-DB; ngồi sử dụng kĩ thuật khác phổ biến OLE Automation tự xây dựng thư viện xuất liệu Mỗi phương pháp có điểm mạnh yếu riêng, khơng có phương pháp tốt cho nhu cầu lập trình viên Việc sử dụng thư viện tự viết thích hợp với loại sở liệu q cổ điển, khơng hỗ trợ mơi trường tại; đối nghịch với nó, bạn sử dụng thư viện CSDL có, ứng dụng bạn "nở" to đến độ không ngờ, bạn phải đối phó vấn đề nhức đầu có q trình cài đặt vận hành ứng dụng, từ việc sai hỏng version trình cài đặt, đến lỗi bất ngờ xảy tranh chấp file liệu, vân vân vân vân Đứng tất vấn đề việc bạn phải bỏ nhiều thời gian quý báu để cài đặt thủ tục đọc ghi/xử lý lỗi xuất liệu Tôi muốn giới thiệu với bạn cách đơn giản, tương đối hiệu đặc biệt tốn thời gian để cài đặt việc nhập liệu tự động vào file sở liệu Đó việc sử dụng Macro VBA bạn viết sẵn file sở liệu Với cách bạn không cần quan tâm đến chế giao tiếp ngơn ngữ lập trình với sở liệu Hơn nữa, lại cách đảm bảo tính độc lập liệu cao đồng thời khơng phụ thuộc vào Version sở liệu Bây giờ, xem xét cách thức tiến hành phương pháp Vấn đề: Chúng ta tưởng tượng lập trình viên A có chương trình xử lý liệu viết Visual C++, liệu chương trình tạo cần xuất nhiều dạng để nhiều chương trình khác xử lý, chẳng hạn cần xuất dạng Access, Word Excel, vấn đề A cần phải hoàn thành công việc thời gian ngắn, chẳng hạn ngày Thay viết hàm xuất liệu Visual C++, cơng việc mà khơng ngày làm xong A làm sau: Xuất liệu chương trình file text theo định dạng tự quy ước Viết hàm macro VBA Access, Word Excel để file mở macro tự động chạy nạp liệu từ file text có vào thân Cơ chế tương tự virus macro Word Mỗi lần người sử dụng xuất liệu, chương trình xuất file liệu trống chứa sẵn macro mà A xây dựng, kèm theo file text trùng tên Khi người dùng mở file liệu, liệu từ file text nhập vào trình mở file Như bạn thấy, thay phải viết/kiểm tra hàm xuất liệu cho loại CSDL, A phải xuất dạng text viết vài macro VBA đơn giản Chúng ta xem xét việc tạo macro chạy tự động Microsoft Excel Trước tiên, bạn làm việc với Office 97 hay Office 2000, bạn tìm đến click vào biểu tượng Visual Basic Editor Toolbar (biểu tượng nằm Toolbar "Visual Basic" chọn mục "Tools.Macro.Visual Basic Editor" menu chính, lúc bạn có cửa sổ làm việc đây, bạn viết macro cho workbook hay sheet Trong phần giới thiệu cách cài đặt macro cho workbook Macro nhập liệu tự động từ file Text vào file Excel file mở Để đơn giản, ta nên đặt tên file text trùng với tên file excel định dạng file text này, chẳng hạn file text định dạng sau: Dòng số cột cần xuất vào file Dòng thứ đến dòng thứ n+ tên n cột Dòng thứ n + số dòng xuất vào file Dòng thứ n+3 trở nội dung Ô (nội dung Ô ghi dòng), theo dòng từ xuống cột từ trái sang phải Ví dụ cụ thể, tơi có file example.txt định dạng sau: Họ tên ngày sinh Quê quán Nghề nghiệp Nguyễn Văn A 01-01-1970 Hà Nội Kế toán Nguyễn Thị B 30-10-1976 Hà Tây Giáo viên Bây bạn bắt đầu viết Macro để thực công việc nhập liệu tự động Để đảm bảo liệu nhập vào file mở, phải xử lý kiện Open workbook Trước tiên, ta đưa khai báo sau vào sau phần Option Explicit: Option Explicit Public NumCol As Integer Public Numrow As Integer Dim Columns (1 To 300 ) As String Chúng ta đưa vào kiện Workbook- Open() đoạn mã sau đây: Private Sub workbook-open ( ) On Error Goto FALL Dim fileNum As Integer, I As Integer, J As Integer Dim str As String, fileName As String Dim wb As Workbook Dim index As Integer Set wb = Thisworkbook fileName - Left (wb.FullName, Len(wb FullName) - 3)' & "txt" fileNum = FreeFile Open fileName For Input AB #fileNum Input #fileNum, NumCo1 index = For I = To NumCo1 Line Input#fileMum, str Woksheets ("Sheet1"), Range (Columns (I) &CStr (index)) Value = str Next I Input#fileNum, NumRow For J = To NumRow index = index + For I = To NumCol Line Input #fileNum, str If (str "") Then Worksheets ("Sheet1") Range (Columns (I) & CStr (index) Value=str End If Next I Next J Close #fileNum Kill fileName wb.Save End FALL: End End Sub Trong đoạn mã trên, columns mảng ký hiệu cột Excel (A Z, AA ) Ta tạo mảng cách đơn giản thủ tục sau đây: Sub SetNameColumn() Dim I As Integer Columns (1) = "A" For I = To 26 Columns (I) = NextColumn (Columns (I-1)) Next I Columns (27) = "AA" For I = 28 To 300 Columns (I) = NextColumn (Columns (I-1)) Next I End Sub Trong NextColumn (Columns (i)) hàm trả tên cột cột i Hàm viết sau: Function NextColumn (s As String) As String If Len (s)=1 Then NextColumn=Chr (Asc(s)+1) Else If Asc (Mid(s, Len(s)))=90 Then NextColumn=Chr(Asc(s)+1)&"A" Else NextColumn=Chr(Asc(s) & Chr (Asc(Mid(s, Len(s))) +1) End If End If End Function Hoạt động macro đơn giản, đọc liệu từ file, đọc số cột đặt tên cho cột sheet, sau đọc xem liệu xuất có bao nhiều hàng đọc/ghi thông tin vào ô sheet Việc viết macro cho Word Access không khác bao, nắm ý tưởng cộng với chút kiến thức VB bạn dễ dàng thành cơng Sau thử đánh giá phương pháp chút Nhược điểm - Đơi liệu người dùng có thao tác với file xuất (chẳng hạn: move sang thư mục khác) Nhưng vấn đề giải trọn vẹn vài kỹ thuật VB tinh tế - Chỉ chạy với ứng dụng hỗ trợ VBA, vấn đề tương tự việc trang web có java script chạy trình duyệt hỗ trợ js - Các macro bị nhận lầm virus (nhất với chương trình diệt virus Việt Nam), kỹ thuật chương trình sử dụng tương tự kỹ thuật virus Ưu điểm: - Chương trình nhỏ gọn, chẳng dính dáng đến sở liệu (Cũng có nghĩa khơng phải lo lắng xử lý lỗi cài đặt, lỗi đọc liệu ) - Các macro viết VBA, dễ dàng bảo trì phát triển đoạn mã viết ngôn ngữ khác - Có thể xuất liệu vào ứng dụng đặc thù, làm phương pháp xuất liệu thơng thường, ví dụ: xuất liệu vào file định dạng Word, PowerPoint, Microsoft Project, Visio Đây lợi độc vô nhị phương pháp - Thời gian chi phí cho việc phát triển phần xuất liệu ngắn so với phương pháp khác Trên cách sử dụng macro tự động nhập liệu vào file sở liệu Việc viết macro đơn giản mà nhiều lại hiệu Hy vọng nhập liệu giúp bạn cảm thấy thú vị làm việc với sở liệu ...1 Xuất liệu chương trình file text theo định dạng tự quy ước Viết hàm macro VBA Access, Word Excel để file mở macro tự động chạy nạp liệu từ file text có vào thân Cơ chế tương tự virus macro Word... phát triển phần xuất liệu ngắn so với phương pháp khác Trên cách sử dụng macro tự động nhập liệu vào file sở liệu Việc viết macro đơn giản mà nhiều lại hiệu Hy vọng nhập liệu giúp bạn cảm thấy... toán Nguyễn Thị B 30-10-1976 Hà Tây Giáo viên Bây bạn bắt đầu viết Macro để thực công việc nhập liệu tự động Để đảm bảo liệu nhập vào file mở, phải xử lý kiện Open workbook Trước tiên, ta đưa

Ngày đăng: 10/11/2019, 13:27

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan