الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دورة في الAutomation

مغلق
بدأه عمار زاهدة في 9 يوليو 2006 · 18 رد · 1,982 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أود أن أضيف دروس عن الAutomation وذلك لقلت المواضيع عنها و أهميتها داخل فيجوال بيسك وأسأل الله أن تكون ذو فائدة لكم

بسم الله نبدأ

ملاحظة هامة جدا : إصدار الأوفيس لدي 2003 يعني المكتبة إلي مضمنها هيا Microsoft Word 11.0 إلي ما عنده 2003 يستبدلها بأقدم ( شرحي يفضل استخدام 8.0 ( وبالنسبة إلى Excel و PowerPoint نفس الشيء , والمثال الأول من Word لا يحتاج إلى كتبة أما باقي الأمثلة كلها تحتاج إلى مكتباتها .

الدرس الأول: مدخل إلى الAutomation

الكثير منا يسمع عن الAutomation ولابد أنك استخدمت عملية الAutomation من قبل إذن ما هي الAutomation : هي عبارة عن ربط برنامجك المصمم بلغة فيجوال بيسك مع أحد برامج مايكروسوفت أوفيس مثل Word , Excel , PowerPoint لكي تتيح لك التعامل مع أحد البرامج من داخل برنامجك مثل تشغيل برنامج Word والكتابة فيه عن طريق صندوق نص و تنسيقه وأنا هنا سوف أشرح الربط من خلال Word و Excel و PowerPoint إن شاء الله .

وسوف نتعلم مصطلحين الأول Late Binding و الثاني Early Binding وسوف نتعرف عليهما في الدروس المقبلة .

الدرس الثاني: Word Automation

الجزء الأول:

سوف نتعلم في هذا الجزء كيف نربط VB مع Word ( تشغيل + إدخال بيانات )

صمم نموذج بالاعتماد على التالي :

الصورة

09_07_06_03_42_28_1152441748Ex1.JPG

الخصائص

Label

Name: lbl1

Caption: أدخل نص و أنقر على زر عرض بيانات داخل Word

Text Box

Name: txtData

Text: Empty

Command

Name: cmdExit

Caption: خروج

Command

Name: cmdShowDataInWord

Caption: عرض البيانات داخل Word

الكود

Option Explicit
Dim AWord As Object
Private Sub Form_Load ()
Set AWord = CreateObject("Word.Application")
AWord.Documents.Add
AWord.Visible=True
End Sub

Private Sub cmdShowDataInWord_Click ()
AWord.Selection.Text = txtData.Text
End Sub

Private Sub cmdExit_Click ()
Unload Me
End Sub

شرح الكود

AWord- : عبارة عن متغير من نوع Object .

- Set AWord = CreateObject("Word.Application") : خلق كائن (Object) الذي تم تعريفه , وتعريفه بأنه عبارة عن تطبيق Word

-AWord.Documents.Add : لإضافة صفحة Word جديدة فارغة .

-AWord.Visible = True : إظهار تطبيق Word .

-AWord.Selection.Text=txtData.Text : لإرسال القيمة المخزنة في Text Box إلى Word .

الآن نكون قد انتهيا من الجزء الأول و الآن ننتقل إلى الجزء الثاني

الجزء الثاني:

في هذا الدرس سوف نتعلم كيف نعمل تدقيق إملائي و حفظ البيانات و الخروج من برنامج Word

صمم نموذج بالاعتماد على التالي :

الصورة

09_07_06_03_45_01_1152441901Ex_.JPG

الخصائص

Label

Name: lblInsert

Caption: أدخل نص

Text Box

Name: txtData

Text: Empty

Command

Name: cmdShowDataInWord

Caption: عرض البيانات داخل Word

Command

Name: cmdCheckSpelling

Caption: تدقيق النص

Command

Name: cmdExitInWord

Caption: Word خروج من

Command

Name: cmdSave

Caption: حفظ

Command

Name: cmdExit

Caption: خروج

الكود

Option Explicit
Dim AWord As Object

Private Sub cmdCheckSpelling_Click()
	AWord.ActiveDocument.CheckSpelling
	txtData.Text = AWord.Selection.Text
End Sub

Private Sub cmdExit_Click()
	Unload Me
End Sub

Private Sub cmdExitInWord_Click()
	If AWord.ActiveDocument.Saved = True Then
		AWord.Quit
	Else
		AWord.ActiveDocument.Save
		AWord.Quit
	End If
End Sub

Private Sub cmdSave_Click()
	AWord.ActiveDocument.Saved InputBox("أدخل مسار الحفظ و الاسم")
End Sub

Private Sub cmdShowDataInWord_Click()
	AWord.Selection.Text = txtData.Text
End Sub

Private Sub Form_Load()
	Set AWord = CreateObject("Word.Application")
	AWord.Documents.Add
	AWord.Visible = True
End Sub

شرح الكود

AWord.ActiveDocument.CheckSpelling

عمل تدقيق إملائي للنص ( تشغيل المدقق الإملائي )

AWord.Selection.Text = txtData.Text

إرجاع القيمة الصحيحة بعد تدقيقها إملائيا .

AWord.ActiveDocument.Saved InputBox("أدخل مسار الحفظ و الاسم")
حفظ الملف حيث يتم إدخل مسار حفظ الملف و اسم الملف من خلال InputBox مثل C:\Document.doc
	If AWord.ActiveDocument.Saved = True Then
		AWord.Quit
	Else
		AWord.ActiveDocument.Save
		AWord.Quit
	End If

يتم السؤال هنا إذا كان الملف مخزن أم لا . فإذا كان الملف مخزن يتم الخروج من التطبيق أما إذ لم يكن مخزن

يتم تخزين الملف أولا ومن ثم الخروج من التطبيق .

شغل البرنامج :

- عند بداية تشغيل البرنامج سوف يقوم بتعريف متغير وحجز مكان له بالذاكرة .

- خلق الكائن و تخصيصه ليدل على أنه متغير من النوع كائن خاص بالWord

- قم بتعبئة الText بالنص الذي تريد

- قم بالضغط على عرض البيانات داخل Word ستلاحظ أنه نقل النص من الText إلى Word

- قم بالضغط على تدقيق نص ستلاحظ أن المدقق الإملائي الخاص بWord سيظهر في حالة إذا كان هناك أخطاء إملائية في النص وبعد تدقيق الخطأ ستلاحظ أنه تم إعادة النص الصحيح بعد التدقيق إلى Text Box .

- قم بالضغط على حفظ تظهر Input Box يتم من خلاله إدخال موقع التخزين واسم الملف.

- قم بالضغط على خروج من Word للخروج من برنامج Word .

وسوف نأتي الآن إلى إعادة البرنامج السابق ولكن بطريقة أخرى , و أولى هذه الخطوات هي عمل مرجعية

(References) للمكتبة المراد التعامل معها كما يلي :

1) اختيار الأمر Reference من قائمة Project .

2) اختيار المكتبة Microsoft Word 8.0 Object Library أو على حسب إصدار الأوفيس لديك .

- بعد اختيار المكتبة قم بإعادة البرنامج كما يلي :

الكود:

Option Explicit
Dim X As Word.Application

Private Sub cmdCheckSpelling_Click()
X.ActiveDocument.CheckSpelling
txtData.Text = Selection.Text
End Sub

Private Sub cmdExit_Click()
Unload Me
End Sub

Private Sub cmdExitInWord_Click()
X.Quit
End Sub

Private Sub cmdSave_Click()
X.ActiveDocument.SaveAs InputBox("أدخل مسار حفظ الملف و اسم الملف")
End Sub

Private Sub cmdShowDataInWord_Click()
X.Selection.Text = txtData.Text
End Sub

Private Sub Form_Load()
Set X = New Word.Application
X.Documents.Add
X.Visible = True
End Sub

شرح الكود:

- ستلاحظ أن الجمل السابقة هي نفس الجمل المكتوبة في المثال السابق قبل إعادة كتابته إلا أن الفرق بين البرنامجين هو كما يلي :

1- في البرنامج الأول قمنا بتعريف AWord من النوع Object .

2- في البرنامج الثاني قمنا بعمل مرجع لمكتبة Word 8.0 ومن ثم قمنا بتعريف المتغير X من النوع Word.Application .

3- قمنا باستخدام CreateObject وذلك لتخصيص المتغير AWord لتطبيق الWord ولكن خلال وقت التنفيذ ( Run Time ) .

4- قمنا بعمل مرجع وتعريف المتغير X بأنه مخصص لتطبيق الWord خلال وقت التصميم ثم قمنا باستخدام الأمر New لخلق الكائن خلال وقت التصميم (Design Time ) .

