VBA-তে Text এবং CSV Files থেকে ডেটা পড়া এবং লেখা
VBA (Visual Basic for Applications)-এ আপনি Text Files এবং CSV Files থেকে ডেটা পড়তে এবং সেখানে ডেটা লিখতে পারেন। এটি বিশেষভাবে উপকারী যখন আপনি এক্সেল ডেটা অন্য অ্যাপ্লিকেশনে রপ্তানি করতে চান বা অন্যান্য সিস্টেম থেকে ডেটা ইনপোর্ট করতে চান।
এখানে Text Files এবং CSV Files থেকে ডেটা পড়া এবং লেখা সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Text File থেকে ডেটা পড়া এবং লেখা
VBA-তে Text File থেকে ডেটা পড়া এবং লেখা করার জন্য FileSystemObject (FSO) ব্যবহার করা যেতে পারে, অথবা আপনি VBA-এর Open এবং Input/Output স্টেটমেন্টও ব্যবহার করতে পারেন। নিচে দুটি পদ্ধতিতেই কীভাবে টেক্সট ফাইল থেকে ডেটা পড়া এবং লেখা যায়, তা দেখানো হলো।
১. Text File থেকে ডেটা পড়া
Sub ReadTextFile()
Dim filePath As String
Dim fileNumber As Integer
Dim line As String
' ফাইলের পাথ নির্ধারণ
filePath = "C:\path\to\your\file.txt"
' ফাইল ওপেন করা
fileNumber = FreeFile
Open filePath For Input As fileNumber
' ফাইল থেকে ডেটা পড়া
Do Until EOF(fileNumber)
Line Input #fileNumber, line ' একটি লাইন পড়া
MsgBox line ' অথবা, এখানে কোড লিখে ডেটা প্রসেস করতে পারেন
Loop
' ফাইল বন্ধ করা
Close fileNumber
End Subএখানে, Open স্টেটমেন্টের মাধ্যমে ফাইলটি Input মোডে খোলা হয়েছে। এরপর Line Input দিয়ে ফাইল থেকে এক একটি লাইন পড়া হয় এবং EOF (End Of File) চেক করে যখন ফাইলের শেষ পর্যন্ত পৌঁছাবে, তখন loop থেমে যাবে।
২. Text File এ ডেটা লেখা
Sub WriteToTextFile()
Dim filePath As String
Dim fileNumber As Integer
' ফাইলের পাথ নির্ধারণ
filePath = "C:\path\to\your\outputfile.txt"
' ফাইল ওপেন করা (Output Mode)
fileNumber = FreeFile
Open filePath For Output As fileNumber
' ফাইলে ডেটা লেখা
Print #fileNumber, "This is a test line"
Print #fileNumber, "This is another line"
' ফাইল বন্ধ করা
Close fileNumber
End Subএখানে, Open স্টেটমেন্টে Output মোড ব্যবহার করে একটি নতুন ফাইল তৈরি করা হয়েছে বা পুরানো ফাইলের মধ্যে ডেটা লেখা হয়েছে। Print স্টেটমেন্ট দ্বারা ফাইলে ডেটা লেখা হচ্ছে। Close দিয়ে ফাইলটি বন্ধ করা হচ্ছে।
CSV File থেকে ডেটা পড়া এবং লেখা
CSV Files (Comma-Separated Values) হল টেক্সট ফাইল যেখানে ডেটা কমা দিয়ে পৃথক করা হয়। এক্সেল অনেক সময় CSV ফাইলকে ইনপুট হিসেবে ব্যবহার করে, এবং VBA-তে CSV ফাইল থেকে ডেটা পড়া ও লেখা খুবই সহজ।
১. CSV File থেকে ডেটা পড়া
Sub ReadCSVFile()
Dim filePath As String
Dim fileNumber As Integer
Dim line As String
Dim fields() As String
' ফাইলের পাথ নির্ধারণ
filePath = "C:\path\to\your\file.csv"
' ফাইল ওপেন করা
fileNumber = FreeFile
Open filePath For Input As fileNumber
' CSV ফাইল থেকে ডেটা পড়া
Do Until EOF(fileNumber)
Line Input #fileNumber, line ' একটি লাইন পড়া
fields = Split(line, ",") ' কমা দিয়ে পৃথক করা
MsgBox fields(0) ' প্রথম কলামের মান দেখাবে (আপনি যে কলামটি চাচ্ছেন সেটি দেখতে পারবেন)
Loop
' ফাইল বন্ধ করা
Close fileNumber
End Subএখানে, Split ফাংশন ব্যবহার করে কমা দিয়ে পৃথক করা হয়েছে এবং পরে বিভিন্ন কলামের মান ব্যবহার করা হয়েছে।
২. CSV File এ ডেটা লেখা
Sub WriteToCSVFile()
Dim filePath As String
Dim fileNumber As Integer
' ফাইলের পাথ নির্ধারণ
filePath = "C:\path\to\your\outputfile.csv"
' ফাইল ওপেন করা (Output Mode)
fileNumber = FreeFile
Open filePath For Output As fileNumber
' CSV ফাইলে ডেটা লেখা
Print #fileNumber, "Name, Age, Gender" ' হেডার লিখা
Print #fileNumber, "John Doe, 30, Male"
Print #fileNumber, "Jane Smith, 25, Female"
' ফাইল বন্ধ করা
Close fileNumber
End Subএখানে, CSV ফাইলে Print স্টেটমেন্ট দিয়ে কমা দিয়ে ডেটা লেখা হচ্ছে। প্রথম লাইনটিতে হেডার হিসাবে কলাম নাম উল্লেখ করা হয়েছে, তারপর ডেটা লিখা হয়েছে।
File I/O (File Input/Output) পরিচালনার জন্য আরও উন্নত পদ্ধতি
যদি আপনি FileSystemObject (FSO) ব্যবহার করতে চান, তবে এটি আরও উন্নত ফাইল পরিচালনার সুবিধা দেয় এবং এতে ফাইলের সাথে আরও বিভিন্ন কার্যক্রম করা যায় যেমন: ফাইল চেক করা, ফোল্ডার তৈরি করা ইত্যাদি।
FileSystemObject দিয়ে CSV ফাইল পড়া
Sub ReadCSVUsingFSO()
Dim fso As Object
Dim file As Object
Dim line As String
Dim fields() As String
Dim filePath As String
' ফাইলের পাথ নির্ধারণ
filePath = "C:\path\to\your\file.csv"
' FileSystemObject তৈরি করা
Set fso = CreateObject("Scripting.FileSystemObject")
' ফাইল ওপেন করা
Set file = fso.OpenTextFile(filePath, 1)
' ফাইল থেকে ডেটা পড়া
Do Until file.AtEndOfStream
line = file.ReadLine
fields = Split(line, ",")
MsgBox fields(0) ' প্রথম কলামের মান দেখাবে
Loop
' ফাইল বন্ধ করা
file.Close
End Subএখানে, FileSystemObject ব্যবহার করে CSV ফাইলটি খুলে পড়া হচ্ছে। এটি আরও কার্যকরী হতে পারে যখন আপনি ফাইলের সাথে অতিরিক্ত কাজ করতে চান (যেমন: ফাইল এক্সিস্ট করে কিনা চেক করা বা ফাইলের পাথ এক্সেস করা)।
উপসংহার
- Text এবং CSV Files থেকে ডেটা পড়া এবং লেখা একটি মৌলিক কাজ VBA-তে, যা এক্সেল বা অন্য অ্যাপ্লিকেশনগুলির মধ্যে ডেটা ইন্টারচেঞ্জের জন্য ব্যবহৃত হয়।
- Text Files সাধারণত কমা, ট্যাব বা নতুন লাইন দিয়ে পৃথক করা ডেটা ধারণ করে, যেখানে CSV Files ডেটা কমা দ্বারা পৃথক করা হয়, এবং এগুলি বিশেষত এক্সেল ও অন্যান্য স্প্রেডশীট অ্যাপ্লিকেশনগুলির জন্য উপকারী।
- আপনি
Openস্টেটমেন্ট,FileSystemObject(FSO) অথবাInput/Outputস্টেটমেন্ট ব্যবহার করে এই ধরনের ফাইল থেকে ডেটা পড়তে এবং লিখতে পারবেন।
Read more