4. 4
الكتاب زلتويات1
1. Chapter 1 :- getting Started
i. اوادلاكر
ii. االمان اعدادات
iii. Msg Box
2. Chapter 2 :- Sheets , Cells
i. التحديد
ii. اخلصائص
iii. With ……End with
iv. Colors
3. Chapter 3 :- Variable / Variable Type
i. Variable
ii. Object variable
iii. Variable type
iv. Array ادلصفوفو
v. Constant ابتوالث
vi. اتَتادلتغ مدى
4.Chapter 4 :- operators and operands
5. Chapter 5 :- procedures and Functions
i. Public , Private
ii. Functions
iii. Arguments الوسائط
iv. Optinal Arguments
v. By Val , By Ref
6. Chapter 6 :- Condetion
i. If condition
ii. Select Case
iii. Loop
iv. Input Box
7. Chapter 7 :- properties / Methods
i. Offset property
ii. Resize property
iii. Address property
iv. Current Region property
v. Clear Method
vi. Cut , Copy , Past Special
vii. Insert , Delete Methods
viii. Count Property
ix. Value Property
x. Text Property
xi. Column , Row Properties
xii. Has formula Property
xiii. Set keyword
xiv. Enter Row , Enter Column
xv. Hidden
xvi. Formula
• Absolute formula
• Relative formula
5. 5
2
8. Chapter 8 :- Events
i. Work book Events
ii. Worksheet Events
iii. On Time Event
9. Chapter 9 :- Strings –Strings functions
i. LCase – UCase
ii. Trim –Len –Space
iii. Replace function
iv. Mid function
v. Option Explicit
vi. Split function
vii. Join function
10. Chapter 10 :- Arrays
i. Usinge Arrays
ii. Using Arrays ( exercise)
11.Chapter 11 :- supplements
i. Using excel functions
ii. Vba Triks
• Date and Time
• Random Number
• Stop Macro
• Counter
ىامو وظائف
البيان نوع اختبار وظائف
ياضيورال الوالد
البيان نوع ربويل داالت
الوقتو يخرالتا داالت
ادلاليو الوالد
OnKey Method
OnUndo Method
For Eash …………..Next
12. Chapter 12 :- Error Handling
i. Error
ii. Type of Error
iii. Immediate Window
iv. Debugging
13.Chapter 13 :- UserForm
Chapter 14 :- Synatix
o Is Numeric
o Mod
o Round
o Val
o Is null
o format
استخدام على تطبيقVlookUpفورم اليوزر ىف
العمل ورقو نفس وىف اخرى اىل عمل ورقو من الًتحيل
الفورم ىف احلذفو التعديلو البحثو الًتحيل على نطبيق
التعديلو الًتحيل بعد الفورم عناصر لتصفيو شليز كود
الفورم خالل من للًتحيل اخر شكل
العمل لورقو بالنسبو فورم اليوزر موضع تعيُت
فورم باليوزر اخلروج زر تعطيل
فورم لليوزر وتصغَت تكبَت زر إظهار
الفورم وإظهار االكسيل إخفاء كود
ادلتكرر حذف كود
سرى برقم ادواالك ضبايو
فورم خالل من للتطبيق باسورد وضع
اجعرادل قائمو
27. 27
العمود قمرو الصف يقرط عن اخللية اختيار
Sub selection()
اٌظف ٝف ٗ١ٍاٌخ رسذ٠ذ8ٚاٌؼّٛد1
Cells(8, 1).Select
End Sub
الزظ
Cells([row] [,column])
'Examples of the Cells property
Sub CellsExample()
Cells.Clear 'clears active selection
Cells(1).Value = "This is A1 - row 1"
Cells(, 1).Value = "This is A1 - col 1"
Cells(1, 1).Value = "This is A1 - explicit"
Cells(3, 3).Value = "This is C3"
Cells(5, 3).Font.Bold = True
End Sub
دٌنامٌكٌة أكثر لتحدٌدات تسمح الخالٌا تحدٌد ًف طرٌقة.
مثال هو هنا
Sub selection()
' الصؾ فى خلٌة ل ًعشوائ تحدٌد1إلى10والعمود1
Cells(Int(Rnd * 10) + 1, 1).Select
'Translation :
'Cells([random_number_between_1_and_10], 1).Select
End Sub
Moving a selection حذشٚكانخذذٚذ
Sub selection()
'رسذ٠ذخٍ١خ(اٌخٍ١خإٌشـخزبٌ١ب)
ActiveCell.Offset(2, 1).Select
End Sub
يكررببعرمالتحديدالصفوفاثنُتإىلأسفلوعموداحدوإىل
اليمُت:
رشح سُمتOffsetىف ًاالحل خفطَيًاب
إًىذاب ُشإ
28. 28
ربديدالصفوف
فمنادلمكنلتحديدصفوفاستخدامامرواألRange or Rows
Sub selection()
'Selecting rows 2 to 6
Range("2:6").Select
End Sub
او
Sub selection()
'Selecting rows 2 to 6
Rows("2:6").Select
End Sub
األعمدة ربديد
كماىواحلالمع،الصفوفمنادلمكنلتحديدأعمدةبأكملهااستخدامامرواألRange or Columns
Sub selection()
'Selecting columns B to G
Range("B:G").Select
End Sub
او
Sub selection()
'Selecting columns B to G
Columns("B:G").Select
End Sub
29. 29
Properties (sheets and cells)
يفىذا،ينرالتمسوفنكتبتعليماتVBAالربرليةاليتتقومبتعديلاحملتوىوظهوراخلاليااقرأووالعمل.
ًالوأافتح،احملررإضافةوحدةظلطيةنسخوادلاكروأدناه،فيوبطوروبزرصيغة
Sub properties()
'Incomplete Macro
Range ("A8")
End Sub
أننايدرنلتعديلاخلليةA8يفبدايةىذاادلاكرو.
لعرضقائمةاألشياءادلمكنةاليتؽلكنأنتكوننةًتمقبكائن،النطاقإضافةفًتةمابعدRange("A8")
سيتماآلنعرضدلختلفاالحتماالت...
يفىذاادلثال،األولانقرعلى"Value""،ومنمثعلىمفتاحTabللتحققمنصحةاختيارك
Sub properties()
'Incomplete Macro
Range("A8").Value
End Sub
يفىذه،احلالةاخلاصيةvalue،سبثلياتوزلتاخللية.القيمو تعيُت من البد لذلكو
سوفنعُتالقيمة48إىلاخلليةA8:
Sub properties()
'A8 = 48
Range("A8").Value = 48
'Translation :
'The value of cell A8 is equal to 48
End Sub
مثأنناسوفنص نعُتSample textإىلاخلليةA8)ىام:غلبأنيكونالنصداخل:(""
30. 30
Sub properties()
'A8 = Sample text
Range("A8").Value = "Sample text"
End Sub
اخلليو قيمو تعديل يتم سوف فانو الزر على ضغطت اذاA8قوربالو الزر كاناذاو االوىل قوريالو الزر كاناذا االوىل الورق ىف
اخلليو بتعديل يقوم سوف الثانيوA8استخدم التنفيذ زر مكان عن النظر بغض معينو قورو ىف خليو قيمو تغيَت اردت اذا اما
Sheets("Name_of_the_sheet") or Sheets(Number_of_the_sheet).
عليها التعديل احداث ادرادل الصفحو لتحديد لذلكو
Sub properties()
'A8 on sheet 2 = Sample text
Sheets("Sheet2").Range("A8").Value = "Sample text"
'Or :
'Sheets(2).Range("A8").Value = "Sample text"
End Sub
ذاأردناتعديلاخلليةA8علىقةرالو2منمصنفآخرمفتوح
Workbooks("Name_of_the_file").
Sub properties()
'A8 on sheet 2 of workbork 2 = Sample text
Workbooks("Book2.xlsx").Sheets("Sheet2").Range("A8").Value = "Sample
text"
End Sub
علىالرغممنأننااستخدامالقيمةValueيفىذه،األمثلةالربتاجًحقا،الستخدامهاألنومل إذايتمربديدأيشيء
،آخرستكونقيمةاخلليةا.
علىسبيل،ادلثالسيكونىذيناخلطُتنفسالتأثَت:
Range("A8").Value = 48
Range("A8") = 48
االتى الحظ….معينو صفحو داخل خليو بقيمو يفرالتع
Worksheets("sheet….الصفحو قمر .").cells(الصف قمر,العمود قمر ).value
31. 31
مسحياتوزلتاخللية
Sub properties()
'Erase the contents of column A
Range("A:A").ClearContents
End Sub
تنسيقالنص
عندماتقومبفتحFont.،سوفتظهرالقائمةاخلصائصاليتؽلكنتطبيقهاعلىتنسيقالنص:
َقًسًخإ:إًيص جحم ثلَري
Sub properties()
'Edit the size of text in cells A1 through A8
Range("A1:A8").Font.Size = 18
End Sub
َقًسًخإ:حـيإًيصًاكامل
Sub properties()
'Make cells A1 through A8 bold
Range("A1:A8").Font.Bold = True
End Sub
Bold = True تعٌتغامق خبط االحرف تظهر سوف = Yes.
33. 33
ضافةؤإإذلسود
Sub properties()
'Add a border to cells A1 to A8
Range("A1:A8").Borders.Value = 1
'Value = 0 => no border
End Sub
ثلَريَقًسثإرلالايإحملسدةحاًَا
Sub properties()
'Add a border to selected cells
Selection.Borders.Value = 1
End Sub
ثلَريدطائصًوركةمعي
Sub properties()
'Hide a worksheet ِٗزبز غ١ش خؼٍٙب ٚا ٗاٌٛسل اخفبء
Sheets("Sheet3").Visible = 0
'Visible = -1 => cancels the effect
End Sub
تغيَتقيمةخليةًاستناداإىلخليةأخرى
يفىذه،احلالةضلنيدرنA7يأخذقيمتومنA1:
34. 34
Sub properties()
'A7 = A1
Range("A7") = Range("A1")
'Or :
'Range("A7").Value = Range("A1").Value
End Sub
إذاأردنافقطنسخحجمالنصمنخلية،أخرى
Sub properties()
Range("A7").Font.Size = Range("A1").Font.Size
End Sub
أيشيءعلىاجلانباأليسر=يأخذقيمةماىوعلىاجلانباألؽلن
التنسىأنلقدباستخدام قدمناأقليةضئيلةمنالتخصيصاتاحملتملةاليتؽلكنالقيامبومعVBA.
إذاملتكناخلاصيةاليتكنتتبحثعنوصفذلا بالتفصيلىنا،احبثعنهايفقائمةاخلصائصيفExcelأويفملفات
"التعليمات"يفExcel.
مسجلادلاكروؽلكنأيضاحفظلكالكثَتمنالوقتإذاكنتالتعرفاسماخلاصية.إذاقمتبتسجيلاءاتراإلجاليت
ربتاج،إليهافإنوسيكونمنالسهلإغلاداسماخلاصيةحبيثؽلكنكبعدذلكاستخدامويفادلاكرواخلاصبك.
تغيَتقيمةخليةًاستناداإىلالقيمةاخلاصةبو
قٌمة زٌادة سٌتم ،نضؽط مرة كل ًفA1بنسبة1:
Sub properties()
'A7 = A1
Range("A7") = Range("A1")
'Or :
'Range("A7").Value = Range("A1").Value
End Sub
35. 35
With...End With Statement
withبنية أو احدو لكائن متكرر بشكل تشَت اليت امرواال من سلسلة ينفذ.
With
Statement
End With
Definitionterm
بُت البيانات من أكثر أو احدوWith and End With
كائنادرأف إىل تشَت
statements
Sub ChangeFont ()
Selection.Font.Name = "Times New Roman"
Selection.Font.Size = 12
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.ColorIndex = 5
End Sub
وبإستخدامWithاررلتك مضطر غَت اصبحتSelection.Font
Sub ChangeFont ()
With Selection.Font
.Name = "Times New Roman"
.Size = 12
.Bold = True
.Italic = True
.ColorIndex = 5
End With
End Sub
36. 36
ىذاًايضا الرمزغلعلمنادلمكنتعيُتخصائصسلتلفةمناخلليةالنشطة:
Sub properties()
ActiveCell.Borders.Weight = 3
ActiveCell.Font.Bold = True
ActiveCell.Font.Size = 18
ActiveCell.Font.Italic = True
ActiveCell.Font.Name = "Arial"
End Sub
يفىذه،احلالةؽلكناستخدامwithلتجنبارراالضطإىلاررتكActiveCell.
Sub properties()
'Beginning of instructions using command: WITH
With ActiveCell
.Borders.Weight = 3
.Font.Bold = True
.Font.Size = 18
.Font.Italic = True
.Font.Name = "Arial"
'End of instructions using command: END WITH
End With
End Sub
ايضا الحظ
Sub properties()
With ActiveCell
.Borders.Weight = 3
With .Font
.Bold = True
.Size = 18
.Italic = True
.Name = "Arial"
End With
End With
End Sub
38. 38
Sub example()
'Text color for A1 : green (Color num. 10)
Range("A1").Font.ColorIndex = 10
End Sub
ىذاالكودسوفيعطيناالنتيجةالتالية:
Color
ََذاضColorالامص خزسإمؤسإ ؾيس مشيأأو إوسؽ ََذاض(RGB)حِر
الامحص وىه ََئُسر إنوًإ َزالز مزج ؾن ٍؾحار الاًوإن مجَؽ((Redوالادرض(Green)والازرق(Blue)ؤذشايو
من إًلمي َإًساتل الاًوإن من ًون لك0إىل255
Sub example()
'Text color for A1 : RGB(50, 200, 100)
Range("A1").Font.Color = RGB(50, 200, 100)
End Sub
الاًوإن ضيسوق إىل ابذلُاب ًون الى مللاتهلإ كامرالا كمي َفصمـ خعَؽجسو(َِإرلَف ًون إو إرلط ًون)خنخار مث
(More Color)ٍإًيافش خنخار ومهنا(Custom)ََذاض الاسفي ىف يجسوس(RGB)ٌَون مللاتهلإ ًَثالزإ كامروالا
إحملسد
39. 39
ل إدوإه وُشإ56ََخباض ًونHTML
Excel Color Index in Hex
#000000 #993300 #333300 #003300 #003366 #000080 #333399 #333333
#800000 #FF6600 #808000 #008000 #008080 #0000FF #666699 #808080
#FF0000 #FF9900 #99CC00 #339966 #33CCCC #3366FF #800080 #969696
#FF00FF #FFCC00 #FFFF00 #00FF00 #00FFFF #00CCFF #993366 #C0C0C0
#FF99CC #FFCC99 #FFFF99 #CCFFCC #CCFFFF #99CCFF #FF99CC #FFFFFF
مثال
Sub example()
'Text color for A1 : RGB(192, 32, 255)
Range("A1").Font.Color = RGB(192, 32, 255)
End Sub
إضافةحدودنةومل
إنشاءماكرويضيفحدودإىلاخلليةالنشطةباستخدامActiveCell.
احلدودسوفتكونثقيلةاألضبرو:
Sub example()
'Border weight
ActiveCell.Borders.Weight = 4
'Border color : red
ActiveCell.Borders.Color = RGB(255, 0, 0)
End Sub
وتستخدمىكذا
Range("A1").Font.Color = #FFFFFF
40. 40
لتطبيقىذاالتأثَتعلىالعديدمناخلاليايفوقت،احدوؽلكنأننستخدمأمرSelection:
Sub example()
'Border weight
Selection.Borders.Weight = 4
'Border color : red
Selection.Borders.Color = RGB(255, 0, 0)
End Sub
إضافةلوناخللفيةللخاليااحملددة
Sub example()
'Add background color to the selected cells
Selection.Interior.Color = RGB(174, 240, 194)
End Sub
اضافةلونإىلعالمةيبوالتبقةرلوعمل
Sub example()
'Add color to the tab for "Sheet1"
Sheets("Sheet1").Tab.Color = RGB(255, 0, 0)
End Sub
استخدام ،القياسية انواألل استخدام إىل حباجة كنتإذاVBًالمث اللون مث
vbBlack،vbRed،vbGreen،vbYellow،vbBlue،vbMagenta،
vbCyanأو ،vbWhite.
41. 41
اخللية غلعل التالية العبارة ،ادلثال سبيل علىA1
األصفر:
Range(“A1”).Interior.Color = vbYellow
ًوإنالا خسول كل ًـعى وشلهل مودًول ىف َتوضـ مق هود ُو وُا
ََخباضRgpََوذاضHTML
Sub colors56()
'57 colors, 0 to 56
Dim i As Long
Dim str0 As String, str As String
Cells(1, 1) = "Interior"
Cells(1, 2) = "Font"
Cells(1, 3) = "HTML"
Cells(1, 4) = "RED"
Cells(1, 5) = "GREEN"
Cells(1, 6) = "BLUE"
Cells(1, 7) = "COLOR"
For i = 0 To 56
Cells(i + 2, 1).Interior.ColorIndex = i
Cells(i + 2, 2).Font.ColorIndex = i
Cells(i + 2, 2).Value = "[Color " & i & "]"
str0 = Right("000000" & Hex(Cells(i + 2, 1).Interior.Color), 6)
'Excel shows nibbles in reverse order so make it as RGB
str = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
'generating 2 columns in the HTML table
Cells(i + 2, 3) = "#" & str
Cells(i + 2, 4).Formula = "=Hex2dec(""" & Right(str0, 2) & """)"
Cells(i + 2, 5).Formula = "=Hex2dec(""" & Mid(str0, 3, 2) & """)"
Cells(i + 2, 6).Formula = "=Hex2dec(""" & Left(str0, 2) & """)"
Cells(i + 2, 7) = "[Color " & i & "]"
Next i
End Sub
42. 42
The Line Style of a Border منطدطإذلسود
The Weight of a Border
Range("B18:C18").Borders(xlEdgeBottom).LineStyle = xlContinuous
Range("B18:C18").Borders(xlEdgeBottom).Weight = xlThin
xlHairline ًجدا فيعر خط
xlThin فيعر خط
xlMedium متوسط خط
xlThick غليظ خط
دِحاٌخال٠ب H15, I15, H16, and I16
Range("H15:I16").MergeCells = True
ِسبراحإٌضاٌّذِحٌٍ١غبس
Range("H15:H16").VerticalAlignment = xlCenter
إخفبءخـٛؽاٌشجىخ
ActiveWindow.DisplayGridlines = False
(xlEdgeRight)
(xlEdgeLeft)
(xlEdgeTop)
(xlEdgeBottom)
47. 47
امل يفرتع يتماسطووب تغَت, DIMمثل الصلة ذات يفرتع اترعبا أوPublic.
Dim Sales As Double
احدو متغَت من أكثر يفرتع ؽلكنكon a Dim:
Dim SalesData As Double, Index As Integer, Start Date As Date
Dim Col, Row, Sheet As Integer
ليكون متغَت كليفريع ىذا أن ادلستخدمُت من العديد يفًتضIntegerصحيحا ليس ىذا.Col and
Row
تكونVariantنوع تعط مل ألهنا.اهنم على الثالثو تعرف لكىIntegerاخلط يكون أن غلب ،التاىل النحو على:
Dim Col As Integer, Row As Integer, Sheet As Integer
وىناكأساليبسلتلفةلعمليةاإلعالنوىىكالتاىل:
١–ؤؿالنالإؾنمذلريوإحسفلطىفلكسعصمنسعورؤؿالنالإمثي:
Dim a as integer
Dim b as single
٢–ؤؿالنالإؾننرثأأمنمذلريىفسعصؤؿالنالإمثي:
Dim a, b as integer
٣–ؤؿالنالإؾنمذلريوختطَصميةكهلىفسعصؤؿالنالإ:
Dim C as integer = 7
٤–ؤؿالنالإؾنإتريمذلًُستمنهفسإًيوعؾعاءؤإوميةكًِاىفهفسإًسعص
Dim X as integer = 9 , Y as string = "Mr. Khalid"
٥–ؤؿالنالإؾنمذلريوختطَصميةكهلمنانجتمـادٌكرايضَةىفهفسإًسعص
Dim X as integer = a + b
48. 48
Object Variables
عمل ورقة أو نطاق مثل ،بأكملو كائنؽلثل متغَت.
ب يفهارتع ويتم العادية اتَتللمتغ شلاثلةDimأوPublicادلثال سبيل على ،:
ب يفهارتع ويتم العادية اتَتللمتغ شلاثلةDimأوPublicادلثال سبيل على ،:
الكائن تعبَت يفرلتعobject expressionكائنمتغَت إىلobject variable،الكلمة استخدمset.
ادلثال سبيل على:
Set ObjectVariable = ObjectExpression
Set MyCell = Worksheets("Sheet1").Range("A1")
مثال
اخلليو ػلدد سوف التاىل اءراالجA1ىفsheet1القيمو اعطاءو100التنسيقاتو
Bold, Italic and Underline.
Sub ObjectVariable ()
Worksheets ("Sheet1").Range ("A1").Value = 100
Worksheets ("Sheet1").Range ("A1").Font.Bold = True
Worksheets ("Sheet1").Range ("A1").Font.Italic = True
Worksheets ("Sheet1").Range ("A1").Font.Underline = XlSingle
End Sub
باستخدامObject Variable called mycell
Sub ObjectVariable ()
Dim mycell As Range
Set mycell = Worksheets ("Sheet1").Range ("A1")
mycell.Value = 100
mycell.Font.Bold = True
mycell.Font.Italic = True
mycell.Font.Underline = xlSingle
End Sub
50. 50
يأأ،وكتوؾيس،إًرضورةميىٌمثلَريميةًلإإًيتحيخفغهبامذلري.وُشإُوإًسخةَهإ ىفٌسمىمذلري(َهألميىننأأختخَفَميخك
وأأثلَري.)خلَريًميةًلإإًيتحيخفغهبا،مذلريإًوضولؤىلإإملخلريمصةدصىأأثـَنيوميةًلإإدلسًسةإًيتًسُاصح.
Introduction to Data Types
Variable As
ىناكdata typeاستخدامها تنوي اتَتادلتغ من نوع أي احلاسوب زبرب.مقدار نعرف أن غلب ،متغَت استخدام قبل
الذاكرة يف ستشغل اليت ادلساحة.الذاكرة يف ادلساحة من سلتلفة كميةوتستخدم سلتلفة اتَتادلتغ.اليت ادلعلومات على ويطلق
متغ الحتياجات ادلساحة مقدار ربددرdata type
كتابةبعد ،دلتغَت استخدامها سيتم اليت البيانات نوع لتحديدDimالكلمة اكتب ،ادلتغَت باسم متبوعةASالبيانات اعوأن أحد يليو
Dim VariableName As DataType
Integral Numeric Variables
Byte
من إوحرتث إًيت َـَةًعحإ ؿسإدألإ َحميس إذلي مذلري ًفصًخـ0ؤىلإ255حَاانتًإ هوع خزسمإس ،Byte.ُو ُيا
ذكل ؿىل مثال:
Sub Exercise()
Dim StudentAge As Byte
End Sub
ابًت حَاانتًإ ًيوع حصف يأأ ًوخس .ال
ضلري موحة ؿسد َهأأ ثـَني ميىٌم ،ملخلريإ ؾن ًخرصحيإ تـس.ذكل ؿىل مثال ُيا
:
Sub Exercise()
Dim Value As Byte
Value = 246
End Sub
من كيأأ ًـسدإ دإم ما ؾرشي إًست َقخًسًاب ًصمقإ خزسإمإس ًضاأأ ميىٌم255 .
من ؿىلأأ ميةك وأأ ساًحة ميةك ؾعَت إ ؤذإإ255أبدع ثخَلى سوف ،خيفِشًإ حماوٌك ؾيس ،
51. 51
ضلري ؿسد ىلؤإ ميةك ًيوًخح
Number = CByte(Value to Convert to Byte)
Integer
بُت اوحًتي عددا سيحمل الذي متغَت يفرلتع-32768اىل32767صحيح عدد البيانات نوع استخدم. Integer
صحيح عدد متغَت إعالن على مثال ىو ىنا:
Sub Exercise()
Dim Tracks As Integer
End Sub
استخدام من بدالInteger٪ حرف استخدام ؽلكنك ،.التايل النحو على اإلعالن يتم أن ؽلكن ،وبالتايل:
Sub Exercise()
Dim Tracks%
End Sub
إعالن بعدامللذلك ادلطلوبة القيمة تعيُت ؽلكنك ،تغَت.من أقل قيمة بتعيُت قمت إذا-32768من أعلى أو32767عندما ،
خطأ تتلقى سوف ،استخدامها تقرر.
الدالة استخدام ؽلكنك ،طبيعية اعداد إىل ربويلها إىل ربتاج اليت القيمة لديك كانإذاCIntالتالية الصيغة باستخدام:
Number = CInt(Value to Convert)
52. 52
Long
الصحيحة األعداد من أكرب أعداداه دلتغَت استخدامو ؽلكنو طويل صحيح عدد.العدد ىذا مثل سيحمل الذي ادلتغَت يفرلتع
البيانات نوع استخدام ،الكبَتLongمثال ىنا
Sub Exercise()
Dim Population As Long
End Sub
استخدام من بدالLongاستخدام ؽلكنك ،@
Sub Exercise()
Dim Population@
End Sub
من باستخدامو ينهاززب ؽلكن الىت القيمو– 2,147,483,648اىل2,147,483,647
استدعى طويال صحيح عدد إىل القيمة لتحويلCLng ()التالية الصيغة باستخدام
Number = CLng(Value to Convert)
Decimal Variables
Single Precision
Sub Exercise()
Dim Distance As Single
End Sub
استخدام ؽلكنك ايضاو!منو بدال
Sub Exercise()
Dim Distance!
End Sub
53. 53
A Single variable can hold a number between 1.401298e–45
and 3.402823e38
.
for negative values
or between 1.401298e–45
and 3.402823e38
for positive values.
استخدام ،التحويل إىل ربتاج اليت القيمة لديك كانإذاCSng ()التالية الصيغة مع:
Number = CSng(Value to Convert)
Double Precision
،الدقة من اَتكبارقد يتطلب الذي عشري قمر استخدام يف ترغب كنتإذااستخدمDouble
Sub Exercise()
Dim Distance As Double
End Sub
استخدام ؽلكنك منو وبدال#
Sub Exercise()
Dim Distance#
End Sub
Sub Exercise()
Dim Distance As Double
Distance = 257.84
End Sub
A Double variable can hold a number between –1.79769313486231e308
and
–4.94065645841247e–324
for negative values
or between 4.94065645841247e–324
and 1.79769313486231e308
for positive values.
إىل القيمة لتحويلdoubleاستخدم ،CDbl ()التالية الصيغة مع:
Number = CDbl(Value to Convert)
ادواالك ىف تستخدم ال قامراال اءهرق لتسهيل تستخدم الىت اصلوالف
55. 55
Currency Values
البيانات نوع استخدام يتمCurrencyالنقدية القيم مع للتعامل.ذلك على مثال ىو ىنا
Sub Exercise()
Dim StartingSalary As Currency
End Sub
استخدام ؽلكنك@العملة متغَت يفرلتع نوع كحرف.أنو معلنا مثال ىو ىنا:
Sub Exercise()
Dim StartingSalary@
End Sub
العملة رمز تستخدم ال ،العملة أساس على متغَت إىل قيمة تعيُت عند.
Sub Exercise()
Dim StartingSalary As Currency
StartingSalary = 66500
End Sub
can store a value between – 922,337,203,685,477.5808 and 922,337,203,685,477.5807.
استخدم ،عملة إىل القيمة ربويل يف ترغب كنتإذاCCur ()التالية الصيغة مع:
Number = CCur(Value to Convert)
ٍّٗاٌؼ ٍٝػ ِثبي
Sub Variables()
Dim NumberOfShirts As Byte
Dim PriceOneShirt As Currency
Dim TotalPriceShirts As Currency
NumberOfShirts = 5
PriceOneShirt = 1.25
TotalPriceShirts = NumberOfShirts * PriceOneShirt
ActiveCell.FormulaR1C1 = TotalPriceShirts
End Sub
56. 56
A Date
ٟفVisual Basic،ٓ٠ّىَاعزخذأٛعث١بٔبد"Date"ٓ٠ٌزخضل١ّخ
ربس٠خ.،ٌٚزٌهٌٍٓزؼربس٠خٚأِزغ١شادٚلذ
Sub Exercise()
Dim DateOfBirth As Date
End Sub
ل١ّزخ ٕٗ١١رؼ ٠ّىٕه ،ِزغ١ش ْإػال ثؼذ.ٓ١ث اٌزبس٠خ ل١ّخ ٓ١ّرؼ ٠دت
ػالِبد ِٓ ٓ١ٕاث#ِثبي ٕ٘ب
Sub Exercise()
Dim DateOfBirth As Date
DateOfBirth = #10/8/1988#
End Sub
إراْوبٌذ٠هعٍغٍخٚأرؼج١شرش٠ذٍٗ٠ٛرسٌٝإ،ربس٠خَاعزخذCDate()
ًااعزٕبداٌٝإاٌظ١غخاٌزبٌ١خ:
Result = CDate(Value to Convert)
A Time
ٟفVisual Basicاٌٛلد ل١ّح ٓ٠ٌرخض َذغرخذ ْأ أ٠ضا ذاس٠خ اٌث١أاخ ٌٍٕٛع ٓ٠ّى ،.
Sub Exercise()
Dim ShiftTimeIn As Date
End Sub
ػالِاخ ِٓ ٓ١ٕاش ٓ١ت ْٛذى ، ٌٗ ل١ّح ٓ١١ٌرؼ ،اٌّرغ١ش ْإػال تؼذ#.اٌراس٠خ ٓػ ِخرٍفح لٛاػذ ذرثغ اٌم١ّح.
To convert a value or an expression to time, use CDate().
57. 57
Any-Type Variables
A Variant
ُِٕٙ رش٠ذ ٟاٌز ُ١اٌم أٔٛاع ِؼشٚفخ اٌّزغ١شاد ٍٓٔؼ ٓٚٔس ،ْ٢ا ٝزز
٠ٛفش رخض٠ٕٙبVBAػبٌّ١خ ث١بٔبد ٔٛع(غبِؼخ ٚأ)ٞأل اعزخذاِٙب ٠ّىٕه
اٌج١بٔبد ٔٛع َاعزخذا ُ٠ز ُ١اٌم ِٓ ٔٛعVariantٌُ ٞاٌز ِزغ١ش ٌزؼش٠ف
طشازخ ٗٔٛػ رسذ٠ذ ُ٠ز
اٌج١بٔبد ٌٕٛع ٓ٠ّىVariantرش٠ذ٘ب أذ ُ١اٌم ِٓ ٔٛع ٜثب ٠سزفظ ْا
Sub Exercise()
Dim FullName As Variant
Dim EmploymentStatus As Variant
Dim HourlySalary As Variant
Dim DateHired As Variant
FullName = "Patricia Katts"
EmploymentStatus = 2
HourlySalary = 35.65
DateHired = #6/22/2004#
End Sub
A Variable Without a Data Type
أِثٍخ ٗث اٌخبطخ اٌج١بٔبد ٔٛع إػـبء ْٚد ِزغ١ش رؼش٠ف ٠ّىٕه
Sub Exercise()
Dim FullName
Dim EmploymentStatus
Dim HourlySalary
Dim DateHired
End Sub
اٌخؾ ٔفظ ٍٝػ أوثش ٚأ ٚازذ ِزغ١ش رؼش٠ف ٠ّىٕه ،ثبٌـجغ.
ل١ّزخ ٓ١١رؼ ٠دت ، ٌٍّزغ١ش ٗاٌّـٍٛث ٗاٌّغبز ٌٝا ٌٖالشبس.أِثٍخ ٕٚ٘ب:
Sub Exercise()
Dim FullName
Dim EmploymentStatus
Dim HourlySalary
Dim DateHired
FullName = "Patricia Katts"
EmploymentStatus = 2
HourlySalary = 35.65
DateHired = #6/22/2004#
End Sub
ٚثّدشداٌّزغ١ش ْاًّ٠س،ل١ّخ٠ّىٕهِٗاعزخذاوّبٖرشاًإِبعجب.
58. 58
The Scope or Lifetime of a Variable
Introduction
بُت لدينا اتَتادلتغ نعيُت كنا،اآلن حىتSub Name and the End Sub lines.ادلتغَت ىذا مثل إىل يشارو.
local variableيفورتع يتم حيث ادلنطقة على يقتصر.ذلك على مثال ىو ىنا:
Option Explicit
Sub Exercise()
Dim FirstName As String
FirstName = "Patricia"
End Sub
Global Variables
خبسج ٍٓأػ ِزغ١ش ٛ٘. Sub Name and the End Sub linesُ٠ز ِب ػبدح
اٌٍّف ِٓ ٍٞٛاٌؼ ُاٌمغ ٟف اٌّزغ١ش ٘زا رؼش٠ف.رٌه ٍٝػ ِثبي ٛ٘ ٕ٘ب:
Option Explicit
Dim LastName As String
Sub Exercise()
End Sub
ثؼذرؼش٠فِزغ١شِّٟٛػ،٠ّىٕهاٌٛطٛيٗ١ٌإٟفإٌّبؿكٜاألخشٌٍٍّف.
ٕ٘بِثبيٍٝػرٌه:
Option Explicit
Dim LastName As String
Sub Exercise()
Dim FirstName As String
FirstName = "Patricia"
LastName = "Katts"
End Sub
رؼش٠ف أ٠ؼب ٠ّىٕهGlobal Variables
ٜأخش ٚزذح ٟف ِٗاعزخذا ٍٝػ لبدس ٌْٛزى ِٕفظٍخ ٗ١ّٔـ ٚزذح ٟف.
59. 59
The Access Level of a Global Variable
Introduction
ػٕذَاعزخذاِزغ١ش،ِّٟٛػٌغخVisual Basic٠غّرٌهُثبٌزسىٟفِٜٛغز
اٌٛطٛيٌٗ.ِٜٛغزاٌٛطٛيٌّزغ١شٛ٘ػٍّ١خٌٍُزسىٟفاٌٛطٛيٌٝإُو
ِمـغِٓاٌزؼٍ١ّبداٌجشِد١خٍٝػاٌّزغ١ش.
Private Variables
ٗٔا ِزغ١ش ٌٝإ ٚ٠شبسPrivateإال ٗ١ٌإ اٌٛطٛي ٓ٠ّى ال ْوب إرا
ٗٔفغ اٌٍّف ًداخ ِٓ االوٛاد ؿش٠ك ٓػ(اٌٛزذح ٔفظ)ُ٠ز ز١ث
ِٗاعزخذا
ٜاخش ٖثؼجبس
Privateٗ١إٌّـ ٖاٌٛزذ ٔفظ ٝف ٜاالخش االخشاءاد ٌٗىبف ٓ٠ّى ٗٔا ٍٝػ رذي
اٌّزغ١ش ٖ٘ز ٌٝا اٌٛطٛي فمؾ
ِٓ ثذال ،اٌّزغ١ش ٘زا ًِث ٌٍٓزؼDimَاعزخذا ،Privateٍٝػ ِثبي
رٌه:
Option Explicit
Private LastName As String
Sub Exercise()
Dim FirstName As String
FirstName = "Patricia"
LastName = "Katts"
End Sub
61. 61
This would produce:
Practical Learning: Closing Microsoft Excel
1. To close Microsoft Visual Basic, on the main menu, click File -> Close and Return to
Microsoft Excel
62. 62
بالتاىل
إململـَوماتإ إعوهأأ مجَؽ ٍنزخت ملمىنإ من جتـي إتريثل.
األول المثال وهنا:
'حوار مربع ًف المتؽٌر قٌمة عرض
Sub variables ()
'اٌّزغ١ش ة اٌزؼش٠ف
Dim my_variable As Integer
ِزغ١ش ٌٝإ ل١ّخ إعٕبد
my_variable = 12
ل١ّخ ػشعmy_variableٟفMsgBox
MsgBox my_variable
End sub
اتَتادلتغ من سلتلفة اعوأن مع األمثلة بعض:
'مثال:اكمي ؿسد
Dim nbInteger As Integer
nbInteger = 12345
'مثال:ؾرشي رمق
Dim nbComma As Single
nbComma = 123.45
63. 63
'مثال:إًيص
Dim varText As String
varText = "Excel-Pratique.com"
'مثال:اترخي
Dim varDate As Date
varDate = "06.04.2012"
'مثال:ضوإب/أبدع
Dim varBoolean As Boolean
varBoolean = True
':مثال إًاكئن (معي وركة )اكئن
Dim varSheet As Worksheet
Set varSheet = Sheets("Sheet2")
"إًاكئن إتريمذل خزسإمإس هَفِة ؿىل مثال:وركة ثفـَي
varSheet.Activate
64. 64
عملٌه ممارسة
الخلٌة من االخٌر االسم باسترداد ٌقوم ماكرو ،خطوة خطوة ،اآلن سنضع فإنناA2الخلٌة من األول االسم ،B2من العمر ،
الخلٌةC2حوار مربع ًف وٌعرضها ،.
المتؽٌرات بإعالن سنبدأبفواصل مفصولة ،الخط نفس على كل
Sub variables)(
بالمتؽٌرات التعرٌؾ
Dim last_name As String, first_name As String, age As Integer
End Sub
الخالٌا باستخدام المتؽٌرات قٌم تحدٌد ذلك بعد:
Sub variables)(
'بالمتؽٌرات النعرٌؾ
Dim last_name As String, first_name As String, age As Integer
'المتؽٌرات قٌم
(last_name = Cells(2, 1
(first_name = Cells(2, 2
(age = Cells(2, 3
End sub
الحوار مربع فى النتائج بعرض سنقوم اخيرا
Sub variables()
'Declaring variables ثبٌّزغ١شاد اٌزؼش٠ف
Dim last_name As String, first_name As String, age As Integer
'Variable values اٌّزغ١شاد ٌٝا ُ١ل اعٕبد
last_name = Cells(2, 1)
first_name = Cells(2, 2)
age = Cells(2, 3)
'Dialog box
MsgBox last_name & " " & first_name & ", " & age & " years old"
End Sub
65. 65
اٌخٍ١ح ٟف ػذد ًلث ِٓ ٗ١ٌإ اٌّشاس اٌعذٚي ِٓ طف خالي ِٓ ؼٛاس ِشتغ ٟف اٌؼشع ٟ٘ اٌراٌ١ح اٌخطٛجF5.
Sub variables()
'Declaring variables اٌّزغ١شاد ٓ١١رؼ
Dim last_name As String, first_name As String, age As Integer,
row_number As Integer
'Variable values اٌّزغ١شاد ٌٝا ُ١اٌم اعٕبد
row_number = Range("F5") + 1
last_name = Cells(row_number, 1)
first_name = Cells(row_number, 2)
age = Cells(row_number, 3)
'Dialog box
MsgBox last_name & " " & first_name & ", " & age & " years old"
End Sub
إملخلري ايذش سوفrow _numberإرلََة ميةك نآلإF5ؤضافةاب مقيا إذلي ،(1 )حنطي ال حبَر هل
ٌَجسول ٍنوإًـيا ؿىل حيخوي إذليو ،ولألإ إًطف من حَاانتًإ ؿىل
70. 70
The scope of variables
اترالمتغي مدى
إذامتيفرتعمتغَتيفبدايةاءراإلج)sub(،ؽلكناستخداموفقطضمنىذااءراإلجنفسو.اليتماإلبقاءعلىقيمةاَتادلتغ
بعدتنفيذاءراإلج.
Sub procedure1()
Dim var1 As Integer
' => Use of a variable only within a procedure اإلجراء ضمن متؽٌر استخدام
End Sub
Sub procedure2()
' => var1 cannot be used here ٕ٘ب ِٗاعزخذا ٓ٠ّى ال
End Sub
منأجلاستخداممتغَتيفأيمناءاتراإلجضمنوحدة،ظلطيةكلماعليكفعلوأنتعلنأنويفبدايةالوحدةالنمطية.
وإذاكنتتقوميفربتعمتغَتهبذه،يقةرالطسيتماإلبقاءعلىالقيمةاخلاصةبوحىتيتمإغالقادلصنف.
Dim var1 As Integer
Sub procedure1()
' => var1 can be used here ٕ٘ب ِٗاعزخذا ٓ٠ّى
End Sub
Sub procedure2()
' => var1 can also be used here ًاا٠ؼب ٕ٘ب ِٗاعزخذا ٓ٠ّى
End Sub
إذاكنتيدرتأنتكونًارقادعلىاستخداممتغَتيفأيةوحدة،ظلطيةعلىنفسادلبدأكمايفادلثال،السابق
كلماعليكفعلوىواستبدالDim with Global
Global var1 As Integer
للحفاظعلىقيمةمتغَتبعدتنفيذاءراإلجالذي،يظهراستبدالDim with Static :
Sub procedure1()
Static var1 As Integer
End Sub
للحفاظعلىقيمةمتغَتبعدتنفيذاءراإلجالذي،يظهرadd Static before Sub :
Static Sub procedure1()
Dim var1 As Integer
End Sub
71. 71
مثال
'Creation of a variable type'إٔشبءٔٛعاٌّزغ١ش
Type guests
last_name As String
first_name As String
End Type
Sub variables()
'Declaration
Dim p1 As guests
'Assigning values to p1'ٓ١١رؼُ١لٌٝإp1
p1.last_name = "Smith"
p1.first_name = "John"
'Example of use
MsgBox p1.last_name & " " & p1.first_name
End Sub