5- لقد لاحظت أنه في حالة عمل مرجعيةReference) ) فإنه بمجرد اتباع اسم الكائن X بالنقطة (DOT ) فإن خصائص و آليات الكائن سوف تظهر لك ; مما يسهل عليك استخدام هذه الخصائص والآليات . أما في حالة عدم وجود مرجعية فإنك سوف تضطر لكتابة الخصائص الآليات يدويا دون هذه الخصائص و الآليات معروضة لك .

6- في حالة البرنامج الثاني ( عمل مرجعية ) يسهل ذلك الاستفادة من المساعدة Help التابعة التطبيق Word .

. ملاحظة : في حالة استخدام الأمر CreateObject تدعى الAutomation ب Late Binding و السبب أن الكائن يتم تخصيصه لتطبيق معين في وقت التنفيذ وأن هذه الخصائص لا تكون معروضة لك في وقت التصميم , أما في الحالة الثانية وهي عمل مرجعية فتدعى الAutomation هنا ب Early Binding .

الجزء الثالث:

سوف تتعلم في هذا الجزء أشياء كثيرة منها ( تغير نوع الخط و حجمه و لونه و أشياء أخرى )

هذا المثال سوف يكون التصميم بالغة الإنجليزية لأن بعض الكلمات العربية لا تكون معبرة عما نريد

صمم نموذج بالاعتماد على التالي :

الصورة

09_07_06_03_48_25_1152442105Ex_3.JPG

الخصائص

بعض الأدوات لم أضع لها أسماء منسقة مثل cmdUndo وذلك لتسهيل عملية الشرح وأنا مرفق ملفات الشرح مع الدرس فلا داعي لذلك

الكود

Option Explicit
Dim S As Integer
Dim W As Integer
Dim C As Integer
Dim I As Integer
Dim XDoc As Word.Application

Private Sub Form_Load()
Set XDoc = New Word.Application
XDoc.Documents.Open (App.Path & "/Document.doc")
XDoc.Visible = True
S = XDoc.Documents(1).Sentences.Count
For I = 1 To S
	Combo1.AddItem I
Next I
Combo4.Clear
For I = 10 To 30 Step 2
	Combo4.AddItem I
Next I
Combo5.AddItem "Red"
Combo5.AddItem "Blue"
Combo5.AddItem "Green"
Combo5.AddItem "Yellow"
End Sub

Private Sub Combo1_Click()
Combo2.Clear
W = XDoc.Documents(1).Sentences(Combo1.Text).Words.Count
	For I = 1 To W
		Combo2.AddItem I
	Next I
XDoc.Documents(1).Sentences(Combo1.Text).Select
End Sub

Private Sub Combo2_Click()
Combo3.Clear
C = XDoc.Documents(1).Sentences(Combo1.Text).Words(Combo2.Text).Characters.Count
For I = 1 To C
	Combo3.AddItem I
Next I
XDoc.Documents(1).Sentences(Combo1.Text).Words(Combo2.Text).Select
End Sub

Private Sub Combo3_Change()
XDoc.Documents(1).Sentences(Combo1.Text).Words(Combo2.Text).Characters(Combo3.Text).Select
End Sub

Private Sub Check1_Click()
If Check1.Value = 1 Then
	XDoc.Selection.Font.Bold = True
Else
	XDoc.Selection.Font.Bold = False
End If
End Sub

Private Sub Check2_Click()
If Check1.Value = 1 Then
	XDoc.Selection.Font.Italic = True
Else
	XDoc.Selection.Font.Italic = False
End If
End Sub

Private Sub Check3_Click()
If Check1.Value = 1 Then
	XDoc.Selection.Font.Underline = True
Else
	XDoc.Selection.Font.Underline = False
End If
End Sub

Private Sub Option1_Click()
XDoc.Selection.Font.Name = "Arial"
End Sub

Private Sub Option2_Click()
XDoc.Selection.Font.Name = "Arial Black"
End Sub

Private Sub Option3_Click()
XDoc.Selection.Font.Name = "Tohama"
End Sub

Private Sub Combo4_Change()
XDoc.Selection.Font.Size = Combo4.Text
End Sub

Private Sub Combo5_Change()
Select Case Combo5.ListIndex
	Case 0
		XDoc.Selection.Font.ColorIndex = wdRed
	Case 1
		XDoc.Selection.Font.ColorIndex = wdBlue
	Case 2
		XDoc.Selection.Font.ColorIndex = wdGreen
	Case 3
		XDoc.Selection.Font.ColorIndex = wdYellow
End Select
End Sub



Private Sub Command1_Click()
XDoc.Selection.InsertBefore Text:=txtData.Text
XDoc.Documents(1).Undo
End Sub

