بســم الله الـرحمــن الرحيــم
أريد أن أفتح ملف EXCEL من علي VB ووضع شيت علي الفورم وحفظ البيانات داخل ملف Excel آخر
بســم الله الـرحمــن الرحيــم
أريد أن أفتح ملف EXCEL من علي VB ووضع شيت علي الفورم وحفظ البيانات داخل ملف Excel آخر
قل لن يصيبنا إلا ما كتب الله لنا
ضع هذا الكود في Form جديد فارغ
Private hExcel As Long
ولا تنسى تحميل Reference الـ Excel التي تسمى بـ Microsoft Excel 10.0 Object Library
أو إي إصدار مختلف .. 11 مثلا إذا كنت تستخدم Excel 2003
وللأمانة العلمية هذا رابط الموضوع الأصلي
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
هذة طريقة عمل برنامج يتعامل مع جميع تطبيقات اوفيس
يمكن ان تاحذ منة ما يكفيك
أولاّ: تصميم هذا البرنامج يحتاج إلى :
1. Form نجعل الخاصية Name هي frm_main
2. زرين أمر Command Button نجعل الخاصية Name للأول Cmd_Open وللثاني cmd_exit
3. أداة الـ Common Dialog نجعل الخاصية Name هي Dlg_Open
ثانياً : نحتاج إلى تعريف بعض المكتبات لتمكننا من التحكم التام بهذه التطبيقات وهي كالتالي:
من قائمة Project نختار References ثم نختار المكتبات التالية:
Microsoft Access Object Library Microsoft Excel Object Library Microsoft PowerPoint Object Library Microsoft Word Library
ثالثاً: ندخل إلى خصائص الـ Common Dialog ثم نكتب في الحقل Flags مايلي:
Access (*.mdb)|*.mdb|Excel (*.xls)|*.xls|PowerPoint (*.ppt)|*.ppt|Word (*.Doc)|*.Doc|
وذلك لتحديد لواحق البرامج التي ستقوم الأداة بفتحها.
رابعاً : نعرف المتحولات التالية:
Dim wrd As Word.Application Dim exl As Excel.Application Dim acc As Access.Application Dim ppt As PowerPoint.Application
ملاحظة يمكننا تعريف المتحولات السابقة من النوع Object ولكن لسهولة البرمجة عرفنا لكل متحول ما سيناسب غرض البرمجة.
خامساً: نكتب الكود التالي في زر الأمر Cmd_Open
Private Sub cmd_open_Click()
Dim file As String
dlg_open.ShowOpen
file = dlg_open.FileName
If (Right(file, 3) = "Doc") Then
Set wrd = CreateObject("word.application")
wrd.Visible = True
wrd.Documents.Open (file)
Set wrd = Nothing
ElseIf (Right(file, 3) = "Xls") Then
Set exl = CreateObject("Excel.application")
exl.Visible = True
exl.Workbooks.Open (file)
Set exl = Nothing
ElseIf (Right(file, 3) = "ppt") Then
Set ppt = CreateObject("powerpoint.application")
ppt.Visible = msoTrue
ppt.Presentations.Open (file)
Set ppt = Nothing
ElseIf (Right(file, 3) = "mdb") Then
Set acc = CreateObject("access.application")
acc.Visible = True
acc.Application.OpenAccessProject (file)
Set acc = Nothing
End If
End Subشرح الكود:
أولاً عرفنا متحول من النوع String ليحمل اسم ومسار التطبيق المراد فتحه وسيفيدنا باستخدامه بدلاً من استخدام مسار
التطبيق في الـ Common Dialog أي dlg_open.FileName
استخدمنا If Right لقراءة آخر ثلاث حروف من يمين مسار التطبيق أي لقراءة اللاحقة وتحديد نوع التطبيق سواء كان Word أو Excel .....
1. فإذا كان التطبيق Microsoft Word جعلنا الخاصية Visible هي True لإظهار التطبيق وبدون استخدامها سيفتح التطبيق في الذاكرة ولن يظهر أمامنا. ثم استخدمنا أمر فتح التطبيق كما هو موضح ضمن الكائن Documents . ثم حررنا المتحول من الذاكرة.
2.أما إذا كان التطبيق Microsoft Excel جعلنا الخاصية Visible هي True لنفس السبب السابق ثم استخدما أمر فتح التطبيق كما هو موضح ضمن الكائن الموجود ضمن الكائن WorkBooks . ثم حررنا المتحول من الذاكرة.
3.وإذا كان التطبيق Microsoft PowerPoint نجعل الخاصية Visible هي msoTrue أيضاً لنفس السبب السابق. ثم استخدمنا
أمر فتح الموجود ضمن الكائن Presenations . ثم حررنا الكائن من الذاكرة.
4.أما إذا كان التطبيق Microsoft Access نجعل الخاصية Visible هي True لنفس السبب السابق. ثم استخدمنا أمر فتح التطبيق ضمن الكائن Application.ثم نحرر المتحول من الذاكرة.
ملاحظة : إن التعليمات السابقة لا تحدث كلها بآن واحد وإنما تبعاً لنوع التطبيق تنفذ الأوامر الخاصة به.
وايضا للامانة الموضوع منقول
تم تعديل هذه المشاركة بواسطة amr soft في 11 يناير 2009 في 22:04