Private Sub Command2_Click()
XDoc.Selection.InsertAfter Text:=txtData.Text
XDoc.Documents(1).Redo
End Sub

Private Sub Command3_Click()
XDoc.ActiveDocument.Undo
End Sub

Private Sub Command4_Click()
XDoc.ActiveDocument.Redo
End Sub

Private Sub Command5_Click()
Unload Me
End Sub

Private Sub Form_Click()
XDoc.Selection.MoveDown
End Sub

شرح الكود

1- تم تعريف المتغير XDoc من نوع Word.Application .

2- في الحدث Form_Load تم خلق الAutomation و تخزينه في المتغير XDoc من خلال جملة

Set XDoc = New Word.Application

3- تم فتح الملف Document من خلال الجملة

XDoc.Documents.Open (App.Path & "/Document.doc")

وجملة XDoc.Visible = True لإضهار التطبيق وإضهار الملف الذي تم استدعاءه من خلال الإجراء Open .

4- في الحدث Form_Load أيضا تم تعبئة Combo1 بالأرقام من 1 إلى عدد الجمل في النص .

5- عند الضغط على Combo1 يتم تعبئة Combo2 بالأرقام من 1 إلى عدد الكلمات الموجودة في الجملة المحددة بحيث يتم تحديد الجملة بحسب الرقم الذي تم اختياره من Combo1 .

6- عند الضغط على Combo2 يتم تعبئة Combo3 بالأرقام من 1 إلى عدد الأحرف الموجودة في الكلمة بحسب الرقم الذي يتم اختياره من Combo2 .

7- عند الضغط على Combo3 يتم تحديد الحرف بحسب الرقم الذي يتم اختياره من Combo3 .

8- يتم تطبيق خيارات ال Check Boxعلى النص المحدد .

9- يتم تطبيق خيارات الOption Button على النص المحدد .

10- يتم اختيار حجم الخط وتطبيقه على النص المحدد من خلال Combo4 .

11- يتم اختيار لون الخط و تطبيقه على النص المحدد من خلال Combo4 .

12- الزر تراجع للتراجع عن تنفيذ الأوامر .

13- الزر إعادة لتكرار تنفيذ الأوامر .

14- إدخال نص في Text Box و الضغط على زر أدخل قبل اختيار النص لإضافة قبل النص المحدد .

15- إدخال نص في Text Box و الضغط على أدخل بعد اختيار النص لإضافته بعد النص المحدد .

والآن نكون قد أنهيا الدرس الثاني Word Automation .

الدرس الثالث: Excel Automation .

مقدمة

سوف نتعلم في هذا الدرس كيفية ربط VB مع برنامج Excel فأنه أيضا يمكنك التعالم مع تطبيق Excel كما تعاملنا مع تطبيق Word.

الجزء الأول:

صمم نموذج بالاعتماد على التالي :

الصورة

09_07_06_03_50_35_1152442235Ex_4.JPG

الخصائص

المثال مرفق

الكود

Option Explicit
Dim XExcel As Excel.Application
Dim I

Private Sub cmdAddHeader_Click()
Range("A" & 1).Value = "Name"
Range("B" & 1).Value = "Mark1"
Range("C" & 1).Value = "Mark2"
End Sub

Private Sub cmdMoveToExcel_Click()
For I = 0 To List1.ListCount - 1
	Range("A" & I + 2).Value = List1.List(I)
	Range("B" & I + 2).Value = List2.List(I)
	Range("C" & I + 2).Value = List2.List(I)
Next I
End Sub

Private Sub cmdMoveToLists_Click()
List1.AddItem Text1.Text
List2.AddItem Text2.Text
List3.AddItem Text3.Text
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub

Private Sub Combo1_Click()
Selection.Font.Size = Combo1.Text
End Sub

Private Sub Combo2_Click()
Selection.Font.Name = Combo2.Text
End Sub

Private Sub Combo3_Click()
Selection.Font.ColorIndex = Combo3.Text
End Sub

Private Sub Command1_Click()
	Range(InputBox("أدخل المدى")).Select
End Sub

Private Sub Form_Load()
Set XExcel = New Excel.Application
	XExcel.Workbooks.Add
	XExcel.Visible = True

For I = 2 To 20 Step 2
	Combo1.AddItem I
Next I

With Combo2
	.AddItem "Arial"
	.AddItem "Times New Roman"
	.AddItem "Arabic Transparent"
	.AddItem "Andalus"
	.AddItem "Tohama"
End With
End Sub

شرح الكود

1- بعد تنفيذ البرنامج خلق الكائن XExcel في الحدث Form_Load و تخصيصه للتطبيق Excel من خلال جملة :

Set X = New Excel. Application
X.Workbooks.Add

إضافة كتاب جديد على الExcel .

X.Visible=True

إظهار تطبيق الExcel .

2- اضغط على إضافة عنوان لإضافة الترويسة إلى صفحة الاكسل .

3- قم بإدخال القيم في Text1 و Text2 و Text3 .

4- اضغط على نقل إلى القوائم لنقل البيانات من Text Box إلى الList Box .

5- كرر الخطوة ( 3 + 4 ) أكثر من مرة .

6- اضغط على نقل إلى Excel لنقل البيانات من List إلى Excel .

7- اضغط على مفتاح اختيار المدى لتحديد المدى المراد تنسيقه وذلك بإدخال المدى عن طريق Input Box مثل A1:A4 .

8- بعد تحديد المدى اختار نوع الخط وحجمه ولونه من خلال خيارات الCombo Box .

الجزء الثاني:

سوف نتعلم في هذا الدرس أشياء أعمق من الجزء الأول مثل تشغيل Excel وعمل معادلات و حفظ بيانات و إيجاد المجموع فهذا الدرس مهم والجزء الأول تبسيط لفهم هذا الجزء .

صمم نموذج بالاعتماد على التالي:

الصورة:

09_07_06_03_52_09_1152442329Ex_5.JPG

الخصائص

المثال مرفق

الكود

Option Explicit
Dim X As Excel.Application

Private Sub Command1_Click()
Set X = New Excel.Application
X.Workbooks.Add
X.Visible = True
End Sub

Private Sub Command2_Click()
With X
	.Range("A1").Value = "ÇáÑÞã ÇáÃæá"
	.Range("B1").Value = "ÇáÑÞã ÇáËÇäí"
	.Range("C1").Value = "ÇáãÌãæÚ"
	.Range("D1").Value = "ÇáãÚÏá"
	.Range("A2").Value = Text1.Text
	.Range("B2").Value = Text2.Text
End With
End Sub

Private Sub Command3_Click()
X.Range("C2").Formula = "Sum(A2:B2)"
Text2.Text = X.Range("C2").Value
End Sub

Private Sub Command4_Click()
X.Range("D2").Formula = "=Average(A2:B2)"
Text4.Text = X.Range("D2").Value
End Sub

Private Sub Command5_Click()
Dim SavePath As String
SavePath = InputBox("ÃÏÎá ãÓÇÑ ÍÝÙ ÇáãáÝ æ ÇáÇÓã")
X.ActiveWorkbook.SaveAs SavePath
End Sub

Private Sub Command6_Click()
If X.ActiveWorkbook.Saved = True Then
	X.Quit
Else
	X.ActiveWorkbook.Save
	X.Quit
End If
End Sub

Private Sub Command7_Click()
Unload Me
End Sub

شرح الكود

1- بعد تنفيذ البرنامج اضغط على تشغيل Excel لفتح برنامج أكسل حيث أن :

Set X = New Excel. Application

خلق الكائن X وتخصيصه للتطبيق Excel .

X.Workbooks.Add

إضافة كتاب جديد على Excel .

X.Visible = True

إظهار تطبيق Excel

2- قم بإدخال القيم في Text1 و Text2 .

3- قم بالضغط على المفتاح أرسل البيانات إلى Excel حيث أن:

X.Range("A1").Value="الرقم الأول"

وضع قيمة الرقم الأول في الخلية A1

X.Range("B1").Value="الرقم الثاني"

وضع قيمة الرقم الثاني في الخلية B1 , وهكذا ...

X.Range("A2").Value = Text1.Text

نقل القيمة المخزنة في Text1 إلى الخلية A2 .

X.Range("B2").Value = Text2.Text

نقل القيمة المخزنة في Text2 إلى الخلية B2 .

4- قم بالضغط على مفتاح إيجاد المفتاح حيث أن:

X.Range("C2").Formula = "=sum(A2:B2)"

احتساب مجموع القيمتين الموجودتين في الخلية A2 و B2 و تخزين الناتج في الخلية C2 .

Text3.Text = X.Range("C2").Value

إرجاع ناتج الجمع من الخلية C2 و تخزينه في Text3 .

5- قم بالضغط على إيجاد المعدل حيث أن:

X.Range("D2").Formula = "=Average(A2:B2)"

احتساب معدل من القيمتين الموجودتين في الخلية A2 و B2 وتخزين الناتج في الخلية C2 .

Text4.Text = X.Range("D2").Value

إرجاع المعدل من الخلية D2 و تخزينه في Text4 .

6- قم بالضغط على حفظ باسم من أجل تخزين الملف بحيث يتم إدخال الموقع ( المسار ) المراد التخزين فيه وإدخال اسم الملف من خلال InputBox . مثل أن ندخل C:\Sale.xls .

7- قم بالضغط على إغلاق Excel لإغلاق تطبيق الExcel حيث يتم السؤال عن حالة الملف فيما إذا كان مخزن أم لا فإذا كان الملف مخزن يتم إغلاق التطبيق أما إذا لم يكن غير مخزن فيتم أولا تخزين الملف ومن ثم إغلاق التطبيق .

والآن نكون قد انهينا الدرس الثالث Excel Automation.

الدرس الرابع: PowerPoint Automation

سوف تتعلم في هذا الدرس ربط VB ببرنامج PowerPoint ( عرض شرائح , إضافة صورة , إلخ ...)

الجزء الأول:

في هذا الجزء سوف تتعلم الأساسيات للربط بPowerPoint .

صمم نموذج بالاعتماد على التالي:

الصورة

09_07_06_03_57_49_1152442669Ex_6.JPG

الخصائص

المثال مرفق

الكود

Option Explicit
Dim XPP As PowerPoint.Application
Dim X
Dim Pic

Private Sub Command1_Click()
X = Val(InputBox("ÃÏÎá"))
If Option1.Value = True Then
	XPP.ActivePresentation.Slides(X).ColorScheme.Colors(ppBackground).RGB = vbGreen
ElseIf Option2.Value = True Then
	XPP.ActivePresentation.Slides(X).ColorScheme.Colors(ppBackground).RGB = vbYellow
ElseIf Option3.Value = True Then
	XPP.ActivePresentation.Slides(X).ColorScheme.Colors(ppBackground).RGB = vbBlue
ElseIf Option4.Value = True Then
	XPP.ActivePresentation.Slides(X).ColorScheme.Colors(ppBackground).RGB = vbRed
End If
End Sub

Private Sub Command2_Click()
Set XPP = New PowerPoint.Application
XPP.Presentations.Add
On Error Resume Next
XPP.ActivePresentation.Slides.Add 1, ppLayoutBlank
XPP.Visible = True
End Sub

Private Sub Command3_Click()
If XPP.ActivePresentation.Slides.Count > 8 Then
	MsgBox "ÛíÑ ÞÇÏÑ Úáì ÅÖÇÝÉ ÔÑíÍÉ"
	Exit Sub
Else
	XPP.ActivePresentation.Slides.Add Val(InputBox("ÃÏÎá")), ppLayoutBlank
End If
End Sub

Private Sub Command4_Click()
Pic = InputBox("ÃÏÎá ãÓÇÑ ÇáÕæÑÉ")
XPP.Presentations(1).Slides(1).Shapes.AddPicture Pic, msoCTrue, msoTrue, 100, 100, 200, 200
End Sub

Private Sub Command5_Click()
With XPP.ActivePresentation.Slides.Range.SlideShowTransition
.EntryEffect = ppEffectBoxIn
.Speed = ppTransitionSpeedMedium
.AdvanceOnClick = msoFalse
.AdvanceOnTime = msoTrue
.AdvanceTime = 1
End With
XPP.ActivePresentation.SlideShowSettings.LoopUntilStopped = msoCTrue
XPP.ActivePresentation.SlideShowSettings.Run
End Sub

شرح الكود

Dim XPP As PowerPoint.Application

-تم تعريف المتغير XPP و تخصيصه للتطبيق PowerPoint .

Private Sub Command2_Click()
Set XPP = New PowerPoint.Application
XPP.Presentations.Add
On Error Resume Next
XPP.ActivePresentation.Slides.Add 1, ppLayoutBlank
XPP.Visible = True
End Sub

-تم فتح التطبيق PowerPoint من خلال جملة New ومن إضافة ملف ( عرض تقديمي ) جديد من خلال جملة XPP.Persentations.Add ومن ثم إضافة شريحة فارغة على الملف ومن ثم إظهار التطبيق .

Private Sub Command3_Click()
If XPP.ActivePresentation.Slides.Count > 8 Then
	MsgBox "ÛíÑ ÞÇÏÑ Úáì ÅÖÇÝÉ ÔÑíÍÉ"
	Exit Sub
Else
	XPP.ActivePresentation.Slides.Add Val(InputBox("ÃÏÎá")), ppLayoutBlank
End If
End Sub

-هذا الإجراء يستخدم لإضافة شرائح جديدة بحيث يتم إضافة 8 شرائح كحد أقصى, حيث إذا كان عدد الشرائح الموجودة في الملف أكبر من 8 يتم إظهار Input Box لإدخال موقع إضافة الشريحة الجديدة حيث أن جميع الشرائح التي سوف يتم إضافتها من نوع ppLayoutBalnk ( فارغة ).

Private Sub Command4_Click()
Pic = InputBox("ÃÏÎá ãÓÇÑ ÇáÕæÑÉ")
XPP.Presentations(1).Slides(1).Shapes.AddPicture Pic, msoCTrue, msoTrue, 100, 100, 200, 200
End Sub

-هذا الإجراء لإضافة صورة على الشريحة الأولى حيث يتم إدخال اسم الصورة و موقعها من خلال إدخالها عن طريق Input Box و تمثل الأرقام الأخيرة في الأجراء إحداثيات الصورة و حجمها.

Private Sub Command5_Click()
With XPP.ActivePresentation.Slides.Range.SlideShowTransition
.EntryEffect = ppEffectBoxIn
.Speed = ppTransitionSpeedMedium
.AdvanceOnClick = msoFalse
.AdvanceOnTime = msoTrue
.AdvanceTime = 1
End With
XPP.ActivePresentation.SlideShowSettings.LoopUntilStopped = msoCTrue
XPP.ActivePresentation.SlideShowSettings.Run
End Sub

-هذا الإجراء يستخدم لإضافة خلفية ( لون ) للشرائح حيث يتم اختيار اللون من الألوان الموجودة داخل ال Frame ومن ثم الضغط على لون الخلفية فيتم إظهار Input Box لإدخال رقم الشريحة المراد تغيير الخلفية لها باللون الذي تم اختياره .

Private Sub Command5_Click()
With XPP.ActivePresentation.Slides.Range.SlideShowTransition
.EntryEffect = ppEffectBoxIn
.Speed = ppTransitionSpeedMedium
.AdvanceOnClick = msoFalse
.AdvanceOnTime = msoTrue
.AdvanceTime = 1
End With
XPP.ActivePresentation.SlideShowSettings.LoopUntilStopped = msoCTrue
XPP.ActivePresentation.SlideShowSettings.Run
End Sub

-هذا الإجراء يستخدم لعملية إجراء العرض للشرائح الموجودة في الملف حيث تم تحديد نوع الحركة لكل شريحة و سرعة العرض و تحديد التوقيت بين الشرائح بمقدار ثانية واحدة .

-تم استخدام الجملة التالية لإبقاء العرض مستمر بحيث لا ينتهي العرض إلا إذا قمنا بإيقافه يدويا عن طريق الضغط على مفتاح ESC .

-الجملة التالية تقوم ببدء عملية العرض وهي :

XPP.ActivePresentation.SlideShowSettings.Run

والآن نكون قد انتهينا من شرح الAutomation

ويمكنكم الآن البدء بالتطوير مثل إضافة حركة جديدة داخل PowerPoint و عمل معادلة ضرب داخل Excel و إدراج جدول داخل Word وهكذا.

Example.rar

#2

الله يبارك فيك

والله يوفقك

Mimo

040.gif

#3

جعل الله هذا العمل الطيب في ميزان حسناتك

و جزاك عنا كل خير .

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#4

موضوع رااااااائع

جزاك الله خير

وربنا معك ومع كل المؤمنين إن شاء الله

Never Give Up You Are Programmer

Being Genius Is The Step Before Madness

Artificial Intelligence Is No Match For Natural Stupidity

#5

شكراً جزيلاً وفقك الله ، اخي العزيز

تحياتي

#6

موضوع جديد وجيد عن ال Automation في المنتدي..

وصدفة غريبة .. لأنني أقوم بالفعل بكتابة موضوع عن ال Automation الخاص بال IE ..

#7

جزاك الله كل خير مجهود رائع

ادعو لي بالهداية فأنا أحتاج هذا الدعاء بشدة

منتدى تصميم التطبيقات (و يشمل نظم التشغيل) و تعريبها. <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

بعض ردودي ومشاراكاتي في المنتدى:

1- هل تريد التحكم بجهازك كأنك محترف, ( إذاً تعال معي وتعلم الرجستري Registry ).

...|-->> فكرة عامة عن الرجستري وكيفية التعامل معه ( رقم المشاركة 1 - 4 )

...|-->> كتابة ملف رجستري

...|-->> تشغيل الرجستري دون رسائل( في الخفاء )

...|-->> بعض التحكمات التي يقدمها الرجستري

...|-->>=>> إيقاف عمل Ctrl+Alt+delete ( Task Manager )

...|-->>=>> إخفاء قائمة ملف file وبذلك لن ترى قائمة file

...|........... في مشاركة أخرى >> حتى ولو قمت بالضغط على أي ملف أو مجلد بزر الفأرة الأيمن

...|-->>=>> لإيقاف وإخفاء عمل البحث Find من على الجهاز

...|-->> بعض المعلومات التي يقدمها الرجستري

...|-->>=>> معرفة الأجهزة المتصلة بالـIDE ورقم السريال الخاص لكل جهاز

...|-->> من أحسن مواقع الرجستري

...|-->>=>> http://technet2.microsoft.com/WindowsServe...3.mspx?mfr=true

منتدى مبرمجي لغة Microsoft Visual Basic <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

برامج من صنعي:

1- لعبة (من صنعي ), جربها وقول رأيك

2- ساعة حائط, من صنعي

بعض ردودي ومشاراكاتي في المنتدى:

1- طريقتان لفتح ملف معين وليكن بامتداد SWF ببرنامجك [ الطريقة الأولى - الطرقة الثانية ]

2- هل تريد ألا يتحكم أحد في الجهاز غيرك؟

3- كود ايقاف عمل زر الاغلاق x بزاوية الفورم

4- عرض صورة متحركة بالكود , أي بدون استخدام أدوات

5- اجعل الـComboBox [ تنسدل - لما تكتب فيا تنسدل وتظهر الاسماء التى تبدأ بالحرف اللي كتبته فى الكومبو ]

6- إنشاء مكون أثناء تشغيل البرنامج ثم إدخاله تحت نطاق مكون آخر مثلاً إدخاله داخل نطاق microsoft tabbed dialog control

أسئلتي في المنتدى التي تم الإجابة عليها:

1- كيف يمكن قراءة الإشارات الصوتية الخارجة من الميكروفون أو السماعات ( لرسمها أو العبث بها ) ؟ أرجو المزيد من الردود ...

2- إيقاف عمل الرجستري

أسئلتي في المنتدى التي لم يتم الإجابة عليها:

اقتباس
ردك يعطي حافذ للإجابة على أسئلتك
#9

مجهود رائع ويعطيك العافية

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#10

تسلم مجهود تشكر عليه

#11

شكرا لكم ولكن أين المشرفين عن الموضوع

#12

???????????

الموضوع سخيف ولا غير مفهوم

#13

موضوع اكثر من ممتاز ولكنه صعب شوية

شكرا جزيلا

#14
اقتباس
موضوع اكثر من ممتاز ولكنه صعب شوي

الدرس حاولت أن أشرحه بكل سهولة

شو الصعب فيه

#15

مجهود رائع تشكر عليه

#16

بسم الله الرحمن الرحيم

وكل عام والجميع بألف خير

شكرا جزيلا لك اخي على هذا الشرح الرائع

والله يوفقك

اخوك

#17

بسم الله الرحمن الرحيم

لدي طلب و ارجو ما تخيبوني

انا عملت برنامج حسلبي بسيط يقوم بحساب الضرائب و ليس له قاعدة بيانات اي كله عبارة عن جمع و ضرب ووضع الناتج في حقول تكست

و ان ما اريده هو ان يقوم البرنامج بحفظ العمل و ان يسأل المستخدم قبل الاغلاق فيما اذا كان يريد الحفظ ام لا و ان يحفظ بأي صيغة مثل وورد او اكسل او نوت باد

ارجو ان يكون الطلب واضح و بانتظاركم جزاكم الله خيرا

#18

تفضل أخ memouz

Save_To_Txt.rar

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#19

مشكور اخ hnhn و لكن لدي استفسار البرنامج يحفظ في ملف التكست و عند حفظ شيء اخر يقوم بحذف الاول فهل من طريقة للحفظ في مكان يختاره المستخدم

جزاك الله خيرا

تم تعديل هذه المشاركة بواسطة memouz في 30 أكتوبر 2006 في 01:37

هذا الموضوع مغلق.

مواضيع مشابهة