<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x627;&#x644;&#x628;&#x631;&#x627;&#x645;&#x62C; &#x648;&#x627;&#x644;&#x62A;&#x637;&#x628;&#x64A;&#x642;&#x627;&#x62A;: &#x627;&#x643;&#x633;&#x644; Excel</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/page/2/?d=8</link><description>&#x627;&#x644;&#x628;&#x631;&#x627;&#x645;&#x62C; &#x648;&#x627;&#x644;&#x62A;&#x637;&#x628;&#x64A;&#x642;&#x627;&#x62A;: &#x627;&#x643;&#x633;&#x644; Excel</description><language>ar</language><item><title>&#x628;&#x631;&#x645;&#x62C;&#x629; &#x648;&#x627;&#x62C;&#x647;&#x627;&#x62A; &#x625;&#x62F;&#x62E;&#x627;&#x644; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%88%D8%A7%D8%AC%D9%87%D8%A7%D8%AA-%D8%A5%D8%AF%D8%AE%D8%A7%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r508/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/6141b560e0ecf_-afteredit.png.89981933552421f189b76e6374cee026.png" /></p>

<p>
	تعلمنا في الدرس السابق حول <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D9%88%D8%A7%D8%AC%D9%87%D8%A7%D8%AA-%D8%A5%D8%AF%D8%AE%D8%A7%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r507/" rel="">تصميم واجهات إدخال البيانات باستخدام مايكروسوفت إكسل VBA</a> كيفية تصميم واجهة إدخال البيانات وتوزيع الكائنات، وتنسيقها وتجهيزها لعملية البرمجة، وكذا ربطها بخلايا الصفحة التي ستُرحَّل إليها البيانات عند الضغط على زر الإدخال. وفي هذا المقال سنتعرف على كيفية برمجة هذه الواجهت باستخدام مايكروسوفت إكسل VBA.
</p>

<h2>
	كتابة الإجراءات الخاصة بالكائنات
</h2>

<p>
	لتحرير الشيفرة البرمجية الخاصة بالكائن نضغط على الكائن نقرةً مزدوجةً، لتظهر لدينا النافذة التي نكتب فيها الشيفرات والإجراءات مثل العادة.
</p>

<h3>
	مثال
</h3>

<p>
	لفهم آلية البرمجة بالتفصيل سنُبرمج الواجهة التي صممناها مسبقًا، ولكن في البداية يجب تجهيز صفحة استقبال البيانات في ملف الإكسل، فتصبح واجهة الإدخال وصفحة الإكسل كالتالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77045" href="https://academy.hsoub.com/uploads/monthly_2021_09/001UserForm.PNG.5c6ad8cf3176d22c842661cc30296078.PNG" rel=""><img alt="001UserForm.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="77045" data-unique="9fifrcv8q" src="https://academy.hsoub.com/uploads/monthly_2021_09/001UserForm.thumb.PNG.a85a895bdecc38de52ac6930f544c2f7.PNG"></a>
</p>

<p>
	والآن سنحرر واجهة كتابة الشيفرات الخاصة بزر الإدخال، ونبدأ بكتابة التعليمات الخاصة بترحيل البيانات إلى صفحة الإكسل، وهنا نلاحظ أن الإجراء الموجود فيها هو إجراء يُنفذ عند النقر على الزر. والآن نُقسّم الشيفرة إلى أجزاء صغيرة ليسهل علينا التفكير في آلية إنشائها، والعمل الفعلي للواجهة هو جمع البيانات التي نُدخلها عبر كائناتها وترحيلها إلى صفحة الإكسل، ووضعها في السطر الأخير، لذا يجب علينا في البداية معرفة كيف يمكننا معرفة رقم السطر الأخير غير الفارغ، ثم نُرحل البيانات للسطر الذي يليه، ولمعرفة رقمه نَعُدّ الأسطر غير الفارغة ضمن الصفحة كالتالي:
</p>

<ul>
<li>
		نُعرّف متغير من النوع <code>integer</code>، أو من النوع <code>long</code>، ونُخزن فيه عدد الأسطر غير الفارغة كما يلي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_8" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> btnAdd_Click</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> </span><span class="typ">LastRow</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<ul>
<li>
		نكتب الدالة المسؤولة عن عدّ الخلايا غير الفارغة، وهي الدالة <code>CountA</code>، ولكن لاستدعائها ضمن الإجراء نكتبها بالشكل التالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_10" style="">
<span class="typ">LastRow</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">WorksheetFunction</span><span class="pun">.</span><span class="typ">CountA</span><span class="pun">(</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A:A"</span><span class="pun">))</span></pre>

<p>
	كما نلاحظ تُستدعى الدوال الأساسية في إكسل عن طريق الفيجوال بيسك بأن نضع قبلها التعليمة <code>WorksheetFunction</code>، لكن هنا عند تحديد المجال يجب أن نُعرّف مساره كاملًا ابتداءً من اسم الصفحة كما في التعليمة السابقة، حيث نضع:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_12" style="">
<span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A:A"</span><span class="pun">)</span></pre>

<p>
	أي أن المحرر يستدعي الدالة <code>CountA</code>، ويحدد لها المجال الذي ستحصي الخلايا منه، ويُخزن النتيجة في المتغير <code>LastRow</code>.
</p>

<ul>
<li>
		الآن نربط كل كائن في الواجهة مع الخلية المقابلة له في صفحة الإكسل، وذلك كالتالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_14" style="">
<span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span></pre>

<p>
	هنا عرّفّنا المسار الذي سنُسند إليه قيمة الكائن، حيث إن التعليمة <code>Cells(value1,value2)</code> لديها وسيطتان، الأولى تُعبر عن رقم السطر والثانية تُعبّر عن رقم العمود، ولدينا هنا رقم السطر هو عبارة عن متغير <code>LastRow</code> الذي يَعُد الخلايا غير الفارغة ونضيف له القيمة 1 لنحصل على موقع أول سطر فارغ بعد البيانات؛ أما <code>UserForm.Name.Value</code>، فتُعبر عن القيمة المُدخلة عن طريق الواجهة.
</p>

<p>
	يجب أن لا ننسى أن نتعامل هنا عن طريق الاسم البرمجي، وبنفس الطريقة نُسند باقي الكائنات إلّا الكائنات من النوع <code>OptionButton</code>، وهنا لدينا عدّة قيم للكائن، حيث يجب أن نفحص الكائن هل هو نشط أم لا، وذلك حتى نعوّض قيمة الكائن النشط منها في الخلية الخاصة به، وتكون التعليمات كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_16" style="">
<span class="typ">If</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">True</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Male"</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Female"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<p>
	أما التعليمات الخاصة ببقية الكائنات فهي كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_20" style="">
<span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Rate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">4</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77046" href="https://academy.hsoub.com/uploads/monthly_2021_09/002UserFormPrograming.gif.246a0e722d8714704b1a17e7eb35bfca.gif" rel=""><img alt="002UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77046" data-unique="u9642ziye" src="https://academy.hsoub.com/uploads/monthly_2021_09/002UserFormPrograming.thumb.gif.89816287982682ee1915b12bdedc4de2.gif"></a>
</p>

<ul>
<li>
		نلاحظ أن البيانات تبقى موجودةً في الكائنات بعد الإرسال، لذا لا بد من كتابة تعليمات تعمل على تفريغ الكائنات بعد ترحيلها، ولإجراء ذلك نُسند قِيَمًا فارغةً للكائنات بعد عمليات الترحيل، وتكون التعليمات كالتالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_22" style="">
<span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptFemale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Rate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77047" href="https://academy.hsoub.com/uploads/monthly_2021_09/003UserFormPrograming.gif.a31fc2857bf886b62cb2f9484510552c.gif" rel=""><img alt="003UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77047" data-unique="aveeag42o" src="https://academy.hsoub.com/uploads/monthly_2021_09/003UserFormPrograming.thumb.gif.124e7d691f01b8da0b5bbe18594cee8b.gif"></a>
</p>

<p>
	نلاحظ أن العمليات تعمل على أكمل وجه والواجهة تعمل بطريقة جيدة، ولكن لو ضغطنا على زر الإدخال بدون ملء الكائنات بالبيانات، فسنلاحظ أنه سيملأ صفحة الإكسل بسطرٍ فارغ، وذلك يُعَد خطأً برمجيًا كبيرًا.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77048" href="https://academy.hsoub.com/uploads/monthly_2021_09/004UserFormPrograming.gif.48c46f5a6a13159c8737b595130f1234.gif" rel=""><img alt="004UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77048" data-unique="lvl41ehyq" src="https://academy.hsoub.com/uploads/monthly_2021_09/004UserFormPrograming.thumb.gif.64877de6811e48875fd008212932c3bf.gif"></a>
</p>

<ul>
<li>
		نكتب شروط إدخال للتغلب على الحالة السابقة، لذا نفحص ببساطة جميع الكائنات قبل ترحيل البيانات، فإذا وُجد كائن فارغ فسنوجه المستخدم إلى تعبئته وعدم تركه فارغًا عن طريق رسالة نصية، والتعليمات الخاصة بهذا الجزء من الإجراء كالتالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_24" style="">
<span class="typ">If</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="pun">(</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln"> </span><span class="typ">And</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptFemale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Or_</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or_</span><span class="pln"> 
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobRate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Then_</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"يُرجى إتمام البيانات"</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		يكون أحد الكائنين <code>OptFemale</code> و<code>OptMale</code> حاملًا دائمًا للقيمة <code>True</code> والبقية <code>False</code>، لذلك لا يمكننا فحصها ضمن الشرط مع التعبير المنطقي <code>OR</code>، بل نفحص جميع قيم الكائن من النوع <code>Option Button</code>، فإذا كانت جميعها <code>False</code> وبقية الكائنات أو أحدها فارغة، فعندها نُظهر رسالة الخطأ للمستخدم؛ أما إذا كانت إحدى القيم كائناتها بالقيمة <code>True</code> بينما تحمل جميع الكائنات بيانات، فستُنفذ عملية الترحيل بدون أخطاء.
	</p>
</blockquote>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77049" href="https://academy.hsoub.com/uploads/monthly_2021_09/005UserFormPrograming.gif.6a70a95280c3477b861a73ac354157e0.gif" rel=""><img alt="005UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77049" data-unique="2yf43yd9x" src="https://academy.hsoub.com/uploads/monthly_2021_09/005UserFormPrograming.thumb.gif.64376b09d3d74c9273e954ea7040e1ac.gif"></a>
</p>

<p>
	يصبح الإجراء كاملًا بالشكل التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_26" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> btnAdd_Click</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> </span><span class="typ">LastRow</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">WorksheetFunction</span><span class="pun">.</span><span class="typ">CountA</span><span class="pun">(</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفين"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A:A"</span><span class="pun">))</span><span class="pln">
</span><span class="typ">If</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="pun">(</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln"> </span><span class="typ">And</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptFemale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Rate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"يُرجى إتمام البيانات"</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">2</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">If</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">True</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Male"</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Female"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">

</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Rate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">(</span><span class="typ">LastRow</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">4</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">

</span><span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptFemale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Rate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<ul>
<li>
		لتطوير العمل أكثر يمكننا إضافة زر جديد على الواجهة السابقة، وعمله هو حذف البيانات التي أدخلناها للكائنات ولم نُرحلها إلى صفحة الإكسل بعد (أي لم نضغط على زر الإدخال)، ويؤدي فقط الجزء الأخير من الإجراء السابق الخاص بتفريغ الكائنات بعد الإرسال، لذا نُضيف زرًا جديدًا نُسميه <strong>حذف البيانات</strong>، ونضع له الاسم البرمجي <code>BtnDelete</code>، ويكون الإجراء الخاص به كالتالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_28" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">BtnDelete_Click</span><span class="pun">()</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="pln">txtName</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptMale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">OptFemale</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">JobStatus</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">PhoneNumber</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Rate</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Salary</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h2>
	تعامل واجهات الإدخال مع الأحداث
</h2>

<p>
	يمكننا توظيف الأحداث في التعامل مع واجهاتنا لتطوير عمل البرنامج، حيث يمكن التعامل مع الواجهة في الحدث كما تُعامل الدوال والتعليمات في الأحداث كما تعلمنا في درس <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%B5%D9%86%D8%A7%D8%B9%D8%A9-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AE%D8%A7%D8%B5%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r506/" rel="">صناعة الدوال الخاصة والتعامل مع الأحداث في مايكروسوفت إكسل VBA</a>، ولا بد من تطبيق ذلك عمليًا لتوضيح الفكرة أكثر.
</p>

<h3>
	مثال
</h3>

<p>
	باستخدام الواجهة السابقة نريد تنفيذ إجراء يعمل على إظهار نافذة إدخال البيانات فقط وإخفاء برنامج الإكسل عند فتح الملف، ولإنجاز ذلك نفتح المحرر الخاص بملف العمل، ونختار من أحداثه الحدث الذي يُنفِّذ الأوامر عند فتح الملف، ونضع فيه التعليمات التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_30" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">Workbook_Open</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Application</span><span class="pun">.</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Show</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث يُخفي الأمر <code>Application.Visible = False</code> ملف الإكسل، ويُظهر الأمر <code>UserForm.Show</code> واجهة الإدخال عند فتح الملف، ويُشغلها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77050" href="https://academy.hsoub.com/uploads/monthly_2021_09/006UserFormPrograming.gif.b777258adaae1441912631196388a2ff.gif" rel=""><img alt="006UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77050" data-unique="jqnne13t7" src="https://academy.hsoub.com/uploads/monthly_2021_09/006UserFormPrograming.gif.b777258adaae1441912631196388a2ff.gif"></a>
</p>

<p>
	نلاحظ أن الإجراء السابق يؤدي المطلوب، ولكن لدينا هنا خلل بسيط، وهو عند إغلاق واجهة الإدخال، حيث يبقى برنامج الإكسل مفتوحًا ويعمل في الخلفية، ولكنه مخفي.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77051" href="https://academy.hsoub.com/uploads/monthly_2021_09/007UserFormPrograming.gif.12809cb69799239b2ee117c5376da4fb.gif" rel=""><img alt="007UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77051" data-unique="bu0evfyz7" src="https://academy.hsoub.com/uploads/monthly_2021_09/007UserFormPrograming.gif.12809cb69799239b2ee117c5376da4fb.gif"></a>
</p>

<p>
	لذا يجب أن نُجهّز حدثًا جديدًا يعمل على حفظ البيانات وإغلاق ملف الإكسل عند إغلاق واجهة إدخال البيانات السابقة، أي أن الحدث خاص بواجهة الإدخال، لذا نكتب التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_32" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">UserForm_Terminate</span><span class="pun">()</span><span class="pln">
</span><span class="typ">ActiveWorkbook</span><span class="pun">.</span><span class="typ">Save</span><span class="pln">
</span><span class="typ">Application</span><span class="pun">.</span><span class="typ">Quit</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث إن:
</p>

<ul>
<li>
		<strong>UserForm_Terminate</strong>: هو حدث يُنفّذ عند إغلاق الواجهة.
	</li>
	<li>
		<strong>ActiveWorkbook.Save</strong>: هو أمر يحفظ ملفات العمل النشطة، وبما أن ملف العمل مرتبط مُسبقًا بالواجهة، فإن الأمر سيُنفذ عليه حتى لو وجدت العديد من ملفات العمل مفتوحةً، لأنه بمجرد النقر ضمن الواجهة يصبح الملف المرتبط بها هو الملف النشط.
	</li>
	<li>
		<strong>Application.Quit</strong>: أمر إغلاق ملف العمل.
	</li>
</ul>
<p>
	لكن يجب الانتباه أنه بمجرد تشغيل هذا الإجراء، فلن نستطيع عرض البيانات من صفحة الإكسل، لذا يجب إضافة إجراء يعمل على فتح البيانات في صفحة الإكسل، ويُنفذ عن طريق زر في الواجهة نفسها.
</p>

<p>
	نضيف زرًا جديدًا يُنفذ الإجراء السابق، ونسميه عرض البيانات، ونسميه اسمًا برمجيًا مثل <code>BtnShowData</code>، ونكتب الإجراء المناسب لهذه العملية كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_6633_34" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">BtnShowData_Click</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Application</span><span class="pun">.</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">True</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"الموظفون"</span><span class="pun">).</span><span class="typ">Activate</span><span class="pln">
</span><span class="typ">UserForm</span><span class="pun">.</span><span class="typ">Hide</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77052" href="https://academy.hsoub.com/uploads/monthly_2021_09/008UserFormPrograming.gif.b474acc3f131a5b6dd91fb538a087795.gif" rel=""><img alt="008UserFormPrograming.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77052" data-unique="2kghwn2tx" src="https://academy.hsoub.com/uploads/monthly_2021_09/008UserFormPrograming.gif.b474acc3f131a5b6dd91fb538a087795.gif"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	إن تصميم وبرمجة الواجهات من أجمل المزايا في برمجة الإكسل، حيث يزيد العمل عن طريق الواجهات من دقة البيانات المُدخلة، كما يقلل التعامل مع البيانات -عن طريق واجهات تفاعلية- من عمليات التشتت، وكلما تعمقنا أكثر في تطوير برمجياتنا على إكسل، زاد إنتاجنا وكفاءتنا في تقديم البيانات الدقيقة بالسرعة المطلوبة، لأن برمجة الواجهات تضيف شروطًا كثيرةً على العمل، مما يجعل المستخدم أقل عرضةً للوقوع في أخطاء إدخال البيانات بالطريقة التقليدية.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%B9%D9%86-%D8%B7%D8%B1%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-vba-r505/" rel="">استخدام أدوات مايكروسوفت إكسل لتنسيق الخلايا عن طريق الشيفرات VBA </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-%D9%84%D8%AA%D9%86%D9%81%D9%8A%D8%B0-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r503/" rel="">استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">508</guid><pubDate>Sun, 19 Sep 2021 14:03:00 +0000</pubDate></item><item><title>&#x62A;&#x635;&#x645;&#x64A;&#x645; &#x648;&#x627;&#x62C;&#x647;&#x627;&#x62A; &#x625;&#x62F;&#x62E;&#x627;&#x644; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D9%88%D8%A7%D8%AC%D9%87%D8%A7%D8%AA-%D8%A5%D8%AF%D8%AE%D8%A7%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r507/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/6141b22a7cd92_-fteredit.png.0f8e4235feaa7d425abad645003af302.png" /></p>

<p>
	تُعَد صناعة واجهات الإدخال من أقوى المزايا في إكسل التي تجعلنا قادرين على إدخال بياناتنا من خلال عناصر وأدوات إدخال وقوائم منسدلة، وتنقلها مباشرةً إلى صفحات الإكسل، أي كأننا نُحول الإكسل لبرنامج قواعد بيانات متكامل.
</p>

<h2>
	تصميم واجهة تفاعلية مع المستخدم User Form
</h2>

<p>
	يمكننا تصميم واجهة تفاعلية عن طريق محرر الفيجوال بيسك في الإكسل، حيث يمكننا تصميم واجهة إدخال واستعراض بياناتنا من خلاله، وذلك بأن نفتح محرر الشيفرات، ومن القائمة <strong>Insert</strong> نختار الأمر <strong>UserForm</strong>، فتظهر لنا النافذة التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77015" href="https://academy.hsoub.com/uploads/monthly_2021_09/001UserForm.PNG.682231ea6ca6b1e9de79ba0d95f0ed05.PNG" rel=""><img alt="001UserForm.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="77015" data-unique="k5ox6ylm9" src="https://academy.hsoub.com/uploads/monthly_2021_09/001UserForm.thumb.PNG.0a9863c163d7c408e607cf8277300933.PNG" style=""></a>
</p>

<p>
	نلاحظ وجود مجموعة من الأدوات ضمن صندوق الأدوات <strong>ToolBox</strong> تحتوي على الأزرار وعناصر الإدخال والتحكم التي يمكننا إضافتها إلى مساحة العمل الفارغة بجانبه، والتي يمكننا التحكم بأبعادها من حيث الطول والعرض، وذلك بالسحب من الأطراف. حيث يكون لدينا في الطرف الأيسر للقائمة <strong>Properties</strong> نافذة الخصائص التي نستطيع من خلالها تعيين كل خصائص الواجهة أو خصائص عناصر الإدخال فيها، وهي قائمة بغاية الأهمية لأننا من خلالها سنُعيّن جميع خيارات العناصر.
</p>

<h3>
	بعض الأدوات في صندوق ToolBox
</h3>

<p>
	توجد العديد من الأدوات التي يمكننا التعامل معها لصناعة الواجهات، وتختلف هذه الأدوات بين إصدارات مايكروسوفت أوفيس اختلافًا بسيطًا، ومن أهم هذه الأدوات وأكثرها استخدامًا الأدوات التالية:
</p>

<ul>
<li>
		<strong>CheckBox</strong>: يتيح هذا العنصر للمستخدم تحديد خيار أو أكثر.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77016" href="https://academy.hsoub.com/uploads/monthly_2021_09/002CheckBox.png.cf9f05d0706a23a6049a461984d0a000.png" rel=""><img alt="002CheckBox.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77016" data-unique="666s0n8kv" src="https://academy.hsoub.com/uploads/monthly_2021_09/002CheckBox.png.cf9f05d0706a23a6049a461984d0a000.png"></a>
</p>

<ul>
<li>
		<strong>ComboBox</strong>: يتيح هذا العنصر للمستخدم تحديد عنصر من القائمة المنسدلة.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77017" href="https://academy.hsoub.com/uploads/monthly_2021_09/003CmboBox.png.6d56f2f2cf4b693dec9e35184ba333c1.png" rel=""><img alt="003CmboBox.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77017" data-unique="g7vwjhf39" src="https://academy.hsoub.com/uploads/monthly_2021_09/003CmboBox.png.6d56f2f2cf4b693dec9e35184ba333c1.png"></a>
</p>

<ul>
<li>
		<strong>CommandButton</strong>: يسمح عنصر التحكم هذا للمستخدم بتنفيذ إجراء معين، حيث يُشغِّل إجراءً فرعيًا منفصلًا.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77018" href="https://academy.hsoub.com/uploads/monthly_2021_09/004CommandButton.png.3db892522bbd00a4d0176342288d6252.png" rel=""><img alt="004CommandButton.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77018" data-unique="v5gj681pd" src="https://academy.hsoub.com/uploads/monthly_2021_09/004CommandButton.png.3db892522bbd00a4d0176342288d6252.png"></a>
</p>

<ul>
<li>
		<strong>Label</strong>: يتيح هذا العنصر عرض النص للمستخدم، ويُستخدم عادةً لعرض نص وصفي بجانب العناصر.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77019" href="https://academy.hsoub.com/uploads/monthly_2021_09/005Label.png.03e340bd5a79c04dcdaf3613994c1c84.png" rel=""><img alt="005Label.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77019" data-unique="fpeyfnrhc" src="https://academy.hsoub.com/uploads/monthly_2021_09/005Label.png.03e340bd5a79c04dcdaf3613994c1c84.png"></a>
</p>

<ul>
<li>
		<strong>ListBox</strong>: يسمح عنصر التحكم هذا للمستخدم بالاختيار من قائمة الخيارات الممكنة.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77020" href="https://academy.hsoub.com/uploads/monthly_2021_09/006ListBox.png.bfec44365276911f92fa216bf2c239a5.png" rel=""><img alt="006ListBox.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77020" data-unique="8shmj55i3" src="https://academy.hsoub.com/uploads/monthly_2021_09/006ListBox.png.bfec44365276911f92fa216bf2c239a5.png"></a>
</p>

<p>
	+<strong>OptionButton</strong>: يسمح عنصر التحكم هذا للمستخدم بالاختيار من قائمة الخيارات الممكنة اختيارًا واحدًا فقط.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77021" href="https://academy.hsoub.com/uploads/monthly_2021_09/007OptionButton.png.f242eb9841b6f124123e4cf0ec9439b6.png" rel=""><img alt="007OptionButton.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77021" data-unique="y1go7zfj6" src="https://academy.hsoub.com/uploads/monthly_2021_09/007OptionButton.png.f242eb9841b6f124123e4cf0ec9439b6.png"></a>
</p>

<ul>
<li>
		<strong>Ref Edi</strong>: يسمح عنصر التحكم هذا للمستخدم بتحديد نطاق من الخلايا.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77022" href="https://academy.hsoub.com/uploads/monthly_2021_09/008Refedit.png.0d412b874b8a1c6b129ec5442f43f2ca.png" rel=""><img alt="008Refedit.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77022" data-unique="i5lqg9gfh" src="https://academy.hsoub.com/uploads/monthly_2021_09/008Refedit.png.0d412b874b8a1c6b129ec5442f43f2ca.png"></a>
</p>

<ul>
<li>
		<strong>TextBox</strong>: يتيح هذا العنصر إمكانية عرض النص والسماح للمستخدم بإدخال المعلومات.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77023" href="https://academy.hsoub.com/uploads/monthly_2021_09/009TextBox.png.c4d9f0c28c63c8f47058781010c8bdb3.png" rel=""><img alt="009TextBox.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77023" data-unique="dabsf4tgn" src="https://academy.hsoub.com/uploads/monthly_2021_09/009TextBox.png.c4d9f0c28c63c8f47058781010c8bdb3.png"></a>
</p>

<ul>
<li>
		<strong>Frame</strong>: يتيح هذا العنصر تجميع العناصر الأخرى معًا.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77024" href="https://academy.hsoub.com/uploads/monthly_2021_09/010Frame.png.7c2145214f7296d77acf60d5f56727c3.png" rel=""><img alt="010Frame.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77024" data-unique="vcimdxhww" src="https://academy.hsoub.com/uploads/monthly_2021_09/010Frame.png.7c2145214f7296d77acf60d5f56727c3.png"></a>
</p>

<ul>
<li>
		<strong>Calendar</strong>: يتيح هذا العنصر تضمين تقويم دائم في ورقة عمل.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77025" href="https://academy.hsoub.com/uploads/monthly_2021_09/011Calendar.png.5ade24502be57eccd6ec778cee5c7669.png" rel=""><img alt="011Calendar.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77025" data-unique="kigjn2kdd" src="https://academy.hsoub.com/uploads/monthly_2021_09/011Calendar.png.5ade24502be57eccd6ec778cee5c7669.png"></a>
</p>

<ul>
<li>
		<strong>Image</strong>: يتيح هذا العنصر إمكانية إضافة رسم أو صورة إلى واجهة المستخدم.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77026" href="https://academy.hsoub.com/uploads/monthly_2021_09/012Image.png.68b4a20c5d2777657ab2536a270ac324.png" rel=""><img alt="012Image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77026" data-unique="ecsyuytko" src="https://academy.hsoub.com/uploads/monthly_2021_09/012Image.png.68b4a20c5d2777657ab2536a270ac324.png"></a>
</p>

<ul>
<li>
		<strong>SpinButton</strong>: يتيح هذا العنصر للمستخدم تحديد قيمة بالنقر فوق زرين، إما لزيادة القيمة أو تقليلها.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77027" href="https://academy.hsoub.com/uploads/monthly_2021_09/013SpinButton.png.267d00d7667eeb1c07f5d7464e04d942.png" rel=""><img alt="013SpinButton.png" class="ipsImage ipsImage_thumbnailed" data-fileid="77027" data-unique="vx5x6l376" src="https://academy.hsoub.com/uploads/monthly_2021_09/013SpinButton.png.267d00d7667eeb1c07f5d7464e04d942.png"></a>
</p>

<h4>
	مثال
</h4>

<p>
	نريد تصميم واجهة إدخال تحتوي على البيانات الخاصة بموظفي إحدى المنشآت، ونريد مثلًا البيانات التالية:
</p>

<ul>
<li>
		الاسم.
	</li>
	<li>
		الجنس.
	</li>
	<li>
		الوضع الوظيفي.
	</li>
	<li>
		رقم الهاتف.
	</li>
	<li>
		تقييم العمل.
	</li>
	<li>
		الراتب.
	</li>
</ul>
<p>
	نرسم عناصر الإدخال ضمن مساحة العمل المخصصة، ويلزمنا في البداية عنصر من النوع <strong>TextBox</strong> لإدخال الاسم، وعنصر من النوع <strong>Label</strong>، ونحدد أبعاد كل منهما، حيث يمكننا التحكم بأبعادهما من طول وعرض حسب ما نراه مناسبًا.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77028" href="https://academy.hsoub.com/uploads/monthly_2021_09/014UserForm.gif.4b47d1805c5f58035b9193abb1ed47db.gif" rel=""><img alt="014UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77028" data-unique="esvqihvm5" src="https://academy.hsoub.com/uploads/monthly_2021_09/014UserForm.thumb.gif.b46ac1b293737fec3d9d95f367be5f1a.gif"></a>
</p>

<p>
	يمكن تحرير النص الخاص بـ <strong>Label</strong> عن طريق النقر عليه مرةً واحدةً لتحريره، ثم نحدد النص ونستبدله بما نريد، أو عن طريق القائمة <strong>Properties</strong> عن طريق الخاصية <strong>Caption</strong> التي تُعبر عن الاسم الظاهر للمستخدم، ونُغيّر الاسم الذي تحتويه.
</p>

<p>
	الآن نرسم العنصر الخاص بالجنس، وبما أن الإجابة تكون أحد اختيارين، فنختار الأداة <strong>OptionButton</strong>، ونضع لها العنوان بجانبها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77029" href="https://academy.hsoub.com/uploads/monthly_2021_09/015UserForm.gif.0d251090072a47b747d4d288f3d4fcb2.gif" rel=""><img alt="015UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77029" data-unique="5lctv2ju6" src="https://academy.hsoub.com/uploads/monthly_2021_09/015UserForm.thumb.gif.8698045505295435e587dc731b76fd53.gif"></a>
</p>

<p>
	ثم نرسم العنصر الخاص بالوضع الوظيفي هنا، ويمكن أن تكون العديد من الخيارات، والإجابة هي أحد هذه الخيارات، لذا الأداة المناسبة هي <strong>ComboBox</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77030" href="https://academy.hsoub.com/uploads/monthly_2021_09/016UserForm.gif.0813af5360ebcb1aa4f1fbf751d53108.gif" rel=""><img alt="016UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77030" data-unique="dgw7sqfbg" src="https://academy.hsoub.com/uploads/monthly_2021_09/016UserForm.thumb.gif.f4a1d0b10a499fdb215779494b20319f.gif"></a>
</p>

<p>
	العنصران رقم الهاتف والراتب عبارة عن <strong>TextBox</strong>، والعنصر تقييم العمل عبارة عن <strong>ComboBox</strong>، لذا ننسخ العناصر السابقة مع تغيير عناوينها <strong>Label</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77031" href="https://academy.hsoub.com/uploads/monthly_2021_09/017UserForm.gif.592c03c28e0ed717819dcb6fcf2b4d92.gif" rel=""><img alt="017UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77031" data-unique="8xy4gfcmw" src="https://academy.hsoub.com/uploads/monthly_2021_09/017UserForm.thumb.gif.73a119268dc8218d7183e0882074f92b.gif"></a>
</p>

<p>
	نُعدل من ترتيب العناصر قليلًا، ونضع كل 3 عناصر في عمود، ونلاحظ أن الأبعاد بالنسبة للعناصر غير متساوية بالكامل، لذا يجب تعديلها لتظهر بنفس الأبعاد وبمظهر أفضل، ولإجراء ذلك نحدد العناصر ذات الشكل المتقارب TextBox وComboBox، ومن القائمة <strong>Format</strong> الخاصة بتنسيق العناصر نختار الأمر <strong>Make Same Size</strong>، ومن هنا نجد الخيارات التالية:
</p>

<ul>
<li>
		<strong>Width</strong>: لجعل العناصر بنفس العرض.
	</li>
	<li>
		<strong>Height</strong>: لجعل العناصر بنفس الطول.
	</li>
	<li>
		<strong>Both</strong>: لجعل العناصر بنفس العرض والطول.
	</li>
</ul>
<p>
	نختار منها الأمر <strong>Both</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77032" href="https://academy.hsoub.com/uploads/monthly_2021_09/018UserForm.gif.155c373b10f58acd3589de3d7835fbfb.gif" rel=""><img alt="018UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77032" data-unique="r60p4hpwn" src="https://academy.hsoub.com/uploads/monthly_2021_09/018UserForm.thumb.gif.f493ca1343b84cb0f378408625c9edb0.gif"></a>
</p>

<p>
	ثم نُنسق العناصر من خلال محاذاة العناصر في العمود الواحد والسطر الواحد، وذلك من القائمة نفسها <strong>Format</strong>، حيث نختار الأمر <strong>Align</strong>، فنحدد العناصر في العمود الواحد ونجعل المحاذاة في المنتصف من الأمر <strong>Center</strong>، ونحدد عناصر كل صف ونجعل المحاذاة سفليةً من الأمر <strong>Bottom</strong>، ثم نساوي بين تباعد العناصر، وذلك بتحديد عناصر العمود الواحد، ومن نفس القائمة نختار الأمر <strong>vertical Spacing</strong> الذي يأخذ القيم التالية:
</p>

<ul>
<li>
		<strong>Make Equal</strong>: لجعل كل المسافات الأفقية والعمودية بين العناصر بنفس الحجم.
	</li>
	<li>
		<strong>Increase</strong>: لزيادة المسافة بين العناصر درجةً واحدةً من كل الجوانب.
	</li>
	<li>
		<strong>Decrease</strong>: لتقليل المسافة بين العناصر درجةً واحدةً من كل الجوانب.
	</li>
	<li>
		<strong>Remove</strong>: لإزالة المسافة بين العناصر.
	</li>
</ul>
<p>
	نختار منها الأمر <strong>Make Equal</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77033" href="https://academy.hsoub.com/uploads/monthly_2021_09/019UserForm.gif.0bcc62482ec3574dc9abc0b74a6e22d6.gif" rel=""><img alt="019UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77033" data-unique="qteeswuqa" src="https://academy.hsoub.com/uploads/monthly_2021_09/019UserForm.thumb.gif.a824961797e502dad60af145d95412a2.gif"></a>
</p>

<p>
	نُسمي الآن العناصر بأسماء برمجية لاستدعائها عند كتابة الإجراءات واستخدامها فيها، ولإجراء ذلك نحدد العنصر، ومن القائمة <strong>Properties</strong> عند الخاصية المسماة <strong>Name</strong> نضع اسمًا مُعبرًا عن العنصر (الاسم اختياري، ولكن يجب ألا يحتوي على فراغات).
</p>

<p>
	نسمي العناصر بالأسماء التالية:
</p>

<ul>
<li>
		الاسم = txtName.
	</li>
	<li>
		ذكر = OptMale.
	</li>
	<li>
		أنثى = OptFemale .
	</li>
	<li>
		الوضع الوظيفي = JopStatus.
	</li>
	<li>
		رقم الهاتف = PhoneNumber.
	</li>
	<li>
		تقييم العمل = Rate.
	</li>
	<li>
		الراتب = Salary.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77034" href="https://academy.hsoub.com/uploads/monthly_2021_09/020UserForm.gif.91dc5cdddaa9cf1063c9c6270f03c011.gif" rel=""><img alt="020UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77034" data-unique="cw7byui5u" src="https://academy.hsoub.com/uploads/monthly_2021_09/020UserForm.thumb.gif.c0ce18889e7cfd683d29b3e7bada1f62.gif"></a>
</p>

<p>
	إلى الآن لا تحتوي قوائمنا المنسدلة على أية قيم، لذا نحتاج إلى تخصيص قيم مناسبة لها، وذلك باستيراد مجال من الخلايا من صفحة إكسل في ملف العمل، حيث ننشئ ورقة عمل جديدةً، ونضع فيها القيم المحتملة لجميع القوائم التي نعمل عليها ونستوردها لواجهة الإدخال عن طريق الخاصية <strong>RowSource</strong> في القائمة <strong>Properties</strong>، ونضع فيها المجال بذكر اسم الصفحة بعده إشارة تعجب (!) بعدها المجال الخاص بهذه القائمة المنسدلة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77035" href="https://academy.hsoub.com/uploads/monthly_2021_09/021UserForm.gif.fe3978e49cd7f3e2ededdada309b52ee.gif" rel=""><img alt="021UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77035" data-unique="vl0nte38q" src="https://academy.hsoub.com/uploads/monthly_2021_09/021UserForm.thumb.gif.3010cd66c9b03f9ca15c560815da8fce.gif"></a>
</p>

<p>
	الآن أصبحت قوائمنا جاهزة، ولكن عند تشغيل الواجهة هنا نلاحظ أنه يمكننا تعبئة عنصر القائمة المنسدلة يدويًا، وذلك الأمر خاطئ، لذا يجب أن نقيد واجهة الإدخال بالمجال الذي استوردناه فقط، وذلك عن طريق الخاصية <strong>MatchRequired</strong> من القائمة <strong>Properties</strong>، حيث إن القيمة الافتراضية لها <strong>False</strong> التي تُمكن المستخدم من إدخال بيانات غير موجودة في القائمة، لذا نضع القيمة <strong>True</strong> بدلًا منها، وذلك لتقييد إدخالات المستخدم بمحتويات القائمة فقط.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77036" href="https://academy.hsoub.com/uploads/monthly_2021_09/022UserForm.gif.442cf9faf32e4da11a5b57fa119da19a.gif" rel=""><img alt="022UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77036" data-unique="jd5vaw4da" src="https://academy.hsoub.com/uploads/monthly_2021_09/022UserForm.thumb.gif.82392b21ce7f86d7db60fe543b1c2841.gif"></a>
</p>

<p>
	نجد في الصورة السابقة أننا نستطيع إدخال قيم من خارج القائمة المنسدلة ضمن العنصر الخاص بالوضع الوظيفي، لأن الإدخال غير مقيد، ولكن لم نستطع إدخال قيمة من خارجها في عنصر التقييم، لأن الإدخالات فيها مقيدة، وأظهر لنا المحرر رسالة خطأ تُفيد بأن القيمة المُدخلة غير مقبولة.
</p>

<p>
	لنُصمم الآن عنصر زر يعمل على ترحيل البيانات الموجودة في الوجهة إلى صفحة إكسل والإضافة تراكميًا، أي كلما أضفنا بيانات جديدة وضغطنا زر الإدخال تُرحل البيانات إلى السطر الفارغ أسفل البيانات، ونضع اسمًا برمجيًا له <strong>BtnExport</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77037" href="https://academy.hsoub.com/uploads/monthly_2021_09/023UserForm.gif.33aaca9bfc768792f015619f7184ddbc.gif" rel=""><img alt="023UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77037" data-unique="ntg9ifi8j" src="https://academy.hsoub.com/uploads/monthly_2021_09/023UserForm.gif.33aaca9bfc768792f015619f7184ddbc.gif"></a>
</p>

<p>
	الآن نغير من الاسم البرمجي للواجهة تغييرًا كاملًا، ونضع لها الاسم <strong>UserForm</strong>، ونغير من الظاهر للمستخدم عن طريق الخاصية <strong>Caption</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77038" href="https://academy.hsoub.com/uploads/monthly_2021_09/024UserForm.gif.018f3760c2edc9b7ee510e7a8d047519.gif" rel=""><img alt="024UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77038" data-unique="e2dsg52h0" src="https://academy.hsoub.com/uploads/monthly_2021_09/024UserForm.gif.018f3760c2edc9b7ee510e7a8d047519.gif"></a>
</p>

<p>
	أصبحت واجهة الإدخال جاهزةً للبرمجة وربطها مع خلايا الصفحة التي سنُرحل إليها البيانات، وهو ما سنتعلمه لاحقًا.
</p>

<h3>
	الخصائص العامة للعناصر في القائمة Properties
</h3>

<p>
	تحتوي القائمة <strong>Properties</strong> على خصائص معينة لكل عنصر، حيث تُستخدم لتعيين الميزات أو تحريرها وفقًا لاحتياجات ومتطلبات المستخدم، وللتعديل نضغط على الخاصية ونُعدلها في العمود الأيمن، ومن أهم هذه الخصائص:
</p>

<ul>
<li>
		<strong>Name</strong>: الاسم البرمجي للعنصر الذي تتعرف عليه الإجراءات عند كتابة الشيفرات البرمجية، ويتكون من 40 حرفًا بحد أقصى.
	</li>
	<li>
		<strong>Caption</strong>: تُستخدم هذه الخاصية لتحديد الاسم الظاهري للعنصر الذي يظهر في تصميم الواجهة.
	</li>
	<li>
		<strong>Height, Width</strong>: تُستخدم هذه الخاصية لتعيين ارتفاع وعرض نموذج المستخدم والعناصر الخاصة به، ويمكنك تخصيص الحجم عن طريق إدخاله يدويًا في خاصية الارتفاع والعرض في نافذة الخصائص، وتعيين القيم بالنقاط، ولا يمكن أن تُقبَل القيم السالبة.
	</li>
	<li>
		<strong>Value</strong>: يكثر استخدام هذه الخاصية مع العنصرين <strong>CheckBox</strong> و<strong>OptionButton</strong>، حيث تجعل العنصر مُفعلًا تلقائيًا، أي أنه يكون قيمةً افتراضيةً ويأخذ القيمة 1 أو القيمة <strong>True</strong>، بمعنى أن العنصر مُفعل افتراضيًا، والقيمة 0 أو القيمة <strong>False</strong> التي تعني أنه غير مفعل؛ أما في العنصرين <strong>TextBox</strong> و<strong>ComboBox</strong>، فيمكننا وضع قيمة نصية أو رقمية افتراضية، ولكن يجب الانتباه أن تكون القيمة ضمن خيارات القائمة المنسدلة ومطابقةً للقيمة في صفحة الإكسل تمامًا.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77039" href="https://academy.hsoub.com/uploads/monthly_2021_09/025UserForm.gif.c768bd7468f6db6aae6dd4eb5d266597.gif" rel=""><img alt="025UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77039" data-unique="46p6uf6nx" src="https://academy.hsoub.com/uploads/monthly_2021_09/025UserForm.thumb.gif.c1ed15eba87b3325ac8e1b8534626b29.gif"></a>
</p>

<ul>
<li>
		<strong>AutoSize</strong>: تستخدم هذه الخاصية لتحديد ما إذا كان حجم العنصر الذي يعرض المحتوى بالكامل تلقائيًا أم لا، وإذا عُيِّنت هذه الخاصية على القيمة <strong>TRUE</strong> فسيعمل تلقائيًا على تغيير حجم عنصر التحكم المحدد وفقًا لحجم المحتوى؛ أما بالنسبة للقيمة <strong>FALSE</strong> (الخيار الافتراضي)، فسيحتفظ بحجم عنصر التحكم كما هو أثناء التصميم.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77040" href="https://academy.hsoub.com/uploads/monthly_2021_09/026UserForm.gif.ed5e6283f99091aab6211e13114247e6.gif" rel=""><img alt="026UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77040" data-unique="r4j7rs90p" src="https://academy.hsoub.com/uploads/monthly_2021_09/026UserForm.gif.ed5e6283f99091aab6211e13114247e6.gif"></a>
</p>

<ul>
<li>
		<strong>BackColor</strong>: تُستخدم هذه الخاصية لتعيين لون الخلفية للعناصر، ولتنفيذ خاصية <strong>BackColor</strong> يجب التأكد من ضبط نمط الخلفية لخاصية <strong>BackStyle</strong> على خلفية معتمة.
	</li>
	<li>
		<strong>BorderColor</strong>: تُستخدم هذه الخاصية لتعيين لون الحدود لـ <strong>UserForm</strong> والعناصر الخاصة به، ولتطبيق خاصية لون الحدود يجب تعيين الخاصية <strong>BorderStyle</strong> إلى قيمة غير صفرية.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77041" href="https://academy.hsoub.com/uploads/monthly_2021_09/027UserForm.gif.f489f8fcd4f442b88572891db4b860cb.gif" rel=""><img alt="027UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77041" data-unique="xx8uriln9" src="https://academy.hsoub.com/uploads/monthly_2021_09/027UserForm.gif.f489f8fcd4f442b88572891db4b860cb.gif"></a>
</p>

<ul>
<li>
		<strong>ControlTipText</strong>: تُستخدم هذه الخاصية لعرض النص عندما يشير المستخدم ويمرر الماوس فوق العنصر، وهذه الخاصية مفيدة في تثقيف المستخدمين من خلال تقديم نصائح أو تفسيرات حول استخدام العنصر.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77042" href="https://academy.hsoub.com/uploads/monthly_2021_09/028UserForm.gif.59eb681a7f6d98ed7ef800ef725e983b.gif" rel=""><img alt="028UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77042" data-unique="6glbt4gqk" src="https://academy.hsoub.com/uploads/monthly_2021_09/028UserForm.gif.59eb681a7f6d98ed7ef800ef725e983b.gif"></a>
</p>

<ul>
<li>
		<strong>Font</strong>: تحدد هذه الخاصية نوع الخط المستخدم في نموذج المستخدم أو في العناصر، ويمكنك التلاعب بالخط بسهولة عن طريق تحديد اسم الخط الخاص به ونمطه وحجمه.
	</li>
	<li>
		<strong>MousePointer</strong>: تُستخدم لتحديد الطريقة التي يُعرَض مؤشر الماوس فيها عندما يتحرك فوق العنصر، حيث توجد العديد من الأشكال التي يمكن اختيارها.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77043" href="https://academy.hsoub.com/uploads/monthly_2021_09/029UserForm.gif.d0830e8911091146527c788033490aa2.gif" rel=""><img alt="029UserForm.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77043" data-unique="k89xt1it8" src="https://academy.hsoub.com/uploads/monthly_2021_09/029UserForm.gif.d0830e8911091146527c788033490aa2.gif"></a>
</p>

<ul>
<li>
		<strong>Visible</strong>: تحدد هذه الخاصية إمكانية الرؤية للتحكم في النموذج، فإذا عُيِّن على القيمة المنطقية <strong>TRUE</strong> (القيمة الافتراضية)، فسيكون العنصر مرئيًا آخر، وإلا بالنسبة للقيمة <strong>False</strong> فسيختفي العنصر، ويمكن استخدام هذه الخاصية لعرض عنصر مخفي فقط في حالة استيفاء أي شرط، وإلا سيظل العنصر مخفيًا.
	</li>
</ul>
<h2>
	خاتمة
</h2>

<p>
	من خلال ما طرحناه نكون استوفينا أهم آليات تصميم الواجهات التي تُعَد من الطرق التي تجعل التعامل مع عمليات إدخال البيانات أكثر متعةً ودقةً وأقل تشتيتًا للمستخدم، حيث سيكون كل تركيزه فقط في بعض الخانات التي يتعامل معها من خلال هذه الواجهة، ولا يتشتت نظره في الكم الهائل من البيانات كما في طريقة الإدخال التقليدية.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		المقال السابق: <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%B5%D9%86%D8%A7%D8%B9%D8%A9-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AE%D8%A7%D8%B5%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r506/" rel="">صناعة الدوال الخاصة والتعامل مع الأحداث في مايكروسوفت إكسل VBA </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-%D9%84%D8%AA%D9%86%D9%81%D9%8A%D8%B0-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r503/" rel="">استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%B9%D9%86-%D8%B7%D8%B1%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-vba-r505/" rel="">استخدام أدوات مايكروسوفت إكسل لتنسيق الخلايا عن طريق الشيفرات VBA </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">507</guid><pubDate>Thu, 16 Sep 2021 14:05:00 +0000</pubDate></item><item><title>&#x635;&#x646;&#x627;&#x639;&#x629; &#x627;&#x644;&#x62F;&#x648;&#x627;&#x644; &#x627;&#x644;&#x62E;&#x627;&#x635;&#x629; &#x648;&#x627;&#x644;&#x62A;&#x639;&#x627;&#x645;&#x644; &#x645;&#x639; &#x627;&#x644;&#x623;&#x62D;&#x62F;&#x627;&#x62B; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%B5%D9%86%D8%A7%D8%B9%D8%A9-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AE%D8%A7%D8%B5%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%A3%D8%AD%D8%AF%D8%A7%D8%AB-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r506/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/6141af7beabea__VBA.png.7e344b742488b525fc75b52babba63aa.png" /></p>

<p>
	لا شك أننا نتعامل مع الكثير من الدوال في برنامج مايكروسوفت إكسل، فهنالك المئات من الدوال التي تُبسّط علينا العمل دائمًا، ولكن توجد بعض العمليات التي تحتاج إلى بعض الاحتيال عليها للوصول إلى حل المسائل التي تعترضنا، وربما نستخدم خلالها العديد من الدوال المتداخلة مع بعضها البعض لحل المسألة، وباستخدام برمجة المايكروسوفت إكسل عن طريق الفيجوال بيسك يمكننا صناعة دوال خاصة بعملنا، والتي تخدم الوصول لحل المشاكل التي نتعامل معها دومًا بأقصر الطرق.
</p>

<p>
	تعرفنا سابقًا على آلية كتابة الإجراءات باستخدام فيجوال بيسك في درس <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>، ووجدنا أن الإجراء من النوع sub-routine يُنفذ أمرًا أو مجموعةً معينةً من الأوامر، وأن الإجراء من النوع Function يُضيف دوال على برنامج مايكروسوفت إكسل للاستخدام الاعتيادي كما لو أنها من ضمن دوال البرنامج الأساسية.
</p>

<h2>
	صناعة الدوال
</h2>

<p>
	توجد طريقتان لكتابة الإجراء هما:
</p>

<h3>
	إجراء مع وسطاء (معطيات)
</h3>

<p>
	وتكون الشيفرة كما يلي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_6" style="">
<span class="typ">Function</span><span class="pln"> name</span><span class="pun">(</span><span class="pln">arguments</span><span class="pun">)</span><span class="pln"> as type
    </span><span class="typ">Code</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	حيث إن:
</p>

<ul>
<li>
		<strong>name</strong>: اسم للدالة التي نصنعها، ويُفضل أن يكون الاسم مُعبرًا عن عمل الدالة.
	</li>
	<li>
		<strong>arguments</strong>: الوسطاء التي ستعمل الدالة مع محتوياتها.
	</li>
	<li>
		<strong>type</strong>: نوع المُخرَج للدالة التي نصنعها.
	</li>
	<li>
		<strong>Code</strong>: مجموعة الشيفرات التي ستُنفذها الدالة.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	لدينا البيانات التالية، ونريد صناعة دالة خاصة تعمل على دمج الاسم الأول مع الأخير للحصول على الاسم الكامل.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77002" href="https://academy.hsoub.com/uploads/monthly_2021_09/001MakingFunction.PNG.144bb957c3f4fa0cfe159004c9abbd0d.PNG" rel=""><img alt="001MakingFunction.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="77002" data-unique="63y1152r6" src="https://academy.hsoub.com/uploads/monthly_2021_09/001MakingFunction.PNG.144bb957c3f4fa0cfe159004c9abbd0d.PNG"></a>
</p>

<p>
	لدينا وسيطان هنا، هما: الاسم الأول والاسم الأخير من النوع النصي، لذا نكتب الإجراء بالشكل التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_8" style="">
<span class="typ">Function</span><span class="pln"> </span><span class="typ">FullName</span><span class="pun">(</span><span class="typ">FirstName</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pun">,</span><span class="pln"> </span><span class="typ">LastName</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pun">)</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
</span><span class="typ">FullName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">FirstName</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="str">" "</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="typ">LastName</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	عند العودة إلى برنامج مايكروسوفت إكسل سنجد أن الدالة أُضيفت إلى الدوال الأساسية فيه، وتعمل مثل باقي الدوال الاعتيادية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77003" href="https://academy.hsoub.com/uploads/monthly_2021_09/002MakingFunction.gif.982032f12b836117c922023ee141213c.gif" rel=""><img alt="002MakingFunction.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77003" data-unique="2oz7n5ywz" src="https://academy.hsoub.com/uploads/monthly_2021_09/002MakingFunction.gif.982032f12b836117c922023ee141213c.gif"></a>
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		يمكننا وضع وسيط في الدالة قيمته إما من خلية مرجعية مثل المثال السابق، أو ربما لا نضع له قيمة أبدًا، وعندها يجب أن نضع قبله الكلمة <code>Optional</code> التي تدل على أن هذا الوسيط اختياري، أي يمكن ألّا نُسند له قيمةً.
	</p>
</blockquote>

<h4>
	مثال
</h4>

<p>
	لدينا البيانات التالية، ونريد صناعة دالة خاصة تحسب الراتب بعد الزيادة، وذلك وفقًا لتقييم كل موظف.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77004" href="https://academy.hsoub.com/uploads/monthly_2021_09/003MakingFunction.PNG.3ed5e53ff43c0bf0dbcfe31fa0b4af54.PNG" rel=""><img alt="003MakingFunction.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="77004" data-unique="6bak99kut" src="https://academy.hsoub.com/uploads/monthly_2021_09/003MakingFunction.thumb.PNG.2b06403d834815182e9cc3a0608a9b1e.PNG"></a>
</p>

<p>
	حيث يتقاضى الموظف زيادةً قدرها 0.2 عندما يكون تقييمه أكثر من 7، وزيادةً قدرها 0.1 عندما يكون تقييمه أكثر من 5 وأقل من 7، وزيادةً أخرى قدرها 0.08 عندما يكون أكثر من 1، وزيادةً قدرها 0.04 إذا لم نُسند خانة التقييم للدالة، وعليه يكون الإجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_10" style="">
<span class="typ">Function</span><span class="pln"> </span><span class="typ">NewSalary</span><span class="pun">(</span><span class="typ">Salary</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Currency</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Optional</span><span class="pln"> </span><span class="typ">Rate</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pun">)</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Currency</span><span class="pln">
 </span><span class="typ">If</span><span class="pln"> </span><span class="typ">Rate</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">NewSalary</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">0.04</span><span class="pun">)</span><span class="pln">
</span><span class="typ">ElseIf</span><span class="pln"> </span><span class="typ">Rate</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="lit">7</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">NewSalary</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">0.2</span><span class="pun">)</span><span class="pln">
 </span><span class="typ">ElseIf</span><span class="pln"> </span><span class="typ">Rate</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="lit">5</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">NewSalary</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">0.1</span><span class="pun">)</span><span class="pln">
</span><span class="typ">ElseIf</span><span class="pln"> </span><span class="typ">Rate</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">NewSalary</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Salary</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">0.08</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	بتنفيذ الدالة على البيانات السابقة نجد التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77005" href="https://academy.hsoub.com/uploads/monthly_2021_09/004MakingFunction.gif.6efa3c3c05f71769c9b646745d869a57.gif" rel=""><img alt="004MakingFunction.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77005" data-unique="lygokjti1" src="https://academy.hsoub.com/uploads/monthly_2021_09/004MakingFunction.thumb.gif.f4c436ff92e5e2d900bd54ba554a0ec6.gif"></a>
</p>

<h3>
	إجراء بدون وسطاء (معطيات)
</h3>

<p>
	وتكتب الشيفرة كما يلي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_12" style="">
<span class="typ">Function</span><span class="pln"> name</span><span class="pun">()</span><span class="pln"> as type
    </span><span class="typ">Code</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	حيث إن:
</p>

<ul>
<li>
		<strong>name</strong>: اسم للدالة التي نصنعها، ويُفضل أن يكون الاسم مُعبرًا عن عمل الدالة.
	</li>
	<li>
		<strong>type</strong>: نوع المُخرَج للدالة التي نصنعها.
	</li>
	<li>
		<strong>Code</strong>: مجموعة الشيفرات التي ستُنفذها الدالة.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	لنَعُد إلى المثال السابق، حيث نريد إضافة عمود يحتوي أرقامًا تعريفيةً عشوائيةً للموظف، لذلك نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_14" style="">
<span class="typ">Function</span><span class="pln"> </span><span class="typ">RandCode</span><span class="pun">()</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">RandCode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Rnd</span><span class="pun">()</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="lit">10000</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	عند تنفيذ الدالة على البيانات السابقة فسنحصل على النتيجة التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77006" href="https://academy.hsoub.com/uploads/monthly_2021_09/005MakingFunction.gif.c96d57a99b288eb0d528649826f4cb8d.gif" rel=""><img alt="005MakingFunction.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77006" data-unique="u206h5tes" src="https://academy.hsoub.com/uploads/monthly_2021_09/005MakingFunction.gif.c96d57a99b288eb0d528649826f4cb8d.gif"></a>
</p>

<h2>
	التعامل مع الأحداث
</h2>

<p>
	تعلمنا في المقالات السابقة كيفية كتابة إجراءات لتنفيذ مجموعة من الأوامر، وذلك بطريقتين: الأولى عندما نطلب منه تنفيذ الإجراء يدويًا، والثانية عن طريق إضافة أزرار تُنفذ الإجراء عند الضغط عليها، لكن في بعض الأحيان نحتاج أن تُنفَّذ هذه الإجراءات آليًا عند وقوع حدث معين، مثل فتح ملف، أو ظهور رسالة ترحيب عند فتح ملف إكسل، أو عند الطباعة، أو عند تعبئة خلية، وهذه الإجراءات تسمى أحداثًا، وهي موجودة في كل لغات البرمجة، ونستطيع برمجة برنامج الإكسل لتنفيذها عند وقوع الحدث.
</p>

<h3>
	الصيغة العامة لكتابة الأحداث
</h3>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_16" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Event_Name</span><span class="pln"> </span><span class="pun">(</span><span class="pln">variables</span><span class="pun">)</span><span class="pln">
 </span><span class="typ">Our</span><span class="pln"> code 
</span><span class="typ">End</span><span class="pln"> sub</span></pre>

<p>
	نجد أن الصيغة العامة للحدث هي نفسها للإجراء الروتيني، ولكن يجب تسميتها بأسماء محددة تدل على حدث معين، أي أن الاسم هنا ليس اختياريًا، بل يكون مُعرّفًا عن طريق لغة البرمجة، وتوجد بعض القوانين لكتابة الأحداث وهي:
</p>

<ul>
<li>
		تُكتب الأحداث في محرر الفيجوال بيسك ضمن الأوراق أو ضمن الملف، وليس ضمن <code>model</code>؛ لأن الحدث هو خاص بورقة العمل أو الملف، وبالنقر مرتين على اسم الصفحة أو اسم الملف يفتح المحرر الخاص بالصفحة أو الملف.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77007" href="https://academy.hsoub.com/uploads/monthly_2021_09/006Event.gif.4772262d26755c74b950821809225f9a.gif" rel=""><img alt="006Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77007" data-unique="de2bv5ixu" src="https://academy.hsoub.com/uploads/monthly_2021_09/006Event.thumb.gif.7c98521f16eed1448c5f16b23d54f06b.gif"></a>
</p>

<ul>
<li>
		الحدث خاص، فلا يمكن جعله ضمن المحرر عامًا، ولتنفيذ ذلك توجد قائمة منسدلة تعمل على تبديل الإجراء من عام إلى إجراء خاص بالصفحة أو الملف.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77008" href="https://academy.hsoub.com/uploads/monthly_2021_09/007Event.gif.88c8ce3488e77f89d48274b79659333d.gif" rel=""><img alt="007Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77008" data-unique="8mabp5en0" src="https://academy.hsoub.com/uploads/monthly_2021_09/007Event.thumb.gif.c631034bd25fdbdc7f0267052322fdbd.gif"></a>
</p>

<ul>
<li>
		اسم الحدث هو اسم معين ليس اختياريًا، أي أن محرر الشيفرات هو من يزودنا به ولا يمكن إنشاؤه، ونُحدد الحدث الذي نريده من القائمة المنسدلة في الزاوية اليمنى من واجهة المحرر.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77009" href="https://academy.hsoub.com/uploads/monthly_2021_09/008Event.gif.e74b58f5f00eda46ff9bd44081caefc7.gif" rel=""><img alt="008Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77009" data-unique="rxsvql5ao" src="https://academy.hsoub.com/uploads/monthly_2021_09/008Event.thumb.gif.c3ab5ddab25cfb961adbe9d9ca54e34e.gif"></a>
</p>

<p>
	سنتعرف على بعض الأمثلة التي تشرح آلية عمل الأحداث.
</p>

<h4>
	مثال 1
</h4>

<p>
	نريد إنشاء حدث يُظهر رسالة ترحيب عند فتح صفحة معينة، لذا فأول ما نفعله البحث عن الحدث الذي يُنفذ عند فتح الصفحة، وهو مُعرّف بالاسم <code>SheetActivate</code>، وهذا الحدث يعمل على مستوى الملف، ويكون الإجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_18" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">Workbook_SheetActivate</span><span class="pun">(</span><span class="typ">ByVal</span><span class="pln"> </span><span class="typ">Sh</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pun">)</span><span class="pln">
 </span><span class="typ">If</span><span class="pln"> </span><span class="typ">Sh</span><span class="pun">.</span><span class="typ">Name</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Sheet2"</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
 </span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"hello"</span><span class="pln">
 </span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث إن المتغير <code>sh</code> هو متغير مُعرف في الحدث، يُعبر عن الصفحات كمتغيرات.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77010" href="https://academy.hsoub.com/uploads/monthly_2021_09/009Event.gif.60de3eebff12f36a1aa8e793460ce8e0.gif" rel=""><img alt="009Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77010" data-unique="j3u9xm5v2" src="https://academy.hsoub.com/uploads/monthly_2021_09/009Event.thumb.gif.2c3bf30aab194133a138897212cc8245.gif"></a>
</p>

<h4>
	مثال 2
</h4>

<p>
	نريد إظهار نفس الرسالة السابقة عند فتح ملف الإكسل. <strong>Workbook_Open</strong>: هو الحدث الذي يُنفّذ عند فتح ملف الإكسل، ولذلك نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_20" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">Workbook_Open</span><span class="pun">()</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"welcome back"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77011" href="https://academy.hsoub.com/uploads/monthly_2021_09/010Event.gif.fbb62b2afd859258cb76eb201b46935d.gif" rel=""><img alt="010Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77011" data-unique="6zyuea3ym" src="https://academy.hsoub.com/uploads/monthly_2021_09/010Event.thumb.gif.4adc23c6527b22d4807457c4275fec24.gif"></a>
</p>

<h4>
	مثال 3
</h4>

<p>
	نريد كتابة إجراء يُضيف الصفحات الجديدة في نهاية صف الصفحات، ولتنفيذ ذلك علينا تقسيم المراحل لعمل الإجراء ومعرفة الأوامر الضرورية لفعل ذلك:
</p>

<ul>
<li>
		<strong>Workbook_NewSheet</strong>: هو الحدث الذي يُنفذ عند إضافة صفحة عمل جديدة.
	</li>
	<li>
		يجب في البداية أن نعرف عدد الصفحات في الملف، لذا لنُعرّف المتغير <code>sheet_count</code>، ونُخزن فيه قيمة الأمر الذي يحصي عدد الصفحات، وهو الأمر <code>sheet.count</code>.
	</li>
	<li>
		نكتب الأمر المسؤول عن تحريك الصفحة الجديدة لآخر الصف، وهو الأمر التالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_22" style="">
<span class="pln">object</span><span class="pun">.</span><span class="pln">move after</span><span class="pun">:=</span><span class="pln">sheets</span><span class="pun">(</span><span class="str">"عدد الصفات في الملف"</span><span class="pun">)</span></pre>

<p>
	حيث يُعبّر <code>object</code> هنا عن الصفحة الجديدة، ويُصبح الإجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_24" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">Workbook_NewSheet</span><span class="pun">(</span><span class="typ">ByVal</span><span class="pln"> </span><span class="typ">Sh</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> sheet_count </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
sheet_count </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Sheet</span><span class="pun">.</span><span class="typ">Count</span><span class="pln">
</span><span class="typ">Sh</span><span class="pun">.</span><span class="typ">Move</span><span class="pln"> after</span><span class="pun">:=</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"sheet_count"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77012" href="https://academy.hsoub.com/uploads/monthly_2021_09/011Event.gif.503bc68d74bd964b67b78e7ffd83cd79.gif" rel=""><img alt="011Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77012" data-unique="jlqamtz7n" src="https://academy.hsoub.com/uploads/monthly_2021_09/011Event.thumb.gif.b07d685ac29b2c45f9a30be572bfff85.gif"></a>
</p>

<h4>
	مثال 4
</h4>

<p>
	نريد تنفيذ إجراء عند الانتقال من خلية إلى أخرى يتغير لون عمود وسطر تقاطع الخلية، لذا نكتب الإجراء كما يلي: في البداية نريد دالةً تحذف الألوان السابقة عن طريق التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_26" style="">
<span class="typ">Cells</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">ColorIndex</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xlNone</span></pre>

<p>
	حيث تعني القيمة <code>xlNone</code> جعل الخلية بلا لون، وهذه التعليمة تُلغي اللون لكل خلايا الصفحة. الآن نكتب التعليمة الخاصة بجعل خلايا السطر كاملًا تأخذ لونًا موحدًا كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_28" style="">
<span class="typ">EntireRow</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> RGB</span><span class="pun">(</span><span class="lit">14</span><span class="pun">,</span><span class="pln"> </span><span class="lit">148</span><span class="pun">,</span><span class="pln"> </span><span class="lit">148</span><span class="pun">)</span></pre>

<p>
	ونفس الحالة بالنسبة لإعطاء خلايا العمود لونًا واحدًا، ولكن نُسبق التعليمتين بالأمر <code>Target</code> الذي يُعبر هنا عن مجال الصفحة، ومن هنا يصبح الإجراء بالشكل التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_3049_30" style="">
<span class="typ">Private</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">Worksheet_SelectionChange</span><span class="pun">(</span><span class="typ">ByVal</span><span class="pln"> </span><span class="typ">Target</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Cells</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">ColorIndex</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xlNone
</span><span class="typ">Target</span><span class="pun">.</span><span class="typ">EntireRow</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> RGB</span><span class="pun">(</span><span class="lit">14</span><span class="pun">,</span><span class="pln"> </span><span class="lit">148</span><span class="pun">,</span><span class="pln"> </span><span class="lit">148</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Target</span><span class="pun">.</span><span class="typ">EntireColumn</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> RGB</span><span class="pun">(</span><span class="lit">14</span><span class="pun">,</span><span class="pln"> </span><span class="lit">148</span><span class="pun">,</span><span class="pln"> </span><span class="lit">148</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="77012" href="https://academy.hsoub.com/uploads/monthly_2021_09/011Event.gif.503bc68d74bd964b67b78e7ffd83cd79.gif" rel=""><img alt="011Event.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="77012" data-unique="kfcl68l9x" src="https://academy.hsoub.com/uploads/monthly_2021_09/011Event.thumb.gif.b07d685ac29b2c45f9a30be572bfff85.gif"></a>
</p>

<h3>
	أهم الأحداث المرتبطة بملف العمل
</h3>

<p>
	الأحداث المرتبطة بملف العمل كثيرة، ولكن سنذكر أهمها فيما يلي:
</p>

<ul>
<li>
		<strong>Workbook_BeforeSave</strong>: الحدث قبل إتمام حفظ الملف.
	</li>
	<li>
		<strong>Workbook_BeforePrint</strong>: الحدث قبل البدء بالطباعة.
	</li>
	<li>
		<strong>Workbook_AfterSave</strong>: الحدث بعد إتمام حفظ الملف.
	</li>
	<li>
		<strong>Workbook_SheetActivate</strong>: الحدث عند تنشيط (فتح) الصفحة (ورقة عمل معينة).
	</li>
	<li>
		<strong>Workbook_NewSheet</strong>: الحدث عند إضافة ورقة عمل جديدة.
	</li>
	<li>
		<strong>Workbook_SheetChange</strong>: الحدث عند تعديل ورقة عمل.
	</li>
	<li>
		<strong>Workbook_BeforeClose</strong>: الحدث قبل إغلاق ملف الإكسل.
	</li>
	<li>
		<strong>Workbook_Open</strong>: الحدث عند فتح ملف الإكسل.
	</li>
</ul>
<h3>
	أهم الأحداث المرتبطة بورقة العمل
</h3>

<ul>
<li>
		<strong>Worksheet_Activate</strong>: الحدث عند تنشيط الصفحة.
	</li>
	<li>
		<strong>Worksheet_BeforeDelete</strong>: الحدث قبل تنفيذ حذف الصفحة.
	</li>
	<li>
		<strong>Worksheet_Change</strong>: الحدث عند إجراء تغييرات على الصفحة.
	</li>
	<li>
		<strong>Worksheet_Deactivate</strong>: الحدث عند إلغاء تنشيط الصفحة (الانتقال إلى صفحة أخرى).
	</li>
</ul>
<h2>
	خاتمة
</h2>

<p>
	لا تقل الأحداث أهميةً عن الإجراءات التي تعلمناها سابقًا، فلكلٍ منها عملٌ مخصص ضمن الشيفرات، كما تساعد كثيرًا في صناعة البرمجيات بصورة أفضل ومضبوطة أكثر في نفس الوقت، وتوجد الكثير من الأحداث الأخرى التي سنتطرق إليها، والتي سنشرح آلية عملها وقت الحاجة إليها أثناء العمل.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		المقال السابق: <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%B9%D9%86-%D8%B7%D8%B1%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-vba-r505/" rel="">استخدام أدوات مايكروسوفت إكسل لتنسيق الخلايا عن طريق الشيفرات VBA </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-%D9%84%D8%AA%D9%86%D9%81%D9%8A%D8%B0-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r503/" rel="">استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">506</guid><pubDate>Mon, 13 Sep 2021 14:00:00 +0000</pubDate></item><item><title>&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x623;&#x62F;&#x648;&#x627;&#x62A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x644;&#x62A;&#x646;&#x633;&#x64A;&#x642; &#x627;&#x644;&#x62E;&#x644;&#x627;&#x64A;&#x627; &#x639;&#x646; &#x637;&#x631;&#x64A;&#x642; &#x627;&#x644;&#x634;&#x64A;&#x641;&#x631;&#x627;&#x62A; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%B9%D9%86-%D8%B7%D8%B1%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-vba-r505/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/6141a83ee9484_afteredit-.png.64f5d564cc3d7a820288cd8351b9bce9.png" /></p>

<p>
	تعلمنا في مقال <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-%D9%84%D8%AA%D9%86%D9%81%D9%8A%D8%B0-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r503/" rel="">استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA</a> كيفية تنفيذ إجراءات عمل بعض الأدوات عن طريق الشيفرات البرمجية، وسنكمل في هذا المقال شرح عمل الأدوات التالية عن طريق الشيفرات البرمجية:
</p>

<ul>
<li>
		تنسيق الخلايا.
	</li>
	<li>
		تنسيق الخطوط.
	</li>
	<li>
		إضافة حدود للخلايا.
	</li>
	<li>
		مسح محتويات الخلايا.
	</li>
	<li>
		إضافة خلايا أو صفوف أو أعمدة.
	</li>
</ul>
<h2>
	تغيير حجم خط الخلية
</h2>

<p>
	نستخدم لتغيير حجم خط الخلية التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_6" style="">
<span class="pln">expression</span><span class="pun">.</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Size</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"قيمة حجم الخط الذي نريده"</span></pre>

<p>
	حيث تعبّر <code>expression</code> عن الكائن الذي سنتعامل معه، وفي الغالب يكون من النوع <code>Range</code> بدون ذكر اسم الملف والصفحة اللذين يحويان هذا النطاق، إلا إذا كان تنفيذ الشيفرة في غير الصفحة النشطة أو في غير الملف النشط، أي أنها تصبح بالشكل التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_8" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Size</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"قيمة حجم الخط الذي نريده"</span></pre>

<p>
	والقيمة الافتراضية لحجم الخط هي 11.
</p>

<h2>
	جعل خط الخلية عريضا
</h2>

<p>
	نستخدم لذلك التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_10" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Bold</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">True</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> </span><span class="typ">False</span></pre>

<p>
	حيث إن القيمة <code>True</code> للخط العريض، والقيمة <code>False</code> للخط العادي، وهي القيمة الافتراضية.
</p>

<h2>
	تغيير لون خط الخلية
</h2>

<p>
	ويمكن تنفيذ ذلك بعدة طرق، وهي:
</p>

<ul>
<li>
		عن طريق الاسم الصريح للون، والتعليمة كالتالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_12" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> vbColor</span></pre>

<p>
	حيث إن القيمة الافتراضية للون الخط هي vbBlack.
</p>

<ul>
<li>
		عن طريق رقم الفهرس للون، والتعليمة كالتالي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_14" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="pln"> </span><span class="typ">ColorIndex</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الرقم المرجعي للون"</span></pre>

<p>
	حيث تكون القيمة الرقمية للون بين الرقم 1 والرقم 56 وفق المرفق بالصورة التالية، والقيمة الافتراضية للون الخط هي 1.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76987" href="https://academy.hsoub.com/uploads/monthly_2021_09/001ColorIndex.PNG.a888b05a31956d8afe829db23aa3cf20.PNG" rel=""><img alt="001ColorIndex.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="76987" data-unique="qgrce5qzo" src="https://academy.hsoub.com/uploads/monthly_2021_09/001ColorIndex.PNG.a888b05a31956d8afe829db23aa3cf20.PNG"></a>
</p>

<ul>
<li>
		عن طريق نظام الـ RGB للألوان: الفكرة الأساسية من نظام RGB هي القدرة على إعادة إنتاج أي لون آخر بناءً على نسب تداخل ثلاثة ألوان أساسية: الأحمر R والأخضر G والأزرق B، حيث إن وجود هذه الألوان معًا بقيمتها الكاملة 255 ينتج اللون الأبيض، بينما غياب قيمتها لتصل إلى 0 ينتج اللون الأسود.
	</li>
</ul>
<p>
	هذا النوع من أنظمة الألوان ضوئي بالكامل، لذا فهو مثالي للشاشات وأجهزة العرض المختلفة، ونتلاعب بقيم كل من الألوان الأساسية للحصول على أي لون آخر قد نريده، وفي العادة تتراوح شدة كل لون ضمن مجال من 0 حتى 255.
</p>

<p>
	ويُعَد نظام ألوان RGB نظام إضافة، حيث تعني كل قيمة مضافة لأحد الألوان المزيد من الضوء، أي أن الألوان ذات القيم الكبرى (في كل من R وG وB) أفتح، بينما تلك التي تمتلك قيمًا دُنيا أقتم.
</p>

<p>
	والتعليمة التي تحدد لون الخط هي كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_16" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> RGB</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span></pre>

<h2>
	تغيير لون الخلية
</h2>

<p>
	وذلك عن طريق التعليمة:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_18" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">ColorIndex</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الرقم المرجعي للون"</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		يمكن استخدام الاسم الصريح للون ونظام الـ RGB كما في حالة تغيير لون الخط.
	</p>
</blockquote>

<h2>
	محاذاة النصوص
</h2>

<p>
	كما نعلم لدينا نوعان من المحاذاة للنصوص، وهما: المحاذاة الأفقية، والمحاذاة العمودية.
</p>

<h3>
	المحاذاة الأفقية
</h3>

<p>
	تحدد موضع النص من الخلية أفقيًّا، والتعليمة الخاصة بها هي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_20" style="">
<span class="typ">Sub</span><span class="pln"> alignment_H</span><span class="pun">()</span><span class="pln">
expression</span><span class="pun">.</span><span class="typ">HorizontalAlignment</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> type
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث تأخذ <code>type</code> إحدى القيم التالية:
</p>

<ul>
<li>
		<strong>xlHAlignLeft</strong> محاذاة النص يسار الخلية.
	</li>
	<li>
		<strong>xlHAlignRight</strong> محاذاة النص يمين الخلية.
	</li>
	<li>
		<strong>xlHAlignCenter</strong> محاذاة النص منتصف الخلية.
	</li>
</ul>
<h3>
	المحاذاة العمودية
</h3>

<p>
	تحدد موضع النص من الخلية أفقيًّا، والتعليمة الخاصة بها هي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_22" style="">
<span class="typ">Sub</span><span class="pln"> alignment_V</span><span class="pun">()</span><span class="pln">
expression</span><span class="pun">.</span><span class="pln"> </span><span class="typ">VerticalAlignment</span><span class="pun">=</span><span class="pln"> type
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث تأخذ <code>type</code> إحدى القيم التالية:
</p>

<ul>
<li>
		<strong>xlVAlignTop</strong> محاذاة النص أعلى الخلية.
	</li>
	<li>
		<strong>xlVAlignBottom</strong> محاذاة النص أسفل الخلية.
	</li>
	<li>
		<strong>xlVAlignCenter</strong> محاذاة النص منتصف الخلية.
	</li>
</ul>
<h2>
	تفعيل الخلية أو الصفحة
</h2>

<p>
	لجعل الخلية أو الصفحة نشطةً (مُفعَّلةً) نستخدم التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_24" style="">
<span class="typ">Sub</span><span class="pln"> active</span><span class="pun">()</span><span class="pln">
expression</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Activate</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h2>
	تغيير عرض الخلية
</h2>

<p>
	نستخدم لذلك التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_27" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">ColumnWidth</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"قيمة عرض الخلية الذي نريده "</span></pre>

<p>
	حيث إن القيمة الافتراضية لعرض الخلية هي 8.43.
</p>

<h3>
	مثال
</h3>

<p>
	نريد إنشاء الخلية A2 التي تحوي القيمة 5000، والخلية B1 التي تحوي القيمة 48، ونريد جعل الخط عريضًا حجمه 20، ولونه أبيض، ولون خلفية الخلية أخضر داكنًا، وجعل المحتوى يتوسط الخلايا، ولذلك نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_29" style="">
<span class="typ">Sub</span><span class="pln"> example</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"5000"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B2"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"48"</span><span class="pln">

</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2:B2"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Bold</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">True</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2:B2"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Size</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">20</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2:B2"</span><span class="pun">).</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> RGB</span><span class="pun">(</span><span class="lit">255</span><span class="pun">,</span><span class="pln"> </span><span class="lit">255</span><span class="pun">,</span><span class="pln"> </span><span class="lit">255</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2:B2"</span><span class="pun">).</span><span class="typ">Cells</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">ColorIndex</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">10</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2:B2"</span><span class="pun">).</span><span class="typ">HorizontalAlignment</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xlHAlignCenter

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76988" href="https://academy.hsoub.com/uploads/monthly_2021_09/002Example.gif.1300f9d8d8f24eabc90e6174589d8b06.gif" rel=""><img alt="002Example.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76988" data-unique="zkcu51n8q" src="https://academy.hsoub.com/uploads/monthly_2021_09/002Example.thumb.gif.5f131aadbf755164b6e4cb19a0efe316.gif"></a>
</p>

<h2>
	إضافة حدود للخلية
</h2>

<p>
	نستخدم لذلك التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_31" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Borders</span><span class="pun">(</span><span class="pln">direction</span><span class="pun">).</span><span class="typ">LineStyle</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> type</span></pre>

<p>
	حيث إن:
</p>

<ul>
<li>
		<strong>direction</strong>: نُحدد عن طريقها مكان الحدود للخلية، حيث تأخذ القيم التالية:
	</li>
	<li>
		<strong>XlDiagonalDown</strong> لوضع خط يقطع الخلية إلى مثلثين يبدأ من الزاوية اليسرى للخلية.
	</li>
	<li>
		<strong>XlDiagonalUp</strong> لوضع خط يقطع الخلية إلى مثلثين يبدأ من الزاوية اليمنى للخلية.
	</li>
	<li>
		<strong>XlEdgeBottom</strong> لوضع خط للخلية من الأسفل.
	</li>
	<li>
		<strong>XlEdgeLeft</strong> لوضع خط للخلية من اليسار.
	</li>
	<li>
		<strong>XlEdgeRigh</strong> لوضع خط للخلية من اليمين.
	</li>
	<li>
		<strong>XlEdgeTop</strong> لوضع خط للخلية من الأعلى.
	</li>
	<li>
		<strong>XlInsideHorizonta</strong> لوضع خطوط أفقية للخلايا، لكن يجب أن يحوي المجال عدة أعمدة، وتكون الخطوط للخلايا بين بداية المجال ونهايته.
	</li>
	<li>
		<strong>XlInsideVertical</strong> لوضع خطوط عمودية للخلايا، لكن يجب أن يحوي المجال عدة أعمدة، وتكون الخطوط للخلايا بين بداية المجال ونهايته.
	</li>
	<li>
		<strong>LineStyle</strong>: تحدد شكل الخط الذي سنضعه للخلية، ويأخذ القيم التالية:
	</li>
	<li>
		<strong>XlContinuous</strong> الخط الاعتيادي (خط متصل).
	</li>
	<li>
		<strong>Xldash</strong> الخط عبارة عن مجموعة شَرْطَات (متقطع) بالشكل التالي -------
	</li>
	<li>
		<strong>XlDashDot</strong> الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة تليها نقطة.
	</li>
	<li>
		<strong>XlDashDotDot</strong> الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة تليها نقطتان.
	</li>
	<li>
		<strong>XlDot</strong> الخط منقط بالشكل التالي ……..
	</li>
	<li>
		<strong>XlDouble</strong> الخط عبارة عن خطين عاديين فوق بعضهما.
	</li>
	<li>
		<strong>XlLineStyleNone</strong> لإلغاء تنسيق الحدود الموجودة بالخلية.
	</li>
	<li>
		<strong>XlSlantDashDot</strong> الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة مقطوعة بشكل مائل تليها نقطة.
	</li>
</ul>
<p>
	ولإضافة حدود من كافة الاتجاهات للخلية، نكتب الصيغة السابقة كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_33" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Borders</span><span class="pun">.</span><span class="typ">LineStyle</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> type</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76989" href="https://academy.hsoub.com/uploads/monthly_2021_09/003Borders.gif.4f7e42c4963522a7eec9fe0c18337c86.gif" rel=""><img alt="003Borders.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76989" data-unique="dcwbrkfms" src="https://academy.hsoub.com/uploads/monthly_2021_09/003Borders.thumb.gif.8cdfe67199753d5e141f7ea9e0a4198d.gif"></a>
</p>

<h2>
	تغيير ثخانة حدود الخلية
</h2>

<p>
	نستخدم لذلك التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_35" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Borders</span><span class="pun">.</span><span class="pln">value </span><span class="pun">=</span><span class="pln"> </span><span class="str">"قيمة ثخانة الحدود للخلية"</span></pre>

<h2>
	حذف محتويات الخلايا
</h2>

<p>
	يمكن حذف محتويات الخلايا بعدة طرق، ومنها استخدام الأمر <code>Delete</code> والأمر <code>Clear</code> والأمر <code>ClearContents</code> والأمر <code>ClearFormats</code>، ولكلٍ منها عمل مخصص.
</p>

<h3>
	الأمر Delete
</h3>

<p>
	يُستخدم لحذف الخلايا مع مكانها ضمن البيانات، ويؤدي استعمال هذا الأمر إلى إزاحة الخلايا المتبقية باتجاه مكان الخلايا المحذوفة، والشكل العام لصيغة الأمر هو:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_37" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Delete</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Rang</span><span class="pun">(</span><span class="str">"الخلايا أو النطاق الذي نريد حذفه"</span><span class="pun">).</span><span class="typ">Delete</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Shift</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث إن <code>shift</code> وسيط اختياري يُحدد مكان إزاحة الخلايا، ويأخذ القيم التالية:
</p>

<ul>
<li>
		<strong>xlShiftToLeft</strong> إزاحة الخلايا المتبقية لموضع الخلايا المحذوفة من اليسار، وهي القيمة الافتراضية.
	</li>
	<li>
		<strong>xlShiftUp</strong> إزاحة الخلايا المتبقية لموضع الخلايا المحذوفة من الأسفل.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	بالعودة إلى المثال السابق نريد حذف الخانات من A1:A3، وذلك باستخدام الطرق السابقة، ولذلك نكتب التعليمات التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_39" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Delete</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="typ">Delete</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76990" href="https://academy.hsoub.com/uploads/monthly_2021_09/004Delete.gif.846fd602495c2dd6dbe584afd6bef5c7.gif" rel=""><img alt="004Delete.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76990" data-unique="9ynl8h0p6" src="https://academy.hsoub.com/uploads/monthly_2021_09/004Delete.thumb.gif.8b3db871d5dbe12dae8962d0d33e02f9.gif"></a>
</p>

<h3>
	الأمر Clear
</h3>

<p>
	يُستخدم لحذف بيانات الخلية وتنسيقاتها مع الحفاظ على موضع البيانات، والشكل العام لصيغة الأمر:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_41" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلايا أو النطاق الذي نريد حذفه"</span><span class="pun">).</span><span class="typ">Clear</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h4>
	مثال
</h4>

<p>
	لنجرب نفس المثال السابق، فنكتب الإجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_43" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="typ">Clear</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76991" href="https://academy.hsoub.com/uploads/monthly_2021_09/005Clear.gif.0131780b9396bfe5b86c0d5eba093147.gif" rel=""><img alt="005Clear.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76991" data-unique="r7xhk88q1" src="https://academy.hsoub.com/uploads/monthly_2021_09/005Clear.thumb.gif.ed26805a115e42db412fcab41a6349bf.gif"></a>
</p>

<h3>
	الأمر ClearContents
</h3>

<p>
	يُستخدم لحذف البيانات، ولكن هذا الأمر يُحافظ على موضع وتنسيق الخلية، والشكل العام لصيغة الأمر هو:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_45" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear_Contents</span><span class="pln"> </span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلايا أو النطاق الذي نريد حذفه"</span><span class="pun">).</span><span class="pln"> </span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h4>
	مثال
</h4>

<p>
	نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_47" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear_Contents</span><span class="pln"> </span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="pln"> </span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76992" href="https://academy.hsoub.com/uploads/monthly_2021_09/006ClearContents.gif.1f6b913b6ff0eb29551e0ad8974969e7.gif" rel=""><img alt="006ClearContents.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76992" data-unique="tvd6yiflo" src="https://academy.hsoub.com/uploads/monthly_2021_09/006ClearContents.thumb.gif.8c429eb0e4fd5e19ba78044aa47b90f8.gif"></a>
</p>

<h3>
	الأمر ClearFormats
</h3>

<p>
	يُستخدم لحذف تنسيق الخلية مع إبقاء المحتوى، والشكل العام لصيغة الأمر هو:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_49" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear_Contents</span><span class="pln"> </span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلايا أو النطاق الذي نريد حذفه"</span><span class="pun">).</span><span class="pln"> </span><span class="typ">ClearFormats</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h4>
	مثال
</h4>

<p>
	نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_51" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear_Contents</span><span class="pln"> </span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="pln"> </span><span class="typ">ClearFormats</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76993" href="https://academy.hsoub.com/uploads/monthly_2021_09/007ClearFormats.gif.90684095c617a1f7a64ec66b70b4b1ef.gif" rel=""><img alt="007ClearFormats.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76993" data-unique="p0674vmk1" src="https://academy.hsoub.com/uploads/monthly_2021_09/007ClearFormats.thumb.gif.320799c1feee628e4e3a72c7bb6ca82e.gif"></a>
</p>

<h2>
	إدراج خلايا أو أسطر أو أعمدة
</h2>

<p>
	التعليمة المسؤولة عن الإدراج هي التعليمة <code>Insert</code>
</p>

<h3>
	إدراج خلايا
</h3>

<p>
	نُدرج خلايا جديدةً عن طريق الأمر التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_53" style="">
<span class="typ">Sub</span><span class="pln"> insert</span><span class="pun">()</span><span class="pln">
expression</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Insert</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Shift</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث يحدد الوسيط <code>Shift</code> اتجاه إدراج البيانات، ويأخذ القيم التالية:
</p>

<ul>
<li>
		<strong>xlShiftDown</strong> تُدرج خلايا أسفل النطاق المحدد.
	</li>
	<li>
		<strong>xlShiftToRight</strong> تُدرج خلايا يمين النطاق المحدد.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	نريد إدراج خلايا ضمن بياناتنا في الجدول التالي، بحيث تكون الخلايا المضافة للأعلى ضمن النطاق A1:B5:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76994" href="https://academy.hsoub.com/uploads/monthly_2021_09/008Insert.PNG.e0ee8879e872d9c93f3cedebc58e78d6.PNG" rel=""><img alt="008Insert.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="76994" data-unique="2l8te4g8d" src="https://academy.hsoub.com/uploads/monthly_2021_09/008Insert.PNG.e0ee8879e872d9c93f3cedebc58e78d6.PNG"></a>
</p>

<p>
	نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_55" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Insert</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:B5"</span><span class="pun">).</span><span class="typ">Insert</span><span class="pln"> xlShiftDown
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76995" href="https://academy.hsoub.com/uploads/monthly_2021_09/009Insert.gif.14857ce9cd2032cda60e6fed8dc8959a.gif" rel=""><img alt="009Insert.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76995" data-unique="5dw54fs59" src="https://academy.hsoub.com/uploads/monthly_2021_09/009Insert.thumb.gif.80cef2be69f18d96b2719298709e8ad8.gif"></a>
</p>

<h3>
	إدراج أسطر أو أعمدة
</h3>

<p>
	نُدرجها عن طريق الأمر التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_57" style="">
<span class="typ">Sub</span><span class="pln"> insert</span><span class="pun">()</span><span class="pln">
expression</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Insert</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h4>
	مثال
</h4>

<p>
	نريد إدراج 3 صفوف ضمن بياناتنا في جدول البيانات السابق، ولذلك نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_59" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Insert</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"2:5"</span><span class="pun">).</span><span class="typ">Insert</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76996" href="https://academy.hsoub.com/uploads/monthly_2021_09/010Insert.gif.3b4927f041a3b47aa81a13593ccce57d.gif" rel=""><img alt="010Insert.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76996" data-unique="cyt10wwzs" src="https://academy.hsoub.com/uploads/monthly_2021_09/010Insert.thumb.gif.3fb316e05ea5994afcaf4edde535ca09.gif"></a>
</p>

<p>
	نلاحظ أنه أُضيفت 3 أسطر ابتداءً من السطر رقم 2، وأن بقية البيانات أُزيحت للأسفل. ولإضافة أعمدة سنتبع نفس الأسلوب، ولكن المجال يتضمن أعمدةً فقط، وبفرض أننا نريد إضافة عمود واحد يكون الإجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_2888_61" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Insert</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A:A"</span><span class="pun">).</span><span class="typ">Insert</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76997" href="https://academy.hsoub.com/uploads/monthly_2021_09/011Insert.gif.afbae2a4af537e1cd9a241292a300c54.gif" rel=""><img alt="011Insert.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76997" data-unique="ihdxeqq5k" src="https://academy.hsoub.com/uploads/monthly_2021_09/011Insert.thumb.gif.bf639c54c66a18ee2d6621e1a7809130.gif"></a>
</p>

<p>
	هنا تُزاح البيانات نحو اليسار في النسخة الإنجليزية، وإلى اليمين في النسخة العربية.
</p>

<h2>
	خاتمة
</h2>

<p>
	توجد العديد من التعليمات الجزئية التي تُشكل اللَّبنة الأساسية لبناء التطبيقات، لذا يتوجب علينا فهم آلية عمل التطبيق، وتقسيمه لأجزاء ومهام صغيرة، ثم البحث عن التعليمات التي تنفذ هذه المهام، حيث تطرقنا لأهمها، وسنستوفي شرح ما يصادفنا من أوامر خلال المقالات القادمة أثناء صناعة البرمجيات الصغيرة.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">505</guid><pubDate>Fri, 10 Sep 2021 14:00:00 +0000</pubDate></item><item><title>&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x627;&#x644;&#x634;&#x64A;&#x641;&#x631;&#x627;&#x62A; &#x644;&#x62A;&#x646;&#x641;&#x64A;&#x630; &#x627;&#x644;&#x639;&#x645;&#x644;&#x64A;&#x627;&#x62A; &#x627;&#x644;&#x623;&#x633;&#x627;&#x633;&#x64A;&#x629; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-%D9%84%D8%AA%D9%86%D9%81%D9%8A%D8%B0-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-vba-r503/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/6141a6e552865_-afteredit.png.6413a9e146b131ed3c5ae3c62b464566.png" /></p>

<p>
	يمكننا تنفيذ الأوامر التي تنفذها الأدوات على برنامج إكسل باستخدام الشيفرات البرمجية، مثل إضافة صفحات وتنسيق الخطوط والخلايا والعديد من العمليات، وفيما يلي أهم الأوامر التي نستخدمها في إنشاء التطبيقات:
</p>

<ul>
<li>
		إضافة صفحة عمل جديدة.
	</li>
	<li>
		تحديد الخلايا.
	</li>
	<li>
		عمليتا النسخ واللصق.
	</li>
	<li>
		إلغاء تحديد الخلايا المنسوخة.
	</li>
	<li>
		عمليتا القص واللصق.
	</li>
	<li>
		إسناد قيمة إلى خلية معينة.
	</li>
</ul>
<h2>
	إضافة صفحة عمل جديدة
</h2>

<p>
	نُضيف صفحات جديدةً عن طريق التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_10" style="">
<span class="typ">Sub</span><span class="pln"> add_sheet </span><span class="pun">()</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">.</span><span class="pln">add
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	تُضاف الصفحة بالاسم الافتراضي بهذه الطريقة، وذلك حسب الترقيم الافتراضي (… ,sheet1, sheet2, sheet3)؛ أما إذا أردنا وضع اسم معين للصفحة، فيمكننا ذلك عن طريق التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_12" style="">
<span class="typ">Sub</span><span class="pln"> add_sheet</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">.</span><span class="pln">add</span><span class="pun">.</span><span class="pln">name </span><span class="pun">=</span><span class="pln"> name
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث تُعبر <code>name</code> عن اسم اختياري للصفحة.
</p>

<h2>
	تحديد الخلايا
</h2>

<p>
	يمكننا تحديد خلية أو مجموعة من الخلايا عن طريق التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_14" style="">
<span class="typ">Sub</span><span class="pln"> selection</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">).</span><span class="typ">Select</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h2>
	عمليتا النسخ واللصق
</h2>

<p>
	لدينا عدة حالات يمكن استخدامها لنسخ ولصق الخلايا:
</p>

<h3>
	النسخ واللصق مباشرة
</h3>

<p>
	تختلف الآلية هنا باختلاف مكان لصق البيانات المنسوخة، ولدينا عدة أشكال:
</p>

<ul>
<li>
		اللصق في نفس الصفحة.
	</li>
	<li>
		اللصق في صفحة أخرى.
	</li>
	<li>
		اللصق في ملف آخر.
	</li>
</ul>
<h4>
	اللصق في نفس الصفحة
</h4>

<p>
	الأوامر المسؤولة عن العمليتين هي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_16" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Range_Copy_paste</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد نسخها"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي سنلصق فيها المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي سنلصق فيه المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"بداية مجال اللصق للمحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	نلاحظ وجود فراغ يفصل بين التعليمة <code>Range(" ").Copy</code> والتعليمة الخاصة باللصق، ويجب أن تكونا في نفس السطر البرمجي.
</p>

<h5>
	مثال
</h5>

<p>
	لدينا البيانات التالية، ونريد نسخ الخلايا إلى أماكن مختلفة في نفس الصفحة، لذا نكتب الإجراء التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76747" href="https://academy.hsoub.com/uploads/monthly_2021_09/001CopyPaste.PNG.8b4bdab834705665cb8bc8d7f850f640.PNG" rel=""><img alt="001CopyPaste.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="76747" data-unique="fkfiwocc3" src="https://academy.hsoub.com/uploads/monthly_2021_09/001CopyPaste.PNG.8b4bdab834705665cb8bc8d7f850f640.PNG"></a>
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_20" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Range_Copy_paste</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C1"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1:D3"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76748" href="https://academy.hsoub.com/uploads/monthly_2021_09/002CopyPaste.gif.d3b4b9b82c7b98c50af3a652de1b2f18.gif" rel=""><img alt="002CopyPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76748" data-unique="h7bq97hvk" src="https://academy.hsoub.com/uploads/monthly_2021_09/002CopyPaste.thumb.gif.dff0df92b3ef92ede6d28dda65a6ffac.gif"></a>
</p>

<p>
	نلاحظ أن اللصق يحصل بكامل ما تحتويه الخلية من تنسيقات ومعادلات وبيانات.
</p>

<h4>
	اللصق في صفحة أخرى
</h4>

<p>
	لاستعمال هذه الطريقة للنسخ من صفحة واللصق في صفحة أخرى تكون التعليمات كما يلي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_22" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Range_Copy_paste_in_other_sheet</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"الصفحة التي سننسخ منها البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد نسخها"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"الصفحة التي سننسخ البيانات إليها"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي سنلصق فيها المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h4>
	اللصق في ملف آخر
</h4>

<p>
	نتعامل مع النسخ من ملف إكسل إلى آخر بنفس الأسلوب، وتكون التعليمات كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_24" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Range_Copy_paste_in_other_workbook</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"اسم الملف الذي سننسخ منه البيانات.xlsx"</span><span class="pun">)</span><span class="pln">_
</span><span class="pun">.</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"الصفحة التي سننسخ منها البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد نسخها"</span><span class="pun">).</span><span class="typ">Copy_</span><span class="pln">
 </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"اسم الملف الذي سننسخ إليه البيانات.xlsx"</span><span class="pun">)</span><span class="pln">_
</span><span class="pun">.</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"الصفحة التي سننسخ البيانات إليها"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي سنلصق فيها المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h5>
	مثال
</h5>

<p>
	لدينا البيانات التالية، ونريد نسخها مرةً إلى صفحة أخرى ومرةً إلى ملف آخر، لذا نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_26" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Range_Copy_paste_in_other_sheet</span><span class="pun">()</span><span class="pln">

    </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet2"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">)</span><span class="pln">

    </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"Book1.xlsx"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> _
        </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"Book2.xlsx"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76749" href="https://academy.hsoub.com/uploads/monthly_2021_09/003CopyPaste.gif.c58c5d094be9c2c99a1e7d031dc35005.gif" rel=""><img alt="003CopyPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76749" data-unique="v95pu21ww" src="https://academy.hsoub.com/uploads/monthly_2021_09/003CopyPaste.thumb.gif.96b0bcc17ae03bd7c920a80d34dfd597.gif"></a>
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		<strong>ملاحظة هامة</strong>: عندما يكون السطر البرمجي طويلًا جدًا ولا تتسع الشاشة لعرضه كاملًا، فيمكننا تقسيمه إلى أسطر بإضافة شرطة سفلية (_) في المكان الذي نريد الانتقال منه إلى سطر آخر، كما في المثال السابق في التعليمة الأخيرة منه (السطر الثالث).
	</p>
</blockquote>

<h3>
	النسخ واللصق عن طريق الإسناد
</h3>

<p>
	يمكننا هنا جعل خلية تأخذ قيمة خلية أخرى عن طريق الإسناد، وتكون التعليمات كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_28" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Paste_Values_Examples</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد النسخ إليها"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد نسخها"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي سنلصق فيه المحتوى المنسوخ"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	ونتعامل مع النسخ من صفحة إلى أخرى ومن ملف إلى آخر بنفس الأسلوب.
</p>

<h4>
	مثال
</h4>

<p>
	بالعودة إلى المثال السابق نريد نسخ البيانات في نفس الصفحة، ومرةً أخرى في صفحة ضمن نفس الملف، ومرةً ثالثةً في ملف آخر مستقل، لذا تكون لدينا التعليمات كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_30" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Paste_Values_Examples</span><span class="pun">()</span><span class="pln">
  </span><span class="pun">النسخ</span><span class="pln"> </span><span class="pun">واللصق</span><span class="pln"> </span><span class="pun">ضمن</span><span class="pln"> </span><span class="pun">نفس</span><span class="pln"> </span><span class="pun">الصفحة</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1:D3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">

</span><span class="pun">النسخ</span><span class="pln"> </span><span class="pun">واللصق</span><span class="pln"> </span><span class="pun">في</span><span class="pln"> </span><span class="pun">صفحة</span><span class="pln"> </span><span class="pun">أخرى</span><span class="pln">
    </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet2"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">

</span><span class="pun">النسخ</span><span class="pln"> </span><span class="pun">واللصق</span><span class="pln"> </span><span class="pun">في</span><span class="pln"> </span><span class="pun">ملف</span><span class="pln"> </span><span class="pun">آخر</span><span class="pln">
    </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"file2.xlsm"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">  _
    </span><span class="pun">=</span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"file1.xlsm"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">        
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	نلاحظ في هذه الطريقة أن اللصق يكون للقيمة فقط، ويتجاهل التنسيقات بشكل كامل.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76750" href="https://academy.hsoub.com/uploads/monthly_2021_09/004CopyPaste.gif.e4ca2ef84c205f4cf2396bd69d069856.gif" rel=""><img alt="004CopyPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76750" data-unique="ziszj9f6d" src="https://academy.hsoub.com/uploads/monthly_2021_09/004CopyPaste.thumb.gif.628825b1f5f3ad10b12a75b983670b21.gif"></a>
</p>

<h3>
	النسخ واللصق الخاص
</h3>

<p>
	يمكننا نسخ البيانات واستعمال اللصق الخاص -كما في مايكروسوفت إكسل- باستعمال التعليمات التالية:
</p>

<ul>
<li>
		عند النسخ واللصق في نفس الصفحة
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_32" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">PasteSpecial_Examples</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد نسخها"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد لصق المحتوى فيها"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> type_of_paste
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<ul>
<li>
		عند النسخ واللصق في صفحة أخرى
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_34" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">PasteSpecial_Examples</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"اسم الصفحة التي تنسخ منها البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln"> 
    </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"اسم الصفحة التي سنلصق فيها البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي سنلصق فيه البيانات"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> type_of_paste
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<ul>
<li>
		عند النسخ واللصق في ملف آخر
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_36" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">PasteSpecial_Examples</span><span class="pun">()</span><span class="pln">    
    </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"اسم الملف الذي ننسخ منه البيانات.xlsx"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"اسم الصفحة"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln">
</span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"اسم الملف الذي سننسخ إليه البيانات.xlsx"</span><span class="pun">)</span><span class="pln">_
</span><span class="pun">.</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"الصفحة التي سننسخ البيانات إليها"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي سنلصق فيها المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">_
</span><span class="pun">.</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> type_of_paste
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث تُعبر <code>type_of_paste</code> عن نوع اللصق الخاص الذي نريده، وفيما يلي أهم أشكاله:
</p>

<ul>
<li>
		<strong>xlPasteAll</strong> لصق الخلايا مع التنسيقات.
	</li>
	<li>
		<strong>xlPasteAllExceptBorders</strong> لصق الخلايا مع التنسيقات عدا حدود الخلية.
	</li>
	<li>
		<strong>xlPasteColumnWidths</strong> لصق عرض العمود المنسوخ.
	</li>
	<li>
		<strong>xlPasteComments</strong> لصق التعليقات.
	</li>
	<li>
		<strong>xlPasteFormats</strong> لصق التنسيقات فقط.
	</li>
	<li>
		<strong>xlPasteFormulas</strong> لصق المعادلات أو الدوال المستخدمة في خلايا المصدر.
	</li>
	<li>
		<strong>xlPasteFormulasAndNumberFormats</strong> لصق المعادلات أو الدوال المستخدمة في خلايا المصدر بالإضافة لتنسيقات الأرقام.
	</li>
	<li>
		<strong>xlPasteValidation</strong> لصق عمليات التحقق من صحة البيانات.
	</li>
	<li>
		<strong>xlPasteValues</strong> لصق المحتوى فقط بدون أية تنسيقات أو معادلات.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	لنَعُد إلى المثال السابق وننسخ الخلية A1، ثم نُلصق البيانات بشكل خاص في خلايا العمود D باستعمال بعض الأنواع السابقة من اللصق الخاص، لذا نكتب التعليمات التالية:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_38" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">PasteSpecial_Examples</span><span class="pun">()</span><span class="pln">
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln">
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:=</span><span class="pln">xlPasteAll
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D3"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:=</span><span class="pln">xlPasteAllExceptBorders
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D5"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:=</span><span class="pln">xlPasteFormats
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D7"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> </span><span class="typ">Paste</span><span class="pun">:=</span><span class="pln">xlPasteValues

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76751" href="https://academy.hsoub.com/uploads/monthly_2021_09/005CopyPaste.gif.cdda7fd640e25982a3d40a34354875d6.gif" rel=""><img alt="005CopyPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76751" data-unique="s94oy8vm7" src="https://academy.hsoub.com/uploads/monthly_2021_09/005CopyPaste.thumb.gif.9449b87210090ae598f02f7091772cf1.gif"></a>
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		<strong>ملاحظة</strong>: يمكننا كتابة أشكال اللصق الخاص بشكل مباشر دون الحاجة لكتابة التعليمة <code>Paste:=</code>، كما نجد أن الخلية المنسوخة يحيط بها التحديد حتى بعد الانتهاء من تنفيذ الشيفرة بالكامل، لذا فعلينا إلغاء التحديد، وهو ما سنتعلمه لاحقًا.
	</p>
</blockquote>

<p>
	نعيد كتابة الإجراء الخاص بالمثال السابق بدون التعليمة <code>Paste:=</code> لنجده يعمل دون أية أخطاء:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_40" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">PasteSpecial_Examples</span><span class="pun">()</span><span class="pln">
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Copy</span><span class="pln">
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> xlPasteAll
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D3"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> xlPasteAllExceptBorders
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D5"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> xlPasteFormats
 </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D7"</span><span class="pun">).</span><span class="typ">PasteSpecial</span><span class="pln"> xlPasteValues
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76752" href="https://academy.hsoub.com/uploads/monthly_2021_09/006CopyPaste.gif.2ef9ca32388953b68373631ea81b4125.gif" rel=""><img alt="006CopyPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76752" data-unique="pobwtmjyc" src="https://academy.hsoub.com/uploads/monthly_2021_09/006CopyPaste.thumb.gif.28a957c76b45c6f5e933aea1caa784cd.gif"></a>
</p>

<h2>
	إلغاء تحديد الخلايا المنسوخة
</h2>

<p>
	كما وجدنا في المثال السابق، بقي التحديد يحيط بالخلية المنسوخة مسبقًا بعد الانتهاء من عمليتي النسخ واللصق، ولإلغاء التحديد نضيف التعليمة التالية إلى الشيفرة:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_42" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">PasteSpecial_Examples</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Application</span><span class="pun">.</span><span class="typ">CutCopyMode</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">False</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	تأخذ التعليمة إما القيمة <code>True</code> التي تُبقي التحديد وهي القيمة الافتراضية، أو القيمة <code>False</code> التي تُلغيه.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76753" href="https://academy.hsoub.com/uploads/monthly_2021_09/007CopyPaste.gif.59b434dd2ed2ed940d0d6bfcf1fba076.gif" rel=""><img alt="007CopyPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76753" data-unique="m00sp4fdc" src="https://academy.hsoub.com/uploads/monthly_2021_09/007CopyPaste.thumb.gif.385647430aab8d489be2dab73f32b340.gif"></a>
</p>

<h2>
	عمليتا القص واللصق
</h2>

<p>
	يمكننا إجراء عملية القص بنفس الطريقة المباشرة لعملية النسخ، كما يلي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_44" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Range_Copy_paste</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي نريد نسخها"</span><span class="pun">).</span><span class="typ">Cut</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"الخلية التي سنلصق فيها المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Cut</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي سنلصق فيه المحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"المجال الذي نريد نسخه"</span><span class="pun">).</span><span class="typ">Cut</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"بداية مجال اللصق للمحتوى المنسوخ"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	ويمكن تنفيذ اللصق في صفحة أخرى، أو في ملف آخر مثل عملية النسخ.
</p>

<h3>
	<strong>مثال</strong>
</h3>

<p>
	لنَعُد إلى المثال السابق حيث نريد قص 7 خلايا من العمود A ولصقها في عمود آخر، ثم قصها مرةً أخرى ولصقها في الصفحة الثانية، كما نريد قص 7 خانات من العمود B ولصقها في الملف الثاني، لذا تكون التعليمات كالتالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_46" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Paste_Values_Examples</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1:A7"</span><span class="pun">).</span><span class="typ">Cut</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1"</span><span class="pun">)</span><span class="pln">

    </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D1:D7"</span><span class="pun">).</span><span class="typ">Cut</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet2"</span><span class="pun">)</span><span class="pln"> _
    </span><span class="pun">.</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">)</span><span class="pln">

    </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"file1.xlsm"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1:B7"</span><span class="pun">).</span><span class="typ">Cut</span><span class="pln"> _
        </span><span class="typ">Workbooks</span><span class="pun">(</span><span class="str">"file2.xlsm"</span><span class="pun">).</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"Sheet1"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">)</span><span class="pln">

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76754" href="https://academy.hsoub.com/uploads/monthly_2021_09/008CutPaste.gif.c446af690c51cdcb6fdf9144d2f44ef7.gif" rel=""><img alt="008CutPaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76754" data-unique="64bngcxjd" src="https://academy.hsoub.com/uploads/monthly_2021_09/008CutPaste.thumb.gif.439fc6f80853585354b74567cea86897.gif"></a>
</p>

<h2>
	إسناد قيمة إلى خلية معينة
</h2>

<p>
	نستطيع إسناد قيمة إلى خلية؛ إما بإسناد قيمة مباشرة، أو بإسناد قيمة مساوية لقيمة خلية أخرى، كالتالي:
</p>

<ul>
<li>
		إسناد قيمة مباشرة عن طريق التعليمة التالية:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_48" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"عنوان الخلية"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"القيمة التي نريد إسنادها"</span></pre>

<ul>
<li>
		إسناد قيمة مساوية لقيمة خلية أخرى عن طريق التعليمة التالية:
	</li>
</ul>
<pre class="ipsCode">
Range("عنوان الخلية") =  Range("عنوان الخلية التي سنُسند قيمتها للخلية الأخرى").value
</pre>

<h3>
	<strong>مثال</strong>
</h3>

<p>
	لنطبق التعليمتين السابقتين على بياناتنا، بحيث نُسند قيمة الخلية B5 إلى الخلية A3، ونسند القيمة أحمد في الخلية A10، لذا نكتب الإجراء التالي:
</p>

<pre class="ipsCode prettyprint lang-ruby prettyprinted" id="ips_uid_4686_50" style="">
<span class="typ">Sub</span><span class="pln"> attribution</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A3"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"c10"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">61</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="76755" href="https://academy.hsoub.com/uploads/monthly_2021_09/009Attribution.gif.a2172b1813d08fcddb6302a116edf93b.gif" rel=""><img alt="009Attribution.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="76755" data-unique="hklh8r0qb" src="https://academy.hsoub.com/uploads/monthly_2021_09/009Attribution.thumb.gif.6766f5772b1125347942ed3a13f95f72.gif"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	تُعَد هذه الأوامر -رغم صغر حجمها وأفعالها البسيطة- من الركائز الأساسية والمهمة في صناعة برمجيات الإكسل عن طريق الفيجوال بيسك، بغض النظر عن حجم البرنامج وعدد العمليات التي يؤديها بشكلٍ دائم، لذا لا بد لنا من فهم عملها بطريقة صحيحة، ومعرفة خصائصها وآلية تكوين أجزاء الشيفرات البرمجية عن طريقها.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">503</guid><pubDate>Tue, 07 Sep 2021 14:00:00 +0000</pubDate></item><item><title>&#x623;&#x62F;&#x648;&#x627;&#x62A; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x641;&#x64A; &#x625;&#x643;&#x633;&#x644; &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646; 365</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r502/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/613086bf085be_365.jpg.c5a3fbaa567e723805c59046fee6b7ce.jpg" /></p>

<p>
	تُعَد أدوات البيانات من مميزات الإكسل الهامة في تبويب "البيانات"، حيث تساعد أدوات البيانات المستخدم على بناء صفحات تفاعلية، كما أنها تساعد المستخدِم في إدخال بيانات صحيحة وموثوقة وتقلِّل نسبة الخطأ إلى حدٍّ كبير. ويمكن للمستخدم أن يزيل البيانات المكررة بسهولة وبخطوات بسيطة، كما يمكنه تحويل النصوص إلى مجموعة من الأعمدة دون استخدام الدوال.
</p>

<p>
	لنتعرف أكثر على خصائص أدوات البيانات سنطبِّق المثال التالي، ومن خلاله سنتعرف على الخصائص التالية:
</p>

<ol>
<li>
		إزالة التكرارات.
	</li>
	<li>
		التحقق من صحة البيانات.
	</li>
	<li>
		التعبئة السريعة.
	</li>
	<li>
		تحويل النصوص إلى أعمدة.
	</li>
</ol>
<p>
	سجِّل دخولك إلى حسابك في مايكروسوفت، ثم أنشئ ورقة عمل على إكسل 365 أونلاين، وأدرج فيها البيانات ونسقها تنسيقًا مناسبًا.
</p>

<p style="text-align: center;">
	<img alt="1-البيانات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75942" data-unique="qlpzlmf0u" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086b96d295_1-.PNG.8db1ed8d015a1eb27bb6ff06da6f7e3d.PNG" style=""></p>

<h2>
	1. إزالة التكرارات
</h2>

<p>
	يجب أن تحتوي قاعدة البيانات على حقل فريد لا يتكرر، ليكون محدِّدًا ومميِّزًا لكل صف في الجدول. ويُعَد رقم الهوية هو الحقل الفريد الذي لا يتكرر في هذا المثال، فلا يمكن العثور على طالبَين أو أكثر لهم نفس رقم الهوية.
</p>

<p>
	للتأكد من وجود تكرارات في البيانات؛ سنستخدم خاصية "التنسيق الشرطي" في تبويب "الرئيسية"، وهنا حدِّد القيم في عمود رقم الهوية للتأكد من وجود تكرارات.
</p>

<p>
	بعد تحديد القيم، اختر التنسيق الشرطي، ثم اختر قواعد تمييز الخلايا، بعدها اختر خيار قيم متكررة.
</p>

<p style="text-align: center;">
	<img alt="2-تنسيق شرطي-قيم متكررة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75953" data-unique="9drltugs6" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c920e93_2--.png.61d29174ac82a84c3949f0ea0292e5df.png" style=""></p>

<p>
	اختر تنسيقًا مناسبًا للخلايا التي تحتوي على قيم مكررة، ولتكن تعبئتها باللون الأحمر الفاتح مع نص أحمر داكن.
</p>

<p style="text-align: center;">
	<img alt="3-تنسيق القيم المتكررة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75964" data-unique="wowdq4zzm" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d087974_3-.PNG.a33bb262e7a7a2211fb937153693a802.PNG" style=""></p>

<p>
	ستلاحظ أن رقمَيِ الهوية في السجلين الثاني والثالث قد طُبِّق عليهما تنسيق الخلايا المكررة. دقِّق في السجل وستلاحظ أنهما لنفس الشخص، حيث تتطابق فيهما قيم جميع الحقول.
</p>

<p style="text-align: center;">
	<img alt="4-قيم مكررة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75973" data-unique="cg9c0tal7" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d6705f9_4-.PNG.6f89d27fc502af2d9d03101ffed57d24.PNG" style=""></p>

<p>
	يحتوي الإكسل في تبويب "البيانات" على خاصية مميزة لإزالة التكرارات.
</p>

<p style="text-align: center;">
	<img alt="5-إزالة التكرار.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75974" data-unique="ftnktx80e" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d73c521_5-.PNG.baea9e4a4a1e84899b973f5d35a97747.PNG" style=""></p>

<p>
	حدِّد البيانات التي تريد إزالة التكرارات منها، واضغط على أيقونة إزالة التكرارات، حيث ستفتح لك نافذة تطلب منك تحديد عمود أو أكثر من الأعمدة التي تريد البحث فيها عن قيم متكررة، وهنا تأكد من تحديد خيار "تحتوي البيانات على رؤوس"، للتأكد من أن الإكسل قد ميَّز عنوان كل عمود، وسنختار فقط "رقم الهوية"، والذي على أساسه سنحدد هل توجد تكرار في البيانات أم لا، ثم نضغط على "موافق".
</p>

<p style="text-align: center;">
	<img alt="6-ازالة التكرار حسب رقم الهوية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75975" data-unique="0kn5eq34t" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d7d5154_6-.PNG.331bfb1919e903144c7e54f235ce56a0.PNG" style=""></p>

<p>
	ستظهر لك نافذة تخبرك أنه قد عثر على قيمة متكررة واحدة وأزالها، وأنه قد تبقى في ورقة العمل 19 قيمة فريدة، أي غير مكررة.
</p>

<p style="text-align: center;">
	<img alt="7-ناتج إزالة التكرار.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75976" data-unique="uod00g6i8" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d83fcbb_7-.PNG.63d3812248b865a47661eb29bd232352.PNG" style=""></p>

<p>
	تُعَد هذه الميزة مهمةً جدًّا خاصةً عند وجود عدد هائل من البيانات في ورقة العمل، حيث سيكون من الصعب جدًّا تدقيق كل سجل وموازنته بالسجلات الأخرى.
</p>

<p>
	لاحظ أن التنسيق الشرطي مفيد في تمييز القيم المكررة ومعرفتها، لكن لا يحذفها؛ بينما خاصية إزالة التكرارات تساعدك في إزالة القيم المكررة بسهولة. ولاحظ أن اسم "دعاء عصام نائل" قد حُذف من ورقة العمل، وهنا أَعِدْ ترقيم البيانات باستخدام التعبئة التلقائية.
</p>

<p style="text-align: center;">
	<img alt="8-البيانات بعد إزالة التكرار.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75977" data-unique="86mhft8w8" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d934327_8-.PNG.407c83e9978c19bbd1603088740c9d39.PNG" style=""></p>

<h2>
	2. التحقق من صحة البيانات
</h2>

<p>
	قد تحتمل عملية إدخال البيانات على جهاز الحاسوب الكثير من الأخطاء، وخاصةً عندما تريد مشاركة الملف مع أشخاص آخرين، ولذلك يوفِّر الإكسل خاصية "التحقق من صحة البيانات"، والتي تعمل على التأكد من صحة البيانات قبل إدخالها في الملف، حيث تعمل هذه الخاصية على تقييد نوع البيانات، وتقييد القيم التي يدخلها المستخدم في الخلايا.
</p>

<p>
	تتعدد طُرق التحقق من صحة البيانات حسب طبيعة البيانات، فهناك بيانات نصية وبيانات رقمية، وبيانات تتعلق بالوقت والتاريخ، وبيانات نريد عرضها، مثل قائمة منسدلة بدلًا من إدخالها بواسطة المستخدم.
</p>

<p>
	اختر أيقونة "التحقق من صحة البيانات" من تبويب "البيانات".
</p>

<p style="text-align: center;">
	<img alt="9-التحقق من صحة البيانات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75978" data-unique="ihgjzz0yj" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d9aaaf6_9-.PNG.c153ecfc3de97ce775090f010548a3ce.PNG" style=""></p>

<p>
	ستلاحظ أن نافذة التحقق من صحة البيانات تحتوي على ثلاثة خيارات، هي الآتية:
</p>

<ol>
<li>
		<strong>الإعدادات</strong>: تسمح لك هذه الخاصية بتحديد نوع البيانات وإضافة القيود لها. حيث يمكنك إنشاء قائمة منسدلة بخيارات محددة، مثل أن يختار المستخدم خيار التخصص، فيختار تكنولوجيا معلومات أو هندسة حاسوب أو هندسة معمارية أو هندسة مدنية، أو تقييد الأرقام والتواريخ بتحديد قيمة دنيا وقيمة قصوى، أو تقييد النصوص بتحديد عدد الحروف المسموح إدخالها في خلية مثلًا على الأقل 10 حروف وعلى الأكثر 30 حرفًا، كما يمكن تقييد الخلايا استنادًا إلى صيغ أو قيم مخصصة يحددها المستخدم.
	</li>
	<li>
		<strong>رسالة إدخال</strong>: يمكن للمستخدم اختيار عرض رسالة إدخال عندما يحدد المستخدم الخلية وهي رسالة إرشادية للمستخدمين حول نوع البيانات وقيودها. تظهر هذه الرسالة بالقرب من الخلية، وتختفي عندما تنتقل إلى خلية أخرى.
	</li>
	<li>
		<strong>تنبيه إلى الخطأ</strong>: وهي الرسالة التي تظهر للمستخدم عند وجود خطأ في الإدخال، وقد تكون رسالة خطأ أو رسالة تنبيه.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="10-التحقق من صحة البيانات2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75943" data-unique="ws8vgnk2w" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086ba08e2b_10-2.png.a9a6f4bf04862367d92428ed8cc864aa.png" style=""></p>

<p>
	لفهم آلية عمل التحقق من صحة البيانات، سنطبِّق مجموعة من الأمثلة كالتالي:
</p>

<h3>
	أ. التحقق من طول النص مع رسالة إدخال وتنبيه إلى الخطأ
</h3>

<p>
	نريد وضع قيد على عمود الاسم الثلاثي كاملًا بأن يكون الاسم الثلاثي على الأقل 10 حروف، ولتطبيق ذلك اختر "طول النص" من خيار "السماح" في الإعدادات، وحدد أن تكون البيانات المدخلة في الخلية على الأقل 10 حروف.
</p>

<p style="text-align: center;">
	<img alt="11-التحقق من طول النص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75944" data-unique="jfhb85h2w" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086bebdde0_11-.png.16c77fa57a477bcf93b1359454737eaf.png" style=""></p>

<p style="text-align: center;">
	<img alt="12-التحقق من طول النص2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75945" data-unique="gwjzkal1g" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086bf3d40c_12-2.PNG.35496775f9a7b0d62ed032f746ee58ea.PNG" style=""></p>

<p>
	سنضيف رسالة إدخال، وهنا أضف عنوان الرسالة وليكن "الاسم الثلاثي"، ثم أضف رسالة الإدخال "على الأقل 10 حروف".
</p>

<p style="text-align: center;">
	<img alt="13-رسالة الإدخال.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75946" data-unique="l6fhqt1ok" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086bfa72ee_13-.PNG.44f6e792562183adb64deea4c0d3a42a.PNG" style=""></p>

<p>
	أضف تنبيهًا إلى الخطأ، وهنا سنختار نوع التنبيه "حظر". أضف عنوانًا واسمًا للتنبيه، ثم اضغط "موافق".
</p>

<p style="text-align: center;">
	<img alt="14-تنبيه إلى الخطأ-حظر.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75947" data-unique="x488x39ii" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c571aef_14--.PNG.de9007b7060715830d934b75ad4c9d2b.PNG" style=""></p>

<p>
	لاحظ ظهور رسالة الإدخال عند وضع المؤشر على خلايا عمود الاسم الثلاثي، وهي فقط رسالة إرشادية للمستخدم.
</p>

<p style="text-align: center;">
	<img alt="15-رسالة الإدخال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75948" data-unique="eegev2o9b" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c605381_15-.png.d38ff285860055f5fa9689208d85128f.png" style=""></p>

<p>
	حاول إدخال اسم أقل من 10 حروف ولاحظ رسالة الخطأ. لاحظ أن أيقونة التنبيه هي "إيقاف"، وبالتالي لن يسمح لك بإدخال قيمة خاطئة أي قيمة أقل من 10 حروف، وسيطلب منك إعادة المحاولة أو إلغاء القيمة التي أدخلتها.
</p>

<p style="text-align: center;">
	<img alt="16-تنبيه الخطأ.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75949" data-unique="md8g1rkq4" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c6952a5_16-.PNG.d63dd332aa65b383e67639eb976c9378.PNG" style=""></p>

<p>
	حدّد عمود الاسم الثلاثي وأَعِدْ عملية التحقق من صحة البيانات، واختر نوع التنبيه "تحذير" بدلًا من "حظر".
</p>

<p style="text-align: center;">
	<img alt="17-تنبيه التحذير.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75950" data-unique="hao19uu4m" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c7279a8_17-.PNG.0ca47958cab43aeeb674d7f4da90e1ca.PNG" style=""></p>

<p>
	أدخل قيمةً خاطئةً في خلايا الاسم الثلاثي، ولاحظ تغيير أيقونة التنبيه إلى "تحذير" بدلًا من "إيقاف". ويمكنك ملاحظة أن أمامك خيارين أحدهما إلغاء الأمر، أو متابعة الأمر وإدخال القيمة في الخلية، أي أن الرسالة فقط تحذيرية لكنه سيقبل القيمة.
</p>

<p style="text-align: center;">
	<img alt="18-تنبيه التحذير2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75951" data-unique="v50k2bggm" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c7b58be_18-2.PNG.fc483cf5ec81fe95c640a59282806fa7.PNG" style=""></p>

<h3>
	ب. إنشاء قائمة لاسم الجامعة واسم المنطقة
</h3>

<p>
	سننشئ قائمةً منسدلةً لخيار الجامعة، حيث تتيح للمستخدم اختيار اسم الجامعة بدلًا من إدخاله من لوحة المفاتيح. حدد عمود الجامعة، واختر خيار "القائمة".
</p>

<p style="text-align: center;">
	<img alt="19-القائمة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75952" data-unique="nq8m2sm40" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c89d854_19-.png.47cd3fc8baf7eff657de5f8c0d5e6755.png" style=""></p>

<p>
	سنحدد الآن نطاق البيانات التي ستظهر في القائمة، لهذا أضف القيم "أسماء الجامعات" التي تريد أن تظهر في القائمة في ورقة العمل نفسها أو في ورقة عمل جديدة، وحدِّده في خانة المصدر. تأكد من تحديد خيار "قائمة منسدلة في الخلية" واضغط على "موافق".
</p>

<p style="text-align: center;">
	<img alt="20-مصدر القائمة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75954" data-unique="dcfqi30pc" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086c9c0638_20-.PNG.81bf88492d5df418682a1fc67c533d1d.PNG" style=""></p>

<p>
	ستلاحظ ظهور القائمة المنسدلة، وفيها أسماء الجامعات وهنا ما عليك سوى الضغط على الخيار المناسب من القائمة.
</p>

<p style="text-align: center;">
	<img alt="21-شكل القائمة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75955" data-unique="2a0za4uxc" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086ca98d77_21-.PNG.f652c1078d4389bee2fa64b22c9f8a9a.PNG" style=""></p>

<p>
	طبِّق نفس الفكرة السابقة على عمود "المنطقة"، على أن تحتوي القائمة المنسدلة على الخيارات التالية: شمال غزة وغزة والوسطى ورفح وخان يونس.
</p>

<p style="text-align: center;">
	<img alt="22-القائمة للمنطقة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75956" data-unique="jhwzrj3el" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086cbc5af7_22-.PNG.94d517f87847ebc354591068f30b1c9b.PNG" style=""></p>

<h3>
	ج. التحقق من المعدل مثل قيمة عشرية
</h3>

<p>
	يمكننا تقييد إدخال قيمة المعدل الجامعي؛ حيث إن قيمة المعدل الجامعي للخريج لن تقل عن 50.0 ولن تزيد عن 99.9. يمكن تطبيق ذلك باختيار خيار "عشري"، وتحديد الحد الأدنى 50.0 والحد الأقصى 99.9.
</p>

<p style="text-align: center;">
	<img alt="23-التحقق من العدد العشري.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75957" data-unique="h6bk6ya9g" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086cc6dd7f_23-.PNG.34533f90e513efa4bcdeedd5a254b4bd.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="24-تحديد الحد الأدنى والأعلى.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75958" data-unique="qmskygiay" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086cd063d4_24-.PNG.7ce4c94848813308e18631289c536a49.PNG" style=""></p>

<h3>
	د. التحقق من القيم المخصصة
</h3>

<p>
	لنفترض أننا نريد تقييد إدخال رقم الهوية، على أن يكون طوله 10 حروف وأن يبدأ بـ "80-"، ولتحديد طول النص سنستخدم دالة LEN على أن يكون طول النص 10.
</p>

<p style="text-align: center;">
	<img alt="25-مخصص.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75959" data-unique="hijufw245" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086cd7be49_25-.PNG.9fc94f7e00d38fa66cc540589aa2f85f.PNG" style=""></p>

<p>
	حاول إدخال قيمة أقل من 10، وستلاحظ أن الإكسل سيرفض عملية الإدخال وسيُظهِر لك رسالة خطأ.
</p>

<p style="text-align: center;">
	<img alt="26-مخصص2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75960" data-unique="bq228x2wk" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086cdf0b23_26-2.PNG.3f5a83be4f9708453377cfdff213b6cb.PNG" style=""></p>

<p>
	سنضيف دالة LEFT لتحديد أن أول ثلاثة حروف هي قيمة "-80"، وسنجمع الدالتين في دالة واحدة باستخدام دالة AND التي ستتحقق من صحة ناتج الدالتين Left وLen.
</p>

<p style="text-align: center;">
	<img alt="27-مخصص3.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75961" data-unique="45fk9obwy" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086ce51da8_27-3.PNG.817d1926ed24674053a7356638d7024e.PNG" style=""></p>

<p>
	حاول إدخال قيم صحيحة وأخرى خاطئة في عمود الهوية ولاحظ الفرق.
</p>

<p style="text-align: center;">
	<img alt="28-إدخال رقم الهوية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75962" data-unique="fu8ve6y0i" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086cf91c79_28-.PNG.8ccc1f51f3828c3a5a15d6ef6daa0703.PNG" style=""></p>

<p>
	إذا كنت لا تريد إدخال "-" في رقم الهوية، وتريد من المستخدم إدخال أرقام فقط؛ فيمكنك استخدام دالة ISNUMBER.
</p>

<p style="text-align: center;">
	<img alt="29-مخصص رقم.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75963" data-unique="s4cnbdq7v" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d01b6a4_29-.PNG.941efbc5e28ff1ca917cce1d08eb89dd.PNG" style=""></p>

<p>
	لاحظ أنه في حال أدخلت حرفًا ضمن الرقم، فسيرفض الإكسل القيمة وسيُظهِر رسالة خطأ.
</p>

<p style="text-align: center;">
	<img alt="30-إدخال غير صحيح.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75965" data-unique="9owvluh4z" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d17bb49_30-.PNG.05998dae1e544a33400d93247b7bc55d.PNG" style=""></p>

<p>
	يمكنك إلغاء خاصية التحقق من صحة البيانات التي طبقتها على مجموعة من الخلايا، وذلك بتحديد الخلايا التي تريد إلغاء الخاصية عنها، ثم الضغط على "التحقق من صحة البيانات"، واختيار "مسح الكل".
</p>

<p style="text-align: center;">
	<img alt="31-مسح التحقق من صحة البيانات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75966" data-unique="vzpykuaa4" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d223364_31-.PNG.a67bfc6e864361e9f43fec811d9e34cd.PNG" style=""></p>

<h2>
	3. التعبئة السريعة
</h2>

<p>
	تُعَد التعبئة السريعة من الخصائص المهمة في الإكسل التي تساعدك على توليد البيانات بسرعة، وهنا لنفترض أن لدينا قيم الاسم الأول والاسم الثاني، ونريد توليد بريد إلكتروني بالصيغة التالية: firstName_secondName_h@live.com. هنا ما عليك سوى كتابة البريد الإلكتروني للسجل الأول، ثم تحديد العمود واختيار "تعبئة سريعة" ضمن تبويب "البيانات"، وستلاحظ تعبئة خلايا البريد الإلكتروني حسب الصيغة المُحدَّدة.
</p>

<p style="text-align: center;">
	<img alt="32-اضافة بريد الكتروني.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75967" data-unique="6jykm8l1m" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d2d28be_32-.PNG.73b5a80f5727395a9510eb5ea192f16c.PNG" style=""></p>

<p style="text-align: center;">
	 
</p>

<p style="text-align: center;">
	<img alt="33-تعبئة سريعة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75968" data-unique="ydor7hmht" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d376d68_33-.PNG.4b07e0ba8e38bf68877ab9783a35d274.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="34-ناتج التعبئة السريعة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75969" data-unique="6zbocnuge" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d40971f_34-.PNG.9bbc878f5fbccdbfc3e2c4c5c17ba273.PNG" style=""></p>

<h2>
	4. تحويل النص إلى أعمدة
</h2>

<p>
	لنفترض أننا نريد تقسيم عمود الاسم الثلاثي إلى ثلاثة أعمدة هي عمود الاسم الأول، وعمود الاسم الثاني، وعمود اسم العائلة. حدد عمود الاسم الثلاثي واختر "نص إلى أعمدة" ضمن تبويب "البيانات".
</p>

<p style="text-align: center;">
	<img alt="35-نص إلى أعمدة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75970" data-unique="x8notkv3z" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d465af5_35-.PNG.c88be9b629484ec6852590abc9e40562.PNG" style=""></p>

<p>
	يطلب منك الإكسل تحديد مُحدِّد البيانات، أي ما هو الفاصل بين الاسم الأول والثاني واسم العائلة في الاسم الثلاثي. اختر "المسافة" فهي التي تفصل بينهم، ثم لاحظ النتيجة في المعاينة واضغط موافق.
</p>

<p style="text-align: center;">
	<img alt="36-تحديد المحددات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75971" data-unique="bkyqsvbuf" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d52c3ed_36-.PNG.78bfacd9d53f5786f4edaa417f7a577d.PNG" style=""></p>

<p>
	ستلاحظ الآن أن لديك ثلاثة أعمدة؛ حيث إن العمود الأول فيه الاسم الأول، والعمود الثاني فيه الاسم الثاني، والعمود الثالث فيه اسم العائلة.
</p>

<p style="text-align: center;">
	<img alt="37-ناتج نص إلى أعمدة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75972" data-unique="6lwkv5s80" src="https://academy.hsoub.com/uploads/monthly_2021_09/613086d5cd708_37-.PNG.e224c8dad36c933675cbd5f8b939f37f.PNG" style=""></p>

<h2>
	خاتمة
</h2>

<p>
	لقد تعرفنا في هذا الدرس على أدوات البيانات في إكسل أونلاين 365، والتي تشمل إزالة التكرارات والتحقق من صحة البيانات والتعبئة السريعة وتحويل النص إلى أعمدة. وقد ميَّزنا القيم المكررة باستخدام التنسيق الشرطي، ثم تعرفنا على طريقة إزالة التكرارات بتحديد القيمة التي تبحث عن تكرارها في ورقة العمل. كما تعرفنا على طرق التحقق من صحة البيانات بإضافة القيود للبيانات وتحديد نوعها، مثل البيانات الرقمية والبيانات النصية وبيانات التاريخ والوقت والبيانات المُخصَّصة بصيغة محددة، وتعرفنا أيضًا على طريقة التعبئة السريعة للبيانات، وطريقة تحويل نص إلى مجموعة من الأعمدة بناءً على مُحدِّدات معينة من المسافات والفواصل.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r485/" rel="">مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%AE%D8%B7%D8%A9-%D8%B9%D9%85%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r501/" rel="">إنشاء خطة عمل باستخدام إكسل 365 أونلاين </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%A8%D9%88%D9%8A%D8%A8-%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D9%88%D9%85%D8%B2%D8%A7%D9%8A%D8%A7-%D8%A7%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%82%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r486/" rel="">تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A7%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r493/" rel="">دوال قواعد البيانات في مايكروسوفت اكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">الدوال الشائعة في مايكروسوفت إكسل أونلاين 365</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">502</guid><pubDate>Thu, 02 Sep 2021 08:29:03 +0000</pubDate></item><item><title>&#x625;&#x646;&#x634;&#x627;&#x621; &#x62E;&#x637;&#x629; &#x639;&#x645;&#x644; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x625;&#x643;&#x633;&#x644; 365 &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%AE%D8%B7%D8%A9-%D8%B9%D9%85%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r501/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_09/613080e650256_365.jpg.c3fd24defc32c04b3aae935e3f5bf0b8.jpg" /></p>

<p>
	تساعدنا خطة العمل على تقسيم العمل إلى مجموعة من المهام، ومعرفة الشخص المسؤول عن كل مهمة. كما تساعدنا على معرفة تاريخ بداية ونهاية كل مهمة لمتابعتها أولًا بأول. ويمكننا أيضًا من خلالها تحديد الموظفين العاملين على المهام، وسعر ساعة العمل لكل منهم، وعدد الساعات التي سيقضيها الموظف في عمل المهمة. ومع كل هذا تساعدنا خطة العمل أيضًا على معرفة أدوات العمل وأسعارها وأي تكاليف إضافية.
</p>

<p>
	في المثال التالي سننشئ خطة عمل بسيطة باستخدام إكسل 365 أونلاين، وسنستخدم مميزات الإكسل المختلفة والدوال المناسبة لجعل خطة العمل ديناميكية، وستحصل في نهاية تطبيق هذا المقال على خطة عمل مشابهة للشكل التالي، وسنطبق فيها الخطوات التالية:
</p>

<ol>
<li>
		إنشاء وتنسيق نموذج خطة العمل.
	</li>
	<li>
		إضافة تاريخ بداية ونهاية لكل مهمة وحساب عدد الأيام (المدة) لكل مهمة.
	</li>
	<li>
		حساب إجمالي سعر الموظفين والأدوات المستخدمة والتكاليف الإضافية في كل مهمة وإجمالي سعر المهام.
	</li>
	<li>
		حساب الميزانية الفعلية لكل مهمة.
	</li>
	<li>
		موازنة الميزانية الفعلية لكل مهمة مع الميزانية المخصصة لها.
	</li>
	<li>
		تحديد العجز في كل مهمة على حدة إن وجد، وفي المشروع عمومًا.
	</li>
	<li>
		تحديد حالات المهمات (مكتملة أو قيد العمل أو متأخرة أو لم تبدأ بعد).
	</li>
	<li>
		إضافة تاريخ اليوم واسم المشروع.
	</li>
	<li>
		إدراج شكل بياني يمثِّل الميزانية الفعلية للمهام المكتملة.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="75878" href="https://academy.hsoub.com/uploads/monthly_2021_09/613080ec226fc_1-.PNG.d42d4bbb6f0c46b6b6f185d050700318.PNG" rel=""><img alt="1-خطة العمل النهائية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75878" data-unique="0foynpigu" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080ed39798_1-.thumb.PNG.3a8e1b980fb278921d06692a39893fc2.PNG"></a>
</p>

<h2>
	1. إنشاء وتنسيق نموذج خطة العمل
</h2>

<p>
	أنشئ ورقة عمل باستخدام مايكروسوفت إكسل 365 أونلاين، وأعد تسمية الملف باسم مناسب، وليكن "خطة العمل".
</p>

<p style="text-align: center;">
	<img alt="2-إنشاء الملف.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75889" data-unique="j3ll2zo6x" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f57a6e3_2-.PNG.a8cabc4f13ee40ef1788612ef033ac1c.PNG"></p>

<p>
	أضف البيانات التالية في ورقة العمل.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="75900" href="https://academy.hsoub.com/uploads/monthly_2021_09/613080ff59e81_3-.PNG.1ecdbd71ca46fdf5b90939e928b6d04f.PNG" rel=""><img alt="3-إنشاء الجدول.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75900" data-unique="xv6pt67fc" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810048037_3-.thumb.PNG.8228e69d9a5823a98da54438af55b690.PNG"></a>
</p>

<p>
	نسِّق بيانات ورقة العمل، وهنا بإمكانك اختيار حجم الخط المناسب ونوعه ولونه وتعبئة الخلايا بلون مناسب.
</p>

<p style="text-align: center;">
	<img alt="4-تنسيق الخط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75911" data-unique="vzi0p3by1" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810709095_4-.PNG.4da0236952578bff4e005b8f3b6ff78b.PNG"></p>

<p>
	استخدم خاصية الدمج والتوسيط للخلايا التي تحتاج إلى دمج وتوسيط، مثل خلية الموظفين والأدوات وتكاليف إضافية.
</p>

<p style="text-align: center;">
	<img alt="5-دمج وتوسيط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75919" data-unique="xv55u159y" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810b8c3b9_5-.PNG.17a652691b97236949ba524ef6db3bd4.PNG"></p>

<p>
	أضف حدودًا للجدول، واختر شكل الحد المناسب واللون المناسب.
</p>

<p style="text-align: center;">
	<img alt="6-الحدود.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75920" data-unique="ww9pvk1q3" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810c03323_6-.PNG.5772b99fbeee640b150edd4de35c5c61.PNG"></p>

<p>
	حاذِ النص داخل الخلايا للوسط والمنتصف، أي اجعله في منتصف الخلية رأسيًّا وأفقيًّا.
</p>

<p style="text-align: center;">
	<img alt="7-محاذاة للوسط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75921" data-unique="lisbttbju" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810c7cbf5_7-.PNG.276e4b572bb4dc2dd1262a0a492a7a29.PNG"></p>

<p>
	يمكنك إخفاء عرض العناوين (أسماء الأعمدة والصفوف)، كما يمكنك إخفاء عرض خطوط الشبكة وذلك من تبويب "عرض".
</p>

<p style="text-align: center;">
	<img alt="8-اخفاء خطوط الشبكة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75922" data-unique="00qvs2e58" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810cd6905_8-.PNG.bcef88136c54988f6bef1d4f0326d7d5.PNG"></p>

<p>
	أدخل قيم عمود رقم المهمة بحيث تكون من 1 إلى 10. وهنا أدخل أول قيمتين، ثم اسحب بالسهم لتعبئة باقي الخلايا تعبئة تلقائية.
</p>

<p style="text-align: center;">
	<img alt="9-تعبئة تلقائية للرقم.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75923" data-unique="7m4wulbrk" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810d5eea2_9-.PNG.11c945a3f33a7a556c922f3b074eae96.PNG"></p>

<p>
	بهذا سيكون لديك الآن ما يشبه الشكل التالي، ويمكنك استخدام ألوان مختلفة إذا أردت.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="75879" href="https://academy.hsoub.com/uploads/monthly_2021_09/613080ee5d432_10-.PNG.6b5fad7c3fd6fca3eecbb1d9b09e1b65.PNG" rel=""><img alt="10-الشكل النهائي للتنسيق.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75879" data-unique="7wh4u5me0" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080ef85385_10-.thumb.PNG.5c514a2e1074bc74a76a412fe9ca275c.PNG"></a>
</p>

<h2>
	2. إضافة تاريخ بداية ونهاية كل مهمة وحساب مدة كل منها
</h2>

<p>
	حدِّد خلايا تاريخ البداية وتاريخ النهاية، ثم اختر تنسيق "تاريخ" من خيارات تنسيق الأرقام. يمكنك اختيار تنسيق تاريخ طويل أو تاريخ قصير.
</p>

<p style="text-align: center;">
	<img alt="11-تنسيق تاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75880" data-unique="8mskxppzd" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f097bcc_11-.png.c04b8dc6ad5bf9130b1a37d1d4b5f1e6.png"></p>

<p>
	أضف تاريخ البداية وتاريخ النهاية لكل مهمة.
</p>

<p style="text-align: center;">
	<img alt="12-تعبئة التاريخ.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75881" data-unique="wd89mkl4w" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f138275_12-.PNG.d308ef6e5562d60849c2b0ed648a200d.PNG"></p>

<p>
	احسب المدة لكل مهمة، وذلك باستخدام دالة التاريخ والوقت DAYS. تستقبل هذه الدالة قيمتين، اولاهما هي تاريخ النهاية، أما ثانيهما فهي تاريخ البداية، وتحسب المدة (أي عدد الأيام بين التاريخين).
</p>

<p style="text-align: center;">
	<img alt="13-حساب المدة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75882" data-unique="vmv3ctgx8" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f1c709a_13-.PNG.7415a471f7912f4b976bff34926ed439.PNG"></p>

<p style="text-align: center;">
	<img alt="14-حساب المدة2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75883" data-unique="4jngn79vr" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f253e3b_14-2.png.c25c5cc372fcb88e8efcd108d0e97ad4.png"></p>

<p>
	بعد حساب المدة للمهمة الأولى، اسحب بزر الفأرة لتطبيق الدالة على كل المهام وحساب مدة كل مهمة.
</p>

<p style="text-align: center;">
	<img alt="15-حساب المدة3.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75884" data-unique="sn470r4u4" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f2b3b0c_15-3.PNG.54de218cd7832032f44d3026ffcc88d7.PNG"></p>

<p style="text-align: center;">
	<img alt="16-المدة لكل المهمات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75885" data-unique="z6b6te3aw" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f3585d4_16-.PNG.f7a3a3e2fdbb1b57ff1d899bb5c6dbf2.PNG"></p>

<p>
	احسب مجموع الأيام وذلك باستخدام دالة SUM، بعدها ضع المؤشر في الخلية المناسبة، ثم طبِّق الدالة للحصول على مجموع المدة لكل المهام، وستحصل على مجموع يساوي 572 يومًا.
</p>

<p style="text-align: center;">
	<img alt="17-مجموع المدة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75886" data-unique="suh9z0zu5" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f3e9eff_17-.PNG.a913f4f621c85844f2e3c35625b021ef.PNG"></p>

<h2>
	3. حساب إجمالي سعر الموظفين في كل مهمة وإجمالي سعر المهام
</h2>

<p>
	أدخل سعر الساعة وعدد الساعات لكل مهمة/موظف.
</p>

<p style="text-align: center;">
	<img alt="18-بيانات الساعات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75887" data-unique="q5mgpkhne" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f477a52_18-.PNG.e6f7b2c810823fedeb98750d7bfa6bf1.PNG"></p>

<p>
	احسب إجمالي السعر لكل مهمة بضرب سعر الساعة في عدد الساعات لكل مهمة، وطبِّق على المهمة الأولى، حيث ستحصل على قيمة تساوي 400.
</p>

<p style="text-align: center;">
	<img alt="19-ضرب السعر بالعدد.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75888" data-unique="jo4dhb100" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f4eb8e8_19-.PNG.8ebce8e38c310a7c0992d8e3e9a468f7.PNG"></p>

<p style="text-align: center;">
	<img alt="20-ضرب السعر بالعدد2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75890" data-unique="fqg42dggl" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f5e749f_20-2.PNG.4730bdeaa12a3c1d1fa0247ef474f7b0.PNG"></p>

<p>
	حدد الخلية واسحب بزر الفأرة لتطبيق عملية الضرب على كل المهام.
</p>

<p style="text-align: center;">
	<img alt="21-حساب سعر الساعات للموظفين.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75891" data-unique="v7tr6a2ei" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f676e7e_21-.PNG.2ec98a583d936f487475bfcf1270fc96.PNG"></p>

<p>
	احسب مجموع سعر المهام باستخدام دالة SUM، وضع المؤشر في الخلية المناسبة التي ستحسب فيها المجموع وطبِّق الدالة، حيث ستحصل على مجموع قيمته 1992.
</p>

<p style="text-align: center;">
	<img alt="22-مجموع السعر الكلي للموظفين.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75892" data-unique="zd0idg5fo" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f789061_22-.PNG.61b22081d41279bae6425329d3d274a6.PNG"></p>

<p>
	لإضافة تنسيق الدولار "$" للخلايا التي تحتوي على أرقام عملات مثل خلايا سعر الساعة، حدد الخلايا التي تريد إضافة علامة الدولار لها (يمكنك تحديد كل الأعمدة مع استمرار الضغط على مفتاح <code>CTRL</code> من لوحة المفاتيح)، ثم اختر "$" من خيارات تنسيق الأرقام، وعندها ستلاحظ إضافة علامة الدولار على كل الخلايا التي حددتها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="75893" href="https://academy.hsoub.com/uploads/monthly_2021_09/613080f80e042_23-.png.986cd9dbdc0567c4a0fb4854278c1598.png" rel=""><img alt="23-تحويل لعملة الدولار.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75893" data-unique="567z429xq" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080f9413a8_23-.thumb.png.efa1a8fc40095b609646f52cd203882f.png"></a>
</p>

<p style="text-align: center;">
	<img alt="24-تحويل لعملة الدولار2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75894" data-unique="rlyipwscm" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080fa473d4_24-2.PNG.beaceec9885fe0343e0f1ea3ea430718.PNG"></p>

<p>
	بنفس الطريقة السابقة، احسب مجموع الأدوات ومجموع التكاليف الإضافية.
</p>

<h2>
	4. حساب الميزانية الفعلية لكل مهمة
</h2>

<p>
	احسب الميزانية الفعلية لكل مهمة بجمع قيم مجموع أسعار الموظفين ومجموع سعر الأدوات ومجموع سعر التكاليف الإضافية، والتي يمكنك جمعها كاملةً مباشرة باستخدام إشارة الجمع "+"، أو بإمكانك استخدام دالة المجموع SUM.
</p>

<p style="text-align: center;">
	<img alt="25-مجموع الميزانية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75895" data-unique="9oadfimsb" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080fbf0d93_25-.PNG.19bc4468f816d3ec4a9194b766efe7b8.PNG"></p>

<p>
	بعد حساب الميزانية الفعلية للمهمة الأولى، اسحب الخلية بزر الفأرة لتطبيق العملية على باقي المهام، ثم احسب مجموع الميزانية الفعلية باستخدام دالة SUM.
</p>

<p style="text-align: center;">
	<img alt="26-ميزانية كل المهمات ومجموعها.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75896" data-unique="vkgj9qmug" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080fcb22b9_26-.PNG.0e8b57313a8b1d479be8fd2f61687580.PNG"></p>

<p>
	أدخل الميزانية المرصودة مسبقًا لكل مهمة من المهمات، وأضف تنسيق "$" للخلايا.
</p>

<p style="text-align: center;">
	<img alt="27-بيانات الميزانية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75897" data-unique="abldcrsr5" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080fd83097_27-.PNG.997cd281cac4116f827358b39183f928.PNG"></p>

<h2>
	5. موازنة الميزانية الفعلية لكل مهمة مع الميزانية المخصصة لها
</h2>

<p>
	لموازنة الميزانية الفعلية لكل مهمة مع الميزانية المخصصة لها، سنطرح الميزانية الفعلية من الميزانية المخصصة فعلًا. فإذا كانت الميزانية المخصصة لك هي 1000 دولار مثلًا وميزانيتك الفعلية هي 1200 دولار، فذلك يعني وجود عجز بقيمة 200 دولار، أي هناك 200 دولار قد زادت في المصاريف عن الميزانية المخصصة لك.
</p>

<p style="text-align: center;">
	<img alt="28-الميزانية طرح الفعلية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75898" data-unique="g5uuhl55b" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080fdef684_28-.PNG.3b6cc3b86ad73895557360d068dfcabf.PNG"></p>

<p>
	احسب عملية الطرح للمهمة الأولى، واسحب الدالة بزر الفأرة للتطبيق على باقي المهام لحساب الفارق بين الميزانيتين.
</p>

<p style="text-align: center;">
	<img alt="29-الميزانية طرح الفعلية2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75899" data-unique="3vg4nrks2" src="https://academy.hsoub.com/uploads/monthly_2021_09/613080fe92759_29-2.PNG.62491ce977ea0d812268745eae8852a1.PNG"></p>

<h2>
	6. تحديد العجز في كل مهمة على حدة إن وجد وفي المشروع عموما
</h2>

<p>
	سنستخدم خاصية التنسيق الشرطي لتمييز المهمات التي فيها عجز، أي التي زادت فيها الميزانية الفعلية عن الميزانية المرصودة. وستظهر هذه القيم في عمود "الميزانية – الميزانية الفعلية" بقيمة سالبة، لأن قيمة الميزانية الفعلية أكبر من قيمة الميزانية.
</p>

<p>
	لتطبيق ذلك اختر "تنسيق شرطي" من تبويب "الرئيسية"، ومن ثم اختر "قواعد تمييز الخلايا"، بعدها اختر "أصغر من"، و أدخل القيمة "صفر" أي أنه سيحدد القيم السالبة، وسنختار لها تنسيق "تعبئة باللون الأحمر الفاتح مع نص أحمر داكن". ستلاحظ أن تنسيق الخلايا التي فيها قيم سالبة أصبحت ملونةً باللون الأحمر.
</p>

<p style="text-align: center;">
	<img alt="30-تنسيق شرطي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75901" data-unique="r2wb61x8a" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810133bda_30-.png.6e792251dfd30d3960053be5222e188d.png"></p>

<p style="text-align: center;">
	<img alt="31-تنسيق شرطي2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75902" data-unique="rqqk3unyn" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308101dccb6_31-2.PNG.7abced44f95ebb97b6181df9cbe926e2.PNG"></p>

<p>
	لتأكيد تمييز المهام التي فيها عجز، سنضيف كلمة "عجز" في عمود "حالة الميزانية" للمهام التي زادت ميزانيتها الفعلية عن الميزانية المرصودة، وذلك باستخدام الدالة الشرطية IF. أدرج دالة، واختر دالة IF من فئة شائعة الاستخدام.
</p>

<p style="text-align: center;">
	<img alt="32-القاعدة الشرطية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75903" data-unique="tx39ksdjl" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308102812c8_32-.PNG.c3305b1f5e48939f0b1615d4bd46df9d.PNG"></p>

<p>
	حدد الشرط في الدالة الشرطية، وهو ضرورة أن تكون قيمة "الميزانية – الميزانية الفعلية"، وهي خلية S5 أقل من صفر. وفي حال كانت أقل من صفر، فسيُدرج كلمة "عجز".
</p>

<p style="text-align: center;">
	<img alt="33-القاعدة الشرطية2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75904" data-unique="ak8zw55ve" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308103000b7_33-2.png.2314d01076ced37d1d37b481fb457365.png"></p>

<p>
	طبِّق الدالة على كل المهام وستحصل على النتيجة التالية.
</p>

<p style="text-align: center;">
	<img alt="34-القاعدة الشرطية3.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75905" data-unique="dehaelk2k" src="https://academy.hsoub.com/uploads/monthly_2021_09/613081038f11e_34-3.PNG.4bc6c893baccbc2b9bfdfa78160c6825.PNG"></p>

<h2>
	7. تحديد حالات المهمات
</h2>

<p>
	افتح ورقة عمل جديدة وأدرج فيها القيم التالية:
</p>

<ul>
<li>
		لم تبدأ بعد.
	</li>
	<li>
		مكتملة.
	</li>
	<li>
		قيد العمل.
	</li>
	<li>
		متأخرة.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="35-خيارات حالة المهمة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75906" data-unique="oe69sopnt" src="https://academy.hsoub.com/uploads/monthly_2021_09/613081041f7bb_35-.PNG.17fcdeadfbc786d9a3ca8f221fded320.PNG"></p>

<p>
	عُد إلى ورقة العمل الأولى (أي ورقة خطة العمل)، وحَدِّد عمود "الحالة"، ثم اختر "التحقق من صحة البيانات" من تبويب "البيانات".
</p>

<p style="text-align: center;">
	<img alt="36-التحقق من صحة البيانات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75907" data-unique="ukmvnwmtp" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308104b3730_36-.PNG.c641ee2b1b7852958abffd73fcc8910d.PNG"></p>

<p>
	حدد قيمة السماح التي يجب أن تكون "القائمة" -أي قائمة منسدلة-، ويمكنك إضافة رسالة إدخال ورسالة تنبيه إلى الخطأ. ضع المؤشر في مربع المصدر، ومن ثم اذهب إلى ورقة العمل التي أدرجت فيها قيم حالات المهمة، وحَدِّد القيم.
</p>

<p style="text-align: center;">
	<img alt="37-اختيار القائمة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75908" data-unique="w6gnvd1sj" src="https://academy.hsoub.com/uploads/monthly_2021_09/613081054ded4_37-.PNG.cf69c4659833e0e7a0fc4ca4e44415bb.PNG"></p>

<p style="text-align: center;">
	<img alt="38-اختيار المصدر.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75909" data-unique="obe5wfoyu" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308105dff79_38-.PNG.5134f6ad3cfdaf815a1fec51d6858d89.PNG"></p>

<p>
	حدد أي خلية في عمود الحالة، وستلاحظ أنه بإمكانك اختيار الحالة؛ حيث ستلاحظ وجود قائمة منسدلة بدلًا من إدخال القيمة كتابةً بنفسك، وهو ما يُقلِّل فرصة الخطأ، ويضمن استخدام القيم الأربعة فقط.
</p>

<p style="text-align: center;">
	<img alt="39-القائمة المنسدلة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75910" data-unique="3gwrg40k8" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810674c7a_39-.PNG.f279227feec1fde8b38f538c9790a489.PNG"></p>

<p>
	يمكنك إضافة تنسيق شرطي للخلايا بتنسيق كل كلمة من كلمات الحالة بلون محدد. فمثلًا: تعبئة حالة مكتمل بلون أخضر. يمكن تطبيق ذلك بالضغط على "النص الذي يحتوي على" من خيارات التنسيق الشرطي وإضافة كلمة مكتمل، كما يمكنك إضافة التنسيق الذي تراه مناسبًا للحالات الأخرى، وهي:
</p>

<ul>
<li>
		قيد العمل.
	</li>
	<li>
		متأخرة.
	</li>
	<li>
		لم تبدأ بعد.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="40-النص الذي يحتوي.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75912" data-unique="n9ij15zx2" src="https://academy.hsoub.com/uploads/monthly_2021_09/613081078f460_40-.PNG.21fb8af6457888cf4c9b4f0d23838ce8.PNG"></p>

<p style="text-align: center;">
	<img alt="41-تنسيق مكتملة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75913" data-unique="mr8wqm1t1" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810805338_41-.PNG.50281dac00ee0ef17affd999bf46d337.PNG"></p>

<p style="text-align: center;">
	<img alt="42-تمييز لون الحالة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75914" data-unique="9sz47drcn" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308108a1195_42-.PNG.acab2afd21b62f3ffae8b7a8b3e14c71.PNG"></p>

<h2>
	8. إضافة تاريخ اليوم واسم المشروع
</h2>

<p>
	أضف اسمًا مناسبًا لمشروعك.
</p>

<p style="text-align: center;">
	<img alt="43-بيانات المشروع.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75915" data-unique="jn9s4jzi1" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810973a48_43-.PNG.74982b8693468f97ef1232e11f729a1e.PNG"></p>

<p>
	أضف تاريخ اليوم على أن يُحدَّث تلقائيًّا باستخدام دالة التاريخ والوقت NOW.
</p>

<p style="text-align: center;">
	<img alt="44-بيانات المشروع2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75916" data-unique="wamiod7g1" src="https://academy.hsoub.com/uploads/monthly_2021_09/61308109f2968_44-2.PNG.ba15ab838846532b6d09185d389752cd.PNG"></p>

<h2>
	9. إدراج شكل بياني يمثل الميزانية الفعلية للمهام المكتملة
</h2>

<p>
	حدد أسماء المهام المكتملة، ثم حَدِّد الميزانية الفعلية لكل منها، واختر إدراج شكل بياني عمودي من قائمة إدراج.
</p>

<p style="text-align: center;">
	<img alt="45-إدراج شكل بياني.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75917" data-unique="liear1lvn" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810a87160_45-.PNG.e20608f9405fd39c819b11e74764cef0.PNG"></p>

<p>
	نسِّق الشكل البياني، وليكن مثل الشكل التالي:
</p>

<p style="text-align: center;">
	<img alt="46-الشكل البياناتي.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75918" data-unique="xwoyfjbuj" src="https://academy.hsoub.com/uploads/monthly_2021_09/6130810b0fe68_46-.PNG.3bc118b365d11d28443e1392b10435d6.PNG"></p>

<h2>
	خاتمة
</h2>

<p>
	بهذا ستكون خطة العمل قد أصبحت جاهزةً الآن، وبإمكانك إضافة مهام إضافية أو تعديل أي قيم، وسيعمل الإكسل مباشرةً على إعادة الحسابات ديناميكيًّا دون أن يتطلب منك إعادة الحسابات بنفسك.
</p>

<p>
	لقد تعلمنا في هذا الدرس طريقة إنشاء وتصميم خطة عمل باستخدام إكسل 365 أونلاين، حيث أدرجنا خطة العمل ونسقناها وأدرجنا فيها البيانات، واستخدمنا الدوال المختلفة للحسابات، مثل حساب الميزانية الفعلية للمشروع، وذلك بِعَدّ حساب أجور الموظفين وأسعار الأدوات والتكاليف الإضافية.
</p>

<p>
	استطعنا تمييز المهام التي فاقت فيها الميزانية الفعلية الميزانية المرصودة لها، مما تسبب في عجز مالي، فاستخدمنا التنسيق الشرطي والدالة الشرطية IF لتمييزها، كما استخدمنا دوال التاريخ والوقت مثل دالة NOW، لإدراج التاريخ والوقت الحاليين، وكذلك دالة DAYS لتحديد عدد الأيام لكل مهمة بعد معرفة تاريخ بداية ونهاية كل مهمة، وبهذا يمكنك الآن إنشاء وتصميم خطط لأعمالك بسهولة، مما يوفِّر عليك الوقت والجهد، ويساعدك في متابعة المهام والميزانية أولًا بأول.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D9%86%D8%B5%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r495/" rel="">الدوال النصية في مايكروسوفت إكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A7%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r493/" rel="">دوال قواعد البيانات في مايكروسوفت اكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">الدوال الشائعة في مايكروسوفت إكسل أونلاين 365</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D9%88%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%A3%D9%83%D8%AB%D8%B1-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85%D8%A7-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r484/" rel="">دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">501</guid><pubDate>Thu, 02 Sep 2021 08:05:31 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62F;&#x648;&#x627;&#x644; &#x627;&#x644;&#x646;&#x635;&#x64A;&#x629; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; 365 &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D9%86%D8%B5%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r495/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c123aa8a4_365.jpg.c6726ab8457fc8fe30612c2e3db54ab0.jpg" /></p>

<p>
	تعرَّفنا في مقال <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">أكثر الدوال شيوعًا</a> على أكثر الدوال شيوعًا في مايكروسوفت إكسل 365 أونلاين، وسنتعرف في هذا المقال على مجموعة الدوال النصية في الإكسل. وفي البداية يمكنك أن تدرج دالةً من تبويب "إدراج" ولاحظ الدوال الموجودة في فئة "نصية".
</p>

<p>
	يحتوي الإكسل على مجموعة من الدوال النصية التي تساعد على معالجة النصوص مثل دمج النصوص وإيجاد طول النص واستبداله وغيرها من طرق معالجة النصوص، وسنتعرف في هذا المقال على الدوال التالية:
</p>

<ol>
<li>
		<strong>CONCAT</strong>: دمج مجموعة من النصوص في نص واحد.
	</li>
	<li>
		<strong>TRIM</strong>: إزالة المسافات من النصوص مع الحفاظ على مسافة واحدة بين الكلمتين.
	</li>
	<li>
		<strong>TEXT</strong>: تنسيق الأرقام وتحويلها إلى نصوص.
	</li>
	<li>
		<strong>SEARCH</strong>: البحث عن قيمة نصية داخل قيمة نصية أخرى، ولكنها لا تتحسس حالة الأحرف.
	</li>
	<li>
		<strong>FIND</strong>: البحث عن قيمة نصية داخل قيمة نصية أخرى، ولكنها تتحسس حالة الأحرف.
	</li>
	<li>
		<strong>LOWER</strong>: تحويل نص إلى أحرف صغيرة.
	</li>
	<li>
		<strong>UPPER</strong>: تحويل نص إلى أحرف كبيرة.
	</li>
	<li>
		** PROPER**: تغيير الحرف الأول إلى حرف كبير في كل كلمة من قيمة نصية.
	</li>
	<li>
		<strong>LEN</strong>: إرجاع عدد الأحرف في قيمة نصية.
	</li>
	<li>
		<strong>LEFT</strong>: إرجاع الأحرف الموجودة في أقصى اليسار من قيمة نصية.
	</li>
	<li>
		<strong>RIGHT</strong>: إرجاع الأحرف الموجودة في أقصى اليمين من قيمة نصية.
	</li>
	<li>
		<strong>SUBSTITUTE</strong>: استبدال نص قديم بنص جديد في قيمة نصية.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="1-الدوال النصية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75163" data-unique="561esxrxv" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c123e8442_1-.PNG.02b886cb953ab71c653eeca32c2adae1.PNG" style=""></p>

<p>
	للتعرف على دوال النصوص، أنشئ ورقة عمل جديدة على مايكروسوفت إكسل أونلاين 365، وأدرج البيانات التالية ونسِّق الجدول، ومن ثم سنبدأ بتطبيق الدوال لإيجاد القيم المطلوبة.
</p>

<p style="text-align: center;">
	<img alt="2-المطلوب الجزء الأول.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75174" data-unique="79y3szh2j" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13266661_2-.PNG.aa269673301ec3951f4f0511e5e381ab.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="3-المطلوب الجزء الثاني.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75185" data-unique="lczb53rko" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13ea301e_3-.PNG.e57b42f7e5d0089fc2fb1ca70b5f1097.PNG" style=""></p>

<h2>
	1. دالة CONCAT
</h2>

<p>
	تدمج هذه الدالة مجموعةً من النصوص في نص واحد. لدينا في المثال قيم الاسم الأول واسم الأب واسم العائلة، ونريد الحصول على الاسم الثلاثي كاملًا، وهنا سنستخدم دالة CONCAT لدمج الأسماء الثلاثة.
</p>

<p>
	لاحظ أن صيغة الدالة تستقبل مجموعةً من النصوص. أدرج الدالة لدمج الأسماء الثلاثة.
</p>

<p style="text-align: center;">
	<img alt="4-دالة الدمج.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75196" data-unique="uqv61b2ha" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14b3a143_4-.PNG.44b020d38cd3ba976fa2c9a8ebee7f2b.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="5-دالة الدمج2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75204" data-unique="68qj6hren" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c15caa7d9_5-2.PNG.89186cb00dc09e083c041cf040d82d22.PNG" style=""></p>

<p>
	ستلاحظ أن نتيجة الدالة هي دمج الأسماء الثلاثة لكن بدون مسافات بين الأسماء.
</p>

<p style="text-align: center;">
	<img alt="6-ناتج الدمج الخاطئ.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75205" data-unique="qu5opt2c3" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c15d8085e_6-.PNG.03a8ca77b5f19ecda86a46b90f5e8a06.PNG" style=""></p>

<p>
	عدِّل الدالة وذلك بإدراج مسافة (تُعَد المسافة نصًّا) بين كل اسم والاسم الذي يليه.
</p>

<p style="text-align: center;">
	<img alt="7-تعديل الدمج.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75206" data-unique="28c05cmyf" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c15e7680d_7-.png.57e3933cf5307d88255be5d8dfc17e20.png" style=""></p>

<p>
	سنحصل على الاسم الثلاثي كاملًا مثل الشكل التالي:
</p>

<p style="text-align: center;">
	<img alt="8-ناتج الدمج الصحيح.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75207" data-unique="6yf1qrj4b" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c15f54ab9_8-.PNG.324f61d9ccb7c4a0fbc290e00677d20a.PNG" style=""></p>

<p>
	لتطبيق الدالة على باقي السجلات، حدِّد الخلية التي طبقت عليها الدالة، واسحب المربع الأخضر للأسفل حتى آخر صف، أو اضغط على المربع ضغطتين متتاليتين بالفأرة.
</p>

<p style="text-align: center;">
	<img alt="9-سحب الدالة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75208" data-unique="46mazqeva" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c15fc6aa4_9-.png.b8090552d559648da199c37fb6b645c1.png" style=""></p>

<p>
	ستلاحظ الناتج النهائي للدالة بعرض الاسم الثلاثي كاملًا لكل السجلات.
</p>

<p style="text-align: center;">
	<img alt="10-النتيجة النهائية للاسم الثلاثي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75164" data-unique="71xwm8tbw" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12927a72_10-.png.9dbf664adc28a4875efc880dc1c7d9c6.png" style=""></p>

<h2>
	2. دالة TRIM
</h2>

<p>
	لاحظ أن عمود المنطقة يحتوي على العديد من المسافات الإضافية، فمثلًا منطقة "شمال غزة" تحتوي على أكثر من مسافة بين الكلمتين، وبعض الخلايا في عمود المنطقة يحتوي على مسافات إضافية قبل أو بعد النص. هذه المسافات تُسبِّب أخطاء في البيانات ويجب معالجتها.
</p>

<p>
	لإزالة المسافات الزائدة بين كلمتين في النص أو قبل النص أو بعده، سنستخدم دالة TRIM التي تستقبل نصًّا، وتُرجِعه بدون مسافات مع الإبقاء على مسافة واحدة بين الكلمتين.
</p>

<p style="text-align: center;">
	<img alt="11-دالة تريم.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75165" data-unique="hn4sgfq8f" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c129cde82_11-.PNG.00b31393bbde2d97e2a7b09d1692c3a5.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="12-دالة تريم2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75166" data-unique="h0m9ivgll" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12a68cc5_12-2.PNG.505bab48b6604cd0f1463be44955135c.PNG" style=""></p>

<p>
	لاحظ النتيجة بأن "شمال غزة" أصبحت تحتوي على مسافة واحدة فقط بين كلمتي "شمال" و"غزة".
</p>

<p style="text-align: center;">
	<img alt="13-ناتج دالة تريم.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75167" data-unique="irq588vxs" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12ad7d13_13-.PNG.8c23d1334598b7b726da35af48a66711.PNG" style=""></p>

<p>
	حدد الخلية التي طبَّقت عليها الدالة، واسحب الدالة لتطبيقها على عمود المنطقة كاملًا وستحصل على النتيجة التالية:
</p>

<p style="text-align: center;">
	<img alt="14-النتيجة النهائية لتريم.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75168" data-unique="kyyaf1g4i" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12b7e888_14-.PNG.80036894e54dbe5a0777aeb8e8a85d78.PNG" style=""></p>

<p>
	أَخْفِ عمود المنطقة الأول الذي يحتوي على مسافات زائدة، وذلك بالضغط على اسم العمود "F"، ثم اضغط بالزر الأيمن للفأرة، وهنا ستظهر لك قائمة اختر منها "إخفاء الأعمدة".
</p>

<p style="text-align: center;">
	<img alt="15-اخفاء عمود المنطقة الاول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75169" data-unique="269u8ld2x" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12c4a74f_15-.png.8020fb47f624e0b55ea0fbb626d85e70.png" style=""></p>

<h2>
	3. دالة TEXT
</h2>

<p>
	تستقبل هذه الدالة أرقامًا وتحوِّلها إلى نصوص بتنسيق محدد. تحتاج هذه الدالة قيمتين هما القيمة الرقمية التي تريد تحويلها إلى نص، وشكل التنسيق الذي تريده للنص.
</p>

<p style="text-align: center;">
	<img alt="16-دالة تيكست.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75170" data-unique="8q6ps7tse" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12e39cd3_16-.PNG.7564ce51f9c5f126a20ad45b8be64cc6.PNG" style=""></p>

<p>
	سنحوِّل قيم المعدل الجامعي في عمود المعدل الجامعي إلى صيغة مئوية مع وجود رقمين بعد العلامة العشرية، وللحصول على هذا التنسيق سنستخدم 0.00%.
</p>

<p style="text-align: center;">
	<img alt="17-دالة تيكست 2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75171" data-unique="rh0futy8p" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c12ee21ab_17-2.png.9377c23a2905df6c9cc67de3b7b01660.png" style=""></p>

<p>
	ستلاحظ أن قيمة المعدل الجامعي تحولت إلى قيمة نسبة مئوية مع وجود رقمين بعد العلامة العشرية، وهنا حدِّد الخلية الأولى التي طبقت عليها الدالة، واسحب الدالة للتطبيق على باقي السجلات.
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		<strong>ملاحظة</strong>: تحوِّل دالة TEXT الأرقام إلى نصوص، مما قد يُصعِّب استخدام هذه الأرقام في العمليات الحسابية لاحقًا. لذلك؛ من الأفضل أن تحتفظ بالقيمة الأصلية في خلية واحدة وبإمكانك إخفاء العمود، ومن ثم تستخدم دالة TEXT في خلية أخرى.
	</p>
</blockquote>

<p style="text-align: center;">
	<img alt="18-الناتج النهائي لدالة تيكست.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75172" data-unique="byjxomqkr" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13010bdd_18-.PNG.30a8fc1d6bfc31dc705064ad714f8366.PNG" style=""></p>

<p>
	ستلاحظ أن ورقة العمل أصبحت بالشكل التالي بعد تطبيق الجزء الأول من المطلوب.
</p>

<p style="text-align: center;">
	<img alt="19-نتيجة المطلوب الجزء الأول.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75173" data-unique="xvsc2slcd" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13110fca_19-.PNG.9bca12f7e1e5ad0652353b825d0040b7.PNG" style=""></p>

<h2>
	4. دالة SEARCH
</h2>

<p>
	لتطبيق الجزء الثاني من المطلوب، لدينا اسم باللغتين العربية والإنجليزية، الاسم بالعربية هو "كريم سعيد إبراهيم أحمد"، والاسم بالإنجليزية هو "Kareem Said Ibrahim Ahmed".
</p>

<p>
	تساعدك دالة SEARCH على البحث عن نص داخل نص آخر، وتُرجِع رقم موضع بدء النص الذي تبحث عنه، وتستقبل هذه الدالة قيمتين إجباريتين وهما النص الذي تريد البحث عنه، والنص الذي تريد البحث بداخله.
</p>

<p style="text-align: center;">
	<img alt="20-دالة سيرش.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75175" data-unique="wt0ks8ux9" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c133b8c41_20-.PNG.03aa2cd49d00ded461ad1dc0f1be5fee.PNG" style=""></p>

<p>
	سندخل النص الذي سنبحث عنه في خلية "البحث عن (عربي)" وهي الخلية L5، بينما سنبحث عنها في الاسم الرباعي العربي وهي الخلية L3، وستظهر النتيجة في "النتيجة Search".
</p>

<p style="text-align: center;">
	<img alt="21-دالة سيرش2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75176" data-unique="hsvsoefp0" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c134964ca_21-2.PNG.f98ee6e4ab33f2bda09bfbb7257beefd.PNG" style=""></p>

<p>
	تلقائيًّا وبدون إدخال قيمة بحث، سيظهر الناتج "1".
</p>

<p style="text-align: center;">
	<img alt="22-نتيجة سيرش التلقائية.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75177" data-unique="h952xaxgh" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13549d0d_22-.PNG.2c20d27524dacc3d9f75eb49047eb0c9.PNG" style=""></p>

<p>
	أدخل الآن الكلمة التي تريد البحث عنها ولتكن كلمة "سعيد"، حيث سيظهر في النتيجة رقم "6". ابدأ بِعَدّ الحروف في الاسم الرباعي، فحرف "ك" هو الحرف رقم "1"، بينما حرف "س" هو الحرف رقم "6" في الاسم. انتبه أن المسافة تُعَد حرفًا.
</p>

<p style="text-align: center;">
	<img alt="23-نتيجة سيرش مع البحث.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75178" data-unique="juwqidhum" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13665587_23-.PNG.30798cdfb4952b84f0db63793825bfe9.PNG" style=""></p>

<h2>
	5. دالة FIND
</h2>

<p>
	تساعدك دالة FIND على البحث عن نص داخل نص آخر، وتُرجع رقم موضع بدء النص الذي تبحث عنه. تستقبل هذه الدالة قيمتين إجباريتين، وهما النص الذي تريد البحث عنه، والنص الذي تريد البحث بداخله. تختلف هذه الدالة عن دالة SEARCH بأنها تتحسس حالة الحرف (حرف صغير أو كبير)، بينما دالة SEARCH لا تتحسس الحروف.
</p>

<p>
	اكتب القيمة التي تريد البحث عنها في مربع "البحث عن (إنجليزي)" وهي الخلية L7، وسنبحث في الاسم الإنجليزي الموجود في الخلية L4، وستظهر النتيجة في خلية النتيجة (Find).
</p>

<p style="text-align: center;">
	<img alt="24-دالة فايند.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75179" data-unique="7ar3mk4q4" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c137b367c_24-.PNG.6ccc83baea1d3578d2969df030e75c5b.PNG" style=""></p>

<p>
	ابحث عن كلمة said، وستُرجِع الدالة !VALUE# أي أنها لم تجد الكلمة.
</p>

<p style="text-align: center;">
	<img alt="25-دالة فايند التحسس للحروف.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75180" data-unique="fvsek7f91" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c138955c4_25-.PNG.a0ea9d7ac6de13d89cbc10becedc47d4.PNG" style=""></p>

<p>
	استبدل الكلمة التي تبحث عنها بـ Said على أن يكون حرف S حرفًا كبيرًا، وستُرجِع الدالة رقم "8"، وهو رقم موضع الحرف في الاسم، حيث إن حرف "K" هو الحرف رقم "1"، بينما حرف "S" هو الحرف رقم "8". انتبه أن المسافة تُعَد حرفًا.
</p>

<p style="text-align: center;">
	<img alt="26-دالة فايند التحسس للحروف2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75181" data-unique="02yrdyc4v" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c1396f105_26-2.PNG.01b1e37ee449abc4928a4d1c0b64dd96.PNG" style=""></p>

<h2>
	6. دالة LOWER
</h2>

<p>
	تستقبل هذه الدالة نصًّا، وتُرجِع النص بحروف صغيرة.
</p>

<p style="text-align: center;">
	<img alt="27-دالة الحروف الصغيرة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75182" data-unique="6f61s0ie6" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13a53373_27-.PNG.7324a65a225f787de4113062251df696.PNG" style=""></p>

<p>
	طبِّق الدالة على الاسم الإنجليزي في خلية L4، وستلاحظ أن الدالة تُرجِع الاسم كاملًا لكن بحروف صغيرة.
</p>

<p style="text-align: center;">
	<img alt="28-نتيجة دالة الحروف الصغيرة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75183" data-unique="vzpc1esms" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13b57978_28-.PNG.4fe4a902716d26b49b61592c9f51c68d.PNG" style=""></p>

<h2>
	7. دالة UPPER
</h2>

<p>
	تستقبل هذه الدالة نصًّا، وتُرجِع النص بحروف كبيرة.
</p>

<p style="text-align: center;">
	<img alt="29-دالة الحروف الكبيرة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75184" data-unique="wungjnvox" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c13c7168d_29-.PNG.a0291f22c81e923db1431a93b124471e.PNG" style=""></p>

<p>
	طبِّق الدالة على الاسم الإنجليزي الموجود في خلية L4، وستلاحظ أن الدالة تُرجِع الاسم كاملًا لكن بحروف كبيرة.
</p>

<p style="text-align: center;">
	<img alt="30-ناتج دالة الحروف الكبيرة.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75186" data-unique="lthb9uo7i" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c140a710a_30-.PNG.6cd80c3eb18aab2feb4ea450ba0a15de.PNG" style=""></p>

<h2>
	8. دالة PROPER
</h2>

<p>
	تستقبل هذه الدالة نصًّا، وتُرجِع النص بحروف كبيرة لأول حرف في كل كلمة.
</p>

<p style="text-align: center;">
	<img alt="31-دالة تحويل الحروف.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75187" data-unique="ftif9ur5h" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14217425_31-.PNG.d559bc8b23f3fdd517dcdf57930ab69b.PNG" style=""></p>

<p>
	طبِّق الدالة على الاسم الإنجليزي في خلية L4، ستلاحظ أن الدالة تُرجِع الاسم كاملًا لكن بحروف كبيرة لأول حرف بداية كل كلمة. غيِّر حالة الحروف في الاسم الإنجليزي، وطبِّق الدالة وتأكد من النتيجة.
</p>

<p style="text-align: center;">
	<img alt="32-ناتج دالة تحويل الحروف.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75188" data-unique="098rw7zzt" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c1433ee8a_32-.PNG.e8912a2a2c2167f6244389eb44ba7406.PNG" style=""></p>

<h2>
	9. دالة LEN
</h2>

<p>
	تستقبل هذه الدالة نصًّا، وتُرجِع عدد الحروف في النص أي طوله.
</p>

<p style="text-align: center;">
	<img alt="33-دالة طول النص.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75189" data-unique="hxn1k7pqf" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14457f20_33-.PNG.f03931928f4a6070a8af8b140f51bc43.PNG" style=""></p>

<p>
	طبِّق الدالة على الاسمين العربي والإنجليزي لحساب طول النص، وستظهر النتيجة كالتالي:
</p>

<p style="text-align: center;">
	<img alt="34-دالة طول النص2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75190" data-unique="wh5pwtyka" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14505a12_34-2.PNG.cd08c7e8a9ea52c10ae393b6a3defa8b.PNG" style=""></p>

<h2>
	10. دالة LEFT
</h2>

<p>
	تستقبل هذه الدالة نصًّا، وتُرجِع الأحرف الموجودة في أقصى يسار النص. سنطبِّق هذه الدالة على الاسمين العربي والإنجليزي لملاحظة الفرق في آلية عملها مع النصوص العربية والنصوص الإنجليزية.
</p>

<p>
	نبدأ بالاسم العربي؛ سنطبِّق الدالة على الاسم العربي في الخلية L3، أينما ستلاحظ أن الدالة تُرجِع حرف "ك"، وهو الحرف الأول من الاسم الأول من الجهة اليمنى لأن النص عربي.
</p>

<p style="text-align: center;">
	<img alt="35-دالة اليسار.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75191" data-unique="p5vhz6g39" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14617d5f_35-.PNG.563aec6b180728e57776768ad2e187af.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="36-ناتج دالة اليسار.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75192" data-unique="k2d09lwnf" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c1477d14a_36-.PNG.af55dceceeba8df4eb71644f553f4c6f.PNG" style=""></p>

<p>
	تُرجِع الدالة حرفًا واحدًا تلقائيًّا، لكن الدالة تستقبل متغيرًا ثانيًا اختياريًّا، وهو عدد الحروف التي تريد إرجاعها من الدالة. فمثلًا لو حددنا 3 حروف؛ فستُرجِع الدالة "كري" أي أول ثلاثة حروف للاسم الأول من الجهة اليمنى.
</p>

<p style="text-align: center;">
	<img alt="37-دالة اليسار 2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75193" data-unique="sf2e1cs2e" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14931b39_37-2.png.f8667f21e37484a31d9fd94894e1a65c.png" style=""></p>

<p style="text-align: center;">
	<img alt="38-ناتج دالة اليسار2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75194" data-unique="7ixcwqr0v" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c149f27b5_38-2.PNG.7e40afba52de1c20522dbbe261f6bfc9.PNG" style=""></p>

<p>
	طبِّق نفس الدالة على الاسم الإنجليزي ولاحظ النتيجة، حيث ستُرجِع الدالة حرف "K" وهو الحرف الأول من الاسم الأول من الجهة اليسرى. وإذا حددنا استرجاع ثلاثة حروف، فستُرجِع الدالة "Kar".
</p>

<p style="text-align: center;">
	<img alt="39-دالة اليسار للنص الانجليزي.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75195" data-unique="op3ja6b24" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14a7d96a_39-.PNG.8182d18d9ba978550d877d47d0b4f89f.PNG" style=""></p>

<h2>
	11. دالة RIGHT
</h2>

<p>
	تعمل هذه الدالة بنفس آلية عمل دالة LEFT ولكنها ستُرجِع أقصى حرف من الجهة اليمنى في النص الإنجليزي، بينما ستُرجِع أقصى حرف من الجهة اليسرى في النص العربي.
</p>

<p>
	طبِّق الدالة على الاسمين ولاحظ النتيجة.
</p>

<p style="text-align: center;">
	<img alt="40-دالة اليمين.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75197" data-unique="pv94h480e" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14ccd349_40-.PNG.d2be1bf1ffecc84d17919c10963303d1.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="41-دالة اليمين2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75198" data-unique="9njup51nz" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c14eda07e_41-2.png.c02c419a5b8c9b755ee79fe1266e057f.png" style=""></p>

<p>
	ويكون ناتج دالة اليمين للنصين العربي والإنجليزي على النحو الآتي:
</p>

<p style="text-align: center;">
	<img alt="42-ناتج دالة اليمين عربي.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75199" data-unique="z87ylow82" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c15154451_42-.PNG.6fb7ff40f3ce090845c42ed189b053a0.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="43-دالة اليمين للنص الانجليزي.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75200" data-unique="pz4gwhums" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c1522aafc_43-.PNG.96f7204360fc26730b62ea67f981fb46.PNG" style=""></p>

<h2>
	12. دالة SUBSTITUTE
</h2>

<p>
	تُستخدم هذه الدالة لاستبدال نص بنصٍّ آخر.
</p>

<p style="text-align: center;">
	<img alt="44-دالة استبدال النص.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75201" data-unique="mp669dhuh" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c1529f570_44-.PNG.7a758f03a3e42b2b17b4ab11fac22b04.PNG" style=""></p>

<p>
	نفترض أننا سنستبدل اسم "Ahmed" باسم "Abed"، وهنا سنحدد ثلاث قيم، حيث تكون القيمة الأولى هي "النص الذي سأبحث فيه عن النص الذي سأستبدله" وهو الاسم الإنجليزي في الخلية L4؛ أما القيمة الثانية فهي "النص الذي سأستبدله" وهو "Ahmed"، والقيمة الثالثة هي "النص الجديد" وهو "Abed".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="75202" href="https://academy.hsoub.com/uploads/monthly_2021_08/6123c154b6689_45-2.png.f396cf2ad668ac3608b449169642b48a.png" rel=""><img alt="45-دالة استبدال النص2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="75202" data-unique="u3founbtz" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c1570711b_45-2.thumb.png.8fb46fc04880684ad056df3e70ad507f.png" style=""></a>
</p>

<p style="text-align: center;">
	<img alt="46-نتيجة استبدال النص.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="75203" data-unique="kz5n0du4q" src="https://academy.hsoub.com/uploads/monthly_2021_08/6123c159a3575_46-.PNG.ecd835860e1fde508177d8845d69a64f.PNG" style=""></p>

<h2>
	خاتمة
</h2>

<p>
	تعرَّفنا في هذا المقال على مجموعة من الدوال النصية التي تساعد في معالجة النصوص في إكسل 365 أونلاين، كما تعرفنا على دالة دمج النصوص CONTACT، وتعرفنا أيضًا على دالة TEXT التي تساعدنا على تحويل القيم الرقمية إلى نصوص مع إضافة تنسيق خاص لها، ودالة TRIM التي تُزيل المسافة من النصوص؛ ثم تعرفنا على مجموعة من الدوال التي تعالج النصوص الإنجليزية مثل دوال LOWER وUPPER وPROPER التي تغيِّر حالة الحروف، وأن بإمكاننا البحث عن النصوص باستخدام دوال SEARCH وFIND، أو البحث عن جزء معين من النص وإرجاعه باستخدام دوال RIGTH وLEFT. وفي الختام تعرفنا على دالة SUBSTITUE التي تساعدنا على استبدال نص بآخر بسهولة.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A7%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r493/" rel="">دوال قواعد البيانات في مايكروسوفت اكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">الدوال الشائعة في مايكروسوفت إكسل أونلاين 365</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%A8%D9%88%D9%8A%D8%A8-%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D9%88%D9%85%D8%B2%D8%A7%D9%8A%D8%A7-%D8%A7%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%82%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r486/" rel="">تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D9%88%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%A3%D9%83%D8%AB%D8%B1-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85%D8%A7-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r484/" rel="">دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">495</guid><pubDate>Mon, 23 Aug 2021 16:24:21 +0000</pubDate></item><item><title>&#x62F;&#x648;&#x627;&#x644; &#x642;&#x648;&#x627;&#x639;&#x62F; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x627;&#x643;&#x633;&#x644; 365 &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A7%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r493/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51ab40abe_365.jpg.59d5f355486ca91523e5e2b8d0d0e202.jpg" /></p>

<p>
	قواعد البيانات هي مجموعة من البيانات المنطقية المترابطة مع بعضها البعض، حيث تتكون قاعدة البيانات من جدول أو أكثر. ويحتوي الجدول على صف واحد أو أكثر يُسمى الصف بالسجل، في حين تمثل أعمدة البيانات الحقول، كما يحتوي الصف الأول من البيانات على تسميات كل عمود.
</p>

<p>
	يحتوي الإكسل على مجموعة من دوال قواعد البيانات والتي تسهِّل البحث والتصفية داخل قواعد البيانات.
</p>

<p>
	سنشرح في هذا الدرس مجموعةً من دوال قواعد البيانات، وهي:
</p>

<ol>
<li>
		<strong>Dcount</strong>: تَحسُب هذه الدالة عدد الخلايا التي تحتوي على أرقام تحقق الشرط المحدد في عمود السجلات في قاعدة البيانات.
	</li>
	<li>
		<strong>DcountA</strong>: تَحسُب هذه الدالة عدد الخلايا غير الفارغة في عمود السجلات في قاعدة البيانات، والتي تحقق الشرط المحدد.
	</li>
	<li>
		<strong>Dsum</strong>: تجمع هذه الدالة الأرقام في عمود السجلات في قاعدة البيانات والتي تُحقِّّق الشروط التي حددتها.
	</li>
	<li>
		<strong>Daverage</strong>: تحصل هذه الدالة على متوسط القيم في عمود بإحدى القوائم، أو في قاعدة بيانات تطابق الشروط المعينة.
	</li>
	<li>
		<strong>Dproduct</strong>: تضرب هذه الدالة القيم في عمود السجلات في قاعدة البيانات، والتي تُحقق الشروط التي حددتها.
	</li>
	<li>
		<strong>Dmax</strong>: تُرجِع هذه الدالة أكبر رقم في عمود من سجلات قاعدة البيانات، والتي تحقق الشروط التي تحددها.
	</li>
	<li>
		<strong>Dmin</strong>: تُرجِع هذه الدالة أصغر رقم في عمود من سجلات قاعدة البيانات، والتي تحقق الشروط التي تحددها.
	</li>
	<li>
		<strong>Dget</strong>: تستخرج هذه الدالة سجلًّا واحدًا يحقق الشروط التي حددتها من قاعدة بيانات.
	</li>
</ol>
<p>
	لتوضيح الدوال السابقة؛ سنشرح المثال التالي والذي يشمل إجمالي مبيعات في سنوات مختلفة لعدة مناطق.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74813" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51ab113ae_1-.PNG.cd89e41a8ee9becad26403f6dfeb2b45.PNG" rel=""><img alt="1-المطلوب.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74813" data-unique="6lp4cs8y3" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51ac567a9_1-.thumb.PNG.79652cc60b4fd01f28eb8e4c31d5a562.PNG"></a>
</p>

<p>
	أدرج الجدول السابق في ورقة العمل في الإكسل، [نسِّقها](رابط مقال مدخل إلى مايكروسوفت إكسل أونلاين).
</p>

<h2>
	أولا: إنشاء قاعدة البيانات
</h2>

<p>
	سننشئ قاعدة البيانات والتي تتكون من عناوين البيانات (م. والفرع والسنة وإجمالي المبيعات) بالإضافة إلى البيانات، حيث أن قاعدة البيانات في الشكل التالي تقع في النطاق A1:D14.
</p>

<p style="text-align: center;">
	<img alt="2-إنشاء قاعدة البيانات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74824" data-unique="wu5mr2uk1" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51be6bccd_2-.PNG.e49b29bf6f45e7fbc20e60623560fd27.PNG"></p>

<h2>
	ثانيا: إنشاء نموذج البحث
</h2>

<p>
	سننشئ هنا نموذج البحث الذي من خلاله سنبحث داخل قاعدة البيانات، حيث يمكننا البحث عن الفرع أو السنة أو إجمالي المبيعات. نلاحظ أن عناوين الجدول هي نفسها عناوين جدول البيانات السابق، وسيكون نموذج البحث في النطاق F1:H2.
</p>

<p style="text-align: center;">
	<img alt="3-إنشاء نموذج البحث.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74835" data-unique="2peejdpxx" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51cc69bad_3-.PNG.8f7eccd97794bdaf89993372b819700d.PNG"></p>

<h2>
	ثالثا: إنشاء نموذج النتائج
</h2>

<p>
	ننشئ نموذج النتائج والذي سنطبِّق فيه دوال قواعد البيانات.
</p>

<p style="text-align: center;">
	<img alt="4-نموذج النتائج.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74838" data-unique="r4oup99iy" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d015942_4-.PNG.a65bc7a30a6dcc5788129d7d857f0f9a.PNG"></p>

<p>
	بهذا نكون قد جهَّزنا ورقة العمل التي تحتوي على قاعدة البيانات ونموذج البحث ونموذج النتائج، والذي يتمثَّل في دوال قواعد البيانات، وسنبدأ بتطبيق الدوال. ستكون ورقة العمل بالشكل التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74839" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d0ef97f_5-.PNG.01d66ced886fa98029cdb4034a47e0de.PNG" rel=""><img alt="5-الشكل النهائي لورقة العمل.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74839" data-unique="ef1vuse72" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d21801a_5-.thumb.PNG.3dbcd7a128867d8dd363f3533aaad46c.PNG"></a>
</p>

<h2>
	رابعا: تطبيق دوال قواعد البيانات
</h2>

<p>
	<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">أدرج دالة</a> من تبويب إدراج، واختر فئة "قاعدة بيانات" للوصول إلى جميع دوال قواعد البيانات.
</p>

<p style="text-align: center;">
	<img alt="6-إدراج دالة قاعدة بيانات.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74840" data-unique="w4ltamtun" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d2dfd71_6-.PNG.3145f9d5addc9007025e0a08b7936268.PNG"></p>

<h3>
	1. دالة Dcount
</h3>

<p style="text-align: center;">
	<img alt="7-دالة العدد.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74841" data-unique="vjfzl63ys" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d36e0a7_7-.PNG.b204fbd9330adf80db07b9f4aca493d8.PNG"></p>

<p>
	عند إدراج الدالة سنلاحظ أن الدالة تحتاج لثلاث قيم هي database وfield وcriteria. سنلاحظ أن هذه القيم الثلاثة هي ذاتها في كل الدوال، ولكن ستختلف قيمة field على حسب الناتج الذي نريده. والقيم الثلاثة هي:
</p>

<ul>
<li>
		<strong>database</strong>: وهي قاعدة البيانات، وفي المثال هي نطاق الخلايا A1:D14 الذي حددناه مسبقًا بما يحتويه من رقم تسلسلي وفرع وسنة وإجمالي مبيعات.
	</li>
	<li>
		<strong>field</strong>: وهو الحقل أو العمود الذي سنبحث عنه أو نوازنه (أي الذي ستستخدمه الدالة). يمكن إدخال تسمية العمود مع تضمينها بين علامتي اقتباس مزدوجتين، مثل "الفرع" أو "السنة"، أو رقم (بدون علامات اقتباس) يمثل موضع العمود في القائمة 1 للعمود الأول، و2 للعمود الثاني، وهكذا. وبما أن دالة Dcount تَحسُب عدد الخلايا التي تحتوي على أرقام، فسنحسب عمود "إجمالي المبيعات".
	</li>
	<li>
		<strong>criteria</strong>: وهي نطاق البحث والذي يمثل نطاق الخلايا التي ستحتوي على الشروط التي نحددها. وفي المثال التالي نطاق البحث هو نطاق الخلايا F1:H2.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74842" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d401087_8-2.png.07a1a7d4e4fac74887fe5f379b329118.png" rel=""><img alt="8-دالة العدد2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74842" data-unique="zhmk4xt1h" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d4da2ff_8-2.thumb.png.160fc3db29251b6c546fadda1c514390.png"></a>
</p>

<p>
	سنلاحظ أن الناتج يساوي 13، وهو العدد الكلي للبيانات في الجدول. يمكننا استبدال D1 بـ "إجمالي المبيعات" أو بالرقم 4، وهو رقم عمود "إجمالي المبيعات"، حيث إن عمود "م." هو العمود رقم 1.
</p>

<p style="text-align: center;">
	<img alt="9-دالة العدد3.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74843" data-unique="3ct87bkpm" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51d592545_9-3.PNG.ca29c57b394fe0b7026567f5e0c85c87.PNG"></p>

<p>
	سندخل الآن شرطًا في نموذج البحث، ولنفترض أننا نبحث عن عدد الخلايا التي إجمالي المبيعات فيها أكبر من 5000. سنلاحظ أن العدد سيتغير إلى 4، وهو العدد الفعلي للفروع التي إجمالي المبيعات فيها أكثر من 5000.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74814" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51adbf42a_10-.PNG.1d48725f0d391dea907eef4d87e014b2.PNG" rel=""><img alt="10-دالة العدد مع شرط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74814" data-unique="kzqwsohv7" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51af8e6b9_10-.thumb.PNG.a9ebdd165e2c58dcdf45695902fd92e8.PNG"></a>
</p>

<p>
	يمكننا إضافة شروط أخرى، ولنفترض أننا نريد إجمالي المبيعات أكبر من 5000 ولكن فقط لمنطقة "غزة". سنلاحظ تغيُّر القيمة إلى 1 لأنه لا توجد إلَّا قيمة واحدة أعلى من 5000 في إجمالي مبيعات منطقة غزة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74815" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b11b557_11-.PNG.ef755ced67cbfc4b47d0ce6188b298f8.PNG" rel=""><img alt="11-دالة العدد مع شرطين.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74815" data-unique="4hkuwp38u" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b269d4f_11-.thumb.PNG.0a5fefe6c5462af57466404c08b468cc.PNG"></a>
</p>

<h3>
	2. دالة Dcounta
</h3>

<p>
	هذه الدالة تشبه دالة Dcount، ولكنها تحسب عدد الخلايا التي تحتوي على نصوص. فمثلًا نريد حساب عدد السجلات في عمود الفرع، لهذا سنطبِّق الدالة كالتالي (نلاحظ أن قيمة field هي "الفرع"، بينما قيم criteria وdatabase كما هي).
</p>

<p style="text-align: center;">
	<img alt="12-دالة عدد النصوص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74816" data-unique="5fsvht6cw" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b34d5d9_12-.png.b73608bc40fc7772dc5a924c9d3541e9.png"></p>

<p>
	سنحصل على قيمة 13 وهي عدد السجلات الكلي في حقل الفرع.
</p>

<p style="text-align: center;">
	<img alt="13-دالة عدد النصوص2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74817" data-unique="zblvp72u2" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b3d971c_13-2.PNG.a3a5148355a8950a8c131ee25f22d5e4.PNG"></p>

<p>
	ندخل شرطين في نموذج البحث وهما فرع "رفح" وسنة "2019"، أي أنه سيحسب فقط عدد السجلات التي ينطبق عليها الشرطان معًا لا شرط واحد، والآن سندقِّق في قاعدة البيانات وسنلاحظ أن السجل رقم 13 هو الوحيد الذي يتحقق فيه الشرطان (رفح و2019)؛ لذلك فإن نتيجة الدالة هي 1 أي سجل واحد فقط.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74818" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b4adf80_14-.PNG.40b59da3049670a7d54a7c0b715117d9.PNG" rel=""><img alt="14-دالة عدد النصوص مع شرط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74818" data-unique="vennprugq" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b675ade_14-.thumb.PNG.9f0eeec873571851230af56c887cc63b.PNG"></a>
</p>

<h3>
	3. دالة Daverage
</h3>

<p>
	تُرجِع هذه الدالة المتوسط الحسابي لمجموعة من القيم، حيث يمكننا في المثال الحصول على المتوسط الحسابي لإجمالي المبيعات. نلاحظ أن database وcriteria كما هما في الأمثلة السابقة؛ حيث إننا نعمل على نفس قاعدة البيانات ونفس نموذج البحث. سنحدد field بأنه "إجمالي المبيعات" للحصول على متوسط القيم لإجمالي المبيعات.
</p>

<p style="text-align: center;">
	<img alt="15-دالة المتوسط الحسابي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74819" data-unique="86sdiv12a" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b774e34_15-.png.5eefad405c481b5f1e3f39020f7764c6.png"></p>

<p>
	سنحصل على قيمة 7627.15 وهي قيمة المتوسط الحسابي لجميع قيم إجمالي المبيعات في العمود.
</p>

<p style="text-align: center;">
	<img alt="16-دالة المتوسط الحسابي2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74820" data-unique="qr297grav" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b84b000_16-2.PNG.80ad246d1077d2023c8fb7f994bde9cb.PNG"></p>

<p>
	سنخصص البحث للحصول على إجمالي المبيعات للفرع الذي يحتوي على حرفي "غز" وقد تسبقه مجموعة من الحروف وقد تليه مجموعة من الحروف. نعبِّر عن ذلك باستخدام إشارة النجمة (<em>غز</em>)، وبالتالي سيبحث عن "غزة" وعن "شمال غزة".
</p>

<p>
	نلاحظ أن العدد الكلي لنتائج البحث هو 7، والمتوسط الحسابي هو 11121.86 كما في الشكل التالي.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74821" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51b8e6fe0_17-.PNG.7cb5947df1abb0cb187737f0ed0fb2de.PNG" rel=""><img alt="17-دالة المتوسط الحسابي مع شرط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74821" data-unique="544bnpvni" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51ba1354e_17-.thumb.PNG.d82233b05a3ca1b7e650e1c5c748cbd1.PNG"></a>
</p>

<h3>
	4. دالة Dsum
</h3>

<p>
	تُرجِع هذه الدالة مجموع مجموعة من القيم، حيث سنستخدم في هذا المثال القيمة 4 لتحديد العمود الرابع بدلًا من تحديد نص "إجمالي المبيعات"، وكلاهما يعطي نفس النتيجة النهائية. سنلاحظ أن المجموع الكلي لإجمالي المبيعات هو 99153، وبإمكاننا التأكد منه باستخدام دالة sum.
</p>

<p style="text-align: center;">
	<img alt="18-دالة المجموع.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74822" data-unique="spmykcebv" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51bb0146c_18-.png.b9c1e0749d18afcad9fe0d6cc3a33031.png"></p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74823" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51bbc0583_19-2.PNG.f010b547a27b3da23d14b02b194fdb0a.PNG" rel=""><img alt="19-دالة المجموع2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74823" data-unique="c8owpz1w2" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51bd51a0f_19-2.thumb.PNG.8a4befd2f3d6f012e9aff4c9456719fe.PNG"></a>
</p>

<p>
	نخصِّص البحث للحصول فقط على مجموع المبيعات التي تقل قيمتها عن 1000، فسنحصل على نتيجة 600 وهي مجموع القيمتين 100 و500 لمنطقتي رفح كما يتضح في الشكل التالي.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74825" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51bf087cb_20-.PNG.d4ce27f7be7be427f28bc1e17ea03308.PNG" rel=""><img alt="20-دالة المجموع مع شرط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74825" data-unique="wrusptupv" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c04bea7_20-.thumb.PNG.da2f16036a865d8366126259ea8ee8b3.PNG"></a>
</p>

<h3>
	5. دالة Dmin
</h3>

<p>
	تُرجِع هذه الدالة أصغر قيمة ضمن مجموعة من القيم، ومكننا تطبيق الدالة للحصول على أصغر قيمة في عمود "إجمالي المبيعات". وسنطبِّق الدالة مثلما بالشكل التالي، وسنحصل على قيمة 100.
</p>

<p style="text-align: center;">
	<img alt="21-دالة أصغر عدد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74826" data-unique="sqymit4vo" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c12fe06_21-.png.2e7641d2a1a31ce742423317dd978ce3.png"></p>

<p style="text-align: center;">
	<img alt="22-دالة أصغر عدد2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74827" data-unique="yadmozfzn" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c1b0b75_22-2.PNG.eea5d927d558af857d6f92c81015346e.PNG"></p>

<p>
	يمكننا تخصيص البحث للحصول على أقل قيمة في إجمالي المبيعات في سنة 2016 فقط، وسنحصل على قيمة 3000 وهي لمنطقة خان يونس.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74828" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c25f3b9_23-.PNG.7c8d9df97f2672a0643d5791a2ee080f.PNG" rel=""><img alt="23-دالة أصغر عدد مع شرط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74828" data-unique="b2m8cx4ii" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c3501bb_23-.thumb.PNG.bcdf5a63bb2faf178b4e0ab73f267be2.PNG"></a>
</p>

<h3>
	6. دالة Dmax
</h3>

<p>
	تُرجِع هذه الدالة أكبر قيمة ضمن مجموعة من القيم، ويمكننا تطبيق الدالة للحصول على أكبر قيمة في عمود "إجمالي المبيعات". وسنطبِّق الدالة كما بالشكل التالي وسنحصل على قيمة 65263.
</p>

<p style="text-align: center;">
	<img alt="24-دالة أكبر عدد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74829" data-unique="ifjdrf7st" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c421766_24-.png.2280c6de976804f1537a62ccba429856.png"></p>

<p style="text-align: center;">
	<img alt="25-دالة أكبر عدد2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74830" data-unique="zz3nq59rx" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c49fa06_25-2.PNG.93922d8c94420c2490d169720b6f7c40.PNG"></p>

<p>
	يمكننا تخصيص البحث للحصول على أكبر قيمة في إجمالي المبيعات في سنة 2016 فقط، حيث سنحصل على قيمة 5000 وهي لمنطقة خان يونس. نلاحظ وجود قيمتين لإجمالي المبيعات في 2016 وهما 3000 و5000، وعند الموازنة بينهما للحصول على القيمة الكُبرَى، فسنحصل على القيمة 5000.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74831" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c583a90_26-.PNG.97d8be4661a455de614ec956d750581b.PNG" rel=""><img alt="26-دالة أكبر عدد مع شرط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74831" data-unique="he7cjnu3k" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c6c939f_26-.thumb.PNG.efa63c9fe26a6546b75800ca83fd24bd.PNG"></a>
</p>

<h3>
	7. دالة Dproduct
</h3>

<p>
	تُرجِع هذه الدالة حاصل الضرب لمجموعة من القيم التي نحددها. فإذا أردنا الحصول على حاصل ضرب قيم "إجمالي المبيعات" فسنحصل على القيمة التالية.
</p>

<p style="text-align: center;">
	<img alt="27-دالة الضرب.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74832" data-unique="f0jk43ngd" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c7b5a75_27-.png.3ed0052e2d2f34c358b8bf8beb9ae2d6.png"></p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74833" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c875e71_28-2.PNG.d94194cc35df93ff1ce39661ddeb9a8c.PNG" rel=""><img alt="28-دالة الضرب2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74833" data-unique="4qtpjdkln" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51c95457c_28-2.thumb.PNG.ea72f204718d0b26ba49e6da96cfb0f5.PNG"></a>
</p>

<p>
	يمكننا تحديد ثلاثة شروط، وهي: فرع شمال غزة والسنة أقل من 2019، وإجمالي مبيعات أكبر من 500، وحساب حاصل ضرب إجمالي المبيعات للسجلات التي تحقق الشروط الثلاثة. لدينا سجلان يحققان الشروط الثلاثة، وهما سجل رقم 2 وسجل رقم 10، أي سنحسب حاصل ضرب 2500 و1203، وسنحصل على قيمة 3007500.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74834" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51ca84a8c_29-.PNG.da5f553770e41494e3619a5d35c64a2b.PNG" rel=""><img alt="29-دالة الضرب مع شروط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74834" data-unique="hrmk79t76" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51cbb0cc4_29-.thumb.PNG.55fa4da1327479faac73e7d050044b7e.PNG"></a>
</p>

<h3>
	8. دالة Dget
</h3>

<p>
	تُرجِع هذه الدالة سجلًّا واحدًا يحقق الشرط المطلوب. ولهذا سنُدخِل قيمة إجمالي المبيعات، ونطلب من الدالة استرجاع اسم الفرع الذي يحقق هذه القيمة. أي أننا إذًا سنحدد "الفرع" ضمن field في الدالة وهي القيمة التي نريد استرجاعها.
</p>

<p style="text-align: center;">
	<img alt="30-دالة السجل الواحد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74836" data-unique="phtvlnfoi" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51cd2873a_30-.png.39c7fc2189db6df27ae8c2918dd1aa57.png"></p>

<p>
	سنُدخِل إجمالي مبيعات 1555 مثلًا، وسنحصل على "غزة"؛ حيث تعود قيمة المبيعات هذه لفرع غزة. يمكننا تغيّير قيمة إجمالي المبيعات وعندها سنلاحظ الفرق في النتيجة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74837" href="https://academy.hsoub.com/uploads/monthly_2021_08/611d51ce02af9_31-.PNG.c920cd49199d2289e84d1c93c80e9afe.PNG" rel=""><img alt="31-دالة السجل الواحد مع الشروط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="74837" data-unique="d9dzj1mwl" src="https://academy.hsoub.com/uploads/monthly_2021_08/611d51cf19848_31-.thumb.PNG.d512904cc2a8aa009ee1525d93464ce2.PNG"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	لقد تعرفنا في هذا الدرس على مجموعة من دوال قواعد البيانات في الإكسل 365 أونلاين. حيث تُستخدم هذه الدوال لتصفية وتلخيص القيم في قواعد البيانات التي تتكون من مجموعة من السجلات والحقول المترابطة مع بعضها البعض. ويمكننا الآن إنشاء قاعدة البيانات على الإكسل؛ ومن ثم إنشاء نموذج البحث واستخدام الدوال المختلفة للحصول على مجموع القيم أو عددها أو الحصول على أكبر قيمة أو أقل قيمة، كما يمكننا حساب المتوسط الحسابي لمجموعة من الأرقام. كل هذه العمليات يمكن إجراؤها ضمن الشروط التي نحددها، وسنحصل على النتيجة بسهولة وسرعة باستخدام الدوال البسيطة.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r485/" rel="">مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D9%88%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%A3%D9%83%D8%AB%D8%B1-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85%D8%A7-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r484/" rel="">دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365 </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%A8%D9%88%D9%8A%D8%A8-%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D9%88%D9%85%D8%B2%D8%A7%D9%8A%D8%A7-%D8%A7%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%82%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r486/" rel="">تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">493</guid><pubDate>Mon, 16 Aug 2021 14:00:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62F;&#x648;&#x627;&#x644; &#x627;&#x644;&#x634;&#x627;&#x626;&#x639;&#x629; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646; 365</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_08/61125e1a84dc0_------365.png.6866dd72f801e5df36f4ef2c06ea7136.png" /></p>

<p>
	سنتعرف في هذه المقالة على الدوال الشائعة في إكسل أونلاين 365. ولإدراج دالة؛ فانقر على أيقونة الدالة في تبويب إدراج.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74073" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/1.png.1a2ba88131e6ca04f0f4f11a98c55222.png" rel=""><img alt="1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74073" data-unique="yethcl7xk" src="https://academy.hsoub.com/uploads/monthly_2021_08/1.png.1a2ba88131e6ca04f0f4f11a98c55222.png"></a>
</p>

<p>
	بعد النقر عليها سيظهر لك مربع حوار يطلب منك اختيار فئة الدالة وانتقاء الدالة التي ستستخدمها، وستظهر لك تلقائيًا فئة "شائعة الاستخدام" وهي الدوال شائعة الاستخدام في الإكسل، والتي تتضمن فئات دوال عديدة مثل الدوال المالية ودوال النصوص ودوال المالية وغيرها. سنشرح في هذه المقال فئةً "شائعة الاستخدام".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74084" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/2.png.a50829259a43a395ea77ffaa9d2225ac.png" rel=""><img alt="2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74084" data-unique="zka8b15z8" src="https://academy.hsoub.com/uploads/monthly_2021_08/2.png.a50829259a43a395ea77ffaa9d2225ac.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74095" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/3.png.2af6cc34e0b55fdbfaab8e3e5de4af1b.png" rel=""><img alt="3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74095" data-unique="w758kc0d6" src="https://academy.hsoub.com/uploads/monthly_2021_08/3.png.2af6cc34e0b55fdbfaab8e3e5de4af1b.png"></a>
</p>

<h2>
	ما هي الدوال شائعة الاستخدام؟
</h2>

<ol>
<li>
		<strong>SUM</strong>: مجموع القيم في نطاق يحتوي على الأرقام.
	</li>
	<li>
		<strong>AVERAGE</strong>: المتوسط الحسابي في نطاق يحتوي على الأرقام.
	</li>
	<li>
		<strong>COUNT</strong>: حساب عدد الخلايا الموجودة في نطاق يحتوي على أرقام.
	</li>
	<li>
		<strong>MAX</strong>: أكبر قيمة موجودة في مجموعة من القيم في نطاق يحتوي على أرقام.
	</li>
	<li>
		<strong>MIN</strong>: أصغر قيمة موجودة في مجموعة من القيم في نطاق يحتوي على أرقام.
	</li>
	<li>
		<strong>STDEV.S</strong>: تقدير الانحراف المعياري استنادًا إلى نموذج.
	</li>
	<li>
		<strong>IF</strong>: التأكد من تحقق الشرط وإرجاع قيمة معينة عند TRUE (تحقق الشرط)، وأخرى عند FALSE (عدم تحقق الشرط).
	</li>
	<li>
		<strong>SUMIF</strong>: جمع الخلايا المحددة بشرط أو معيار معطى.
	</li>
	<li>
		<strong>COUNTIF</strong>: حساب عدد الخلايا في نطاق يحقق الشرط أو المعيار المعطى.
	</li>
	<li>
		<strong>VLOOKUP</strong>: البحث عن قيمة في العمود في أقصى اليسار من جدول، ثم إرجاع قيمة في نفس الصف من عمود يحدده المستخدم.
	</li>
</ol>
<p>
	لفهم هذه الدوال، سنطبّقها على المثال التالي من البيانات:
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		<strong>ملاحظة</strong>: هذه البيانات عشوائية وليست بيانات حقيقية.
	</p>
</blockquote>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74102" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/4.png.0f8ebc90066c34d409804e407bca4232.png" rel=""><img alt="4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74102" data-unique="zmbwhxkvu" src="https://academy.hsoub.com/uploads/monthly_2021_08/4.png.0f8ebc90066c34d409804e407bca4232.png"></a>
</p>

<p>
	<strong>المطلوب، حساب القيم التالية</strong>:
</p>

<ol>
<li>
		مجموع الرسوم الدراسية للطلاب.
	</li>
	<li>
		المعدل العام لمعدلات الطلبة.
	</li>
	<li>
		عدد الطلاب.
	</li>
	<li>
		أعلى معدل جامعي.
	</li>
	<li>
		الانحراف المعياري للمعدلات.
	</li>
	<li>
		الحالة لكل طالب (الطالب ناجح إذا كان معدله 50 فما فوق).
	</li>
	<li>
		مجموع الرسوم الدراسية (الأكبر من 500).
	</li>
	<li>
		عدد الطلاب من "جامعة الأزهر".
	</li>
	<li>
		البحث عن المعدل الجامعي لأي طالب عن طريق معرفة رقم هويته.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74103" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/5.png.5d4569323b98b2642bd7b64cb85b4781.png" rel=""><img alt="5.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74103" data-unique="7va949hwj" src="https://academy.hsoub.com/uploads/monthly_2021_08/5.png.5d4569323b98b2642bd7b64cb85b4781.png"></a>
</p>

<p>
	في البداية يجب أن تتأكد من وضع المؤشر داخل الخلية التي ستظهر فيها نتيجة الدالة.
</p>

<h3>
	1. مجموع الرسوم الدراسية للطلاب
</h3>

<p>
	لحساب مجموع الرسوم الدراسية للطلاب سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على مجموع الرسوم الدراسية سنستخدم دالة Sum.
	</li>
	<li>
		نضع المؤشر داخل الخلية M2.
	</li>
	<li>
		من تبويب إدراج سنختار دالة.
	</li>
	<li>
		نختار دالة Sum. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لتجمعهم.
	</li>
	<li>
		نحدد عمود الرسوم الدراسية والذي يمثّل من الخلية G2 حتى الخلية G16.
	</li>
	<li>
		يظهر مجموع الرسوم الدراسية والذي يساوي 7393.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74104" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/6.png.f5b833b0d1fad8a05b316bafaa2950e8.png" rel=""><img alt="6.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74104" data-unique="3o4a322gc" src="https://academy.hsoub.com/uploads/monthly_2021_08/6.png.f5b833b0d1fad8a05b316bafaa2950e8.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74105" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/7.png.ba53fc0eef123cceba2d89a9997e2df5.png" rel=""><img alt="7.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74105" data-unique="wp7rq2ca2" src="https://academy.hsoub.com/uploads/monthly_2021_08/7.png.ba53fc0eef123cceba2d89a9997e2df5.png"></a>
</p>

<h3>
	2. المعدل العام لمعدلات الطلبة (الوسط الحسابي)
</h3>

<p>
	لحساب المعدل العام لمعدلات الطلبة سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على مجموع الرسوم الدراسية سنستخدم دالة Average.
	</li>
	<li>
		نضع المؤشر داخل الخلية M3.
	</li>
	<li>
		من تبويب إدراج نختار دالة.
	</li>
	<li>
		نختار دالة Average. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لحساب الوسط الحسابي.
	</li>
	<li>
		نحدد عمود الرسوم الدراسية والذي يمثّل من الخلية F2 حتى الخلية F16.
	</li>
	<li>
		يظهر الوسط الحسابي لمعدلات الطلبة والذي يساوي 69.5.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74106" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/8.png.46ce70360a480beb12703526a17de8f9.png" rel=""><img alt="8.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74106" data-unique="d8er471pe" src="https://academy.hsoub.com/uploads/monthly_2021_08/8.png.46ce70360a480beb12703526a17de8f9.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74107" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/9.png.257b45632024b93f727864c3a7230a0d.png" rel=""><img alt="9.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74107" data-unique="5tacuh61o" src="https://academy.hsoub.com/uploads/monthly_2021_08/9.png.257b45632024b93f727864c3a7230a0d.png"></a>
</p>

<p>
	حاول تطبيق ذات الدالة لحساب المتوسط الحسابي للرسوم الدراسية للطلاب.
</p>

<h3>
	3. عدد الطلاب
</h3>

<p>
	لحساب عدد الطلاب سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على عدد الطلاب سنستخدم دالة Count.
	</li>
	<li>
		نضع المؤشر داخل الخلية M4.
	</li>
	<li>
		من تبويب إدراج سنختار دالة.
	</li>
	<li>
		نختار دالة Count. لاحظ أن الدالة تطلب مجموعة من القيم value 1 وvalue 2 لعدّهم.
	</li>
	<li>
		نحدد عمود الرسوم الدراسية والذي يمثّل من الخلية F2 حتى الخلية F16، ويمكنك أيضًا تحديد عمود المعدل الجامعي بدلًا من عمود الرسوم الدراسية، لكن انتبه إلى أن دالة Count تَعُد فقط الخلايا التي تحتوي على أرقام، فلا يمكنك مثلًا تحديد عمود الاسم.
	</li>
	<li>
		يظهر عدد الطلاب والذي يساوي 15.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74074" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/10.png.3765662e74c5ad260225594eebc6672a.png" rel=""><img alt="10.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74074" data-unique="p6i6jkb7r" src="https://academy.hsoub.com/uploads/monthly_2021_08/10.png.3765662e74c5ad260225594eebc6672a.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74075" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/11.png.83eb2c1348e4783851f16b532453505f.png" rel=""><img alt="11.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74075" data-unique="mcl89eqya" src="https://academy.hsoub.com/uploads/monthly_2021_08/11.png.83eb2c1348e4783851f16b532453505f.png"></a>
</p>

<h3>
	4. أعلى معدل جامعي
</h3>

<p>
	لحساب أعلى معدل جامعي سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على أعلى معدل جامعي سنستخدم دالة Max.
	</li>
	<li>
		نضع المؤشر داخل الخلية M5.
	</li>
	<li>
		من تبويب إدراج، نختار دالة.
	</li>
	<li>
		نختار دالة Max. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لموازنتهم وإرجاع أعلى قيمة فيهم.
	</li>
	<li>
		نحدد عمود المعدل الجامعي والذي يمثّل من الخلية F2 حتى الخلية F16.
	</li>
	<li>
		سيظهر أعلى معدل جامعي والذي يساوي 94.2.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74076" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/12.png.ed314e7fcd786d8fced7c8929868a21d.png" rel=""><img alt="12.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74076" data-unique="wtx1lh26d" src="https://academy.hsoub.com/uploads/monthly_2021_08/12.png.ed314e7fcd786d8fced7c8929868a21d.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74077" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/13.png.9305c297b09b93fb6bcda28a21ae07fb.png" rel=""><img alt="13.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74077" data-unique="hff44ks6n" src="https://academy.hsoub.com/uploads/monthly_2021_08/13.png.9305c297b09b93fb6bcda28a21ae07fb.png"></a>
</p>

<h3>
	5. أقل معدل جامعي
</h3>

<p>
	لحساب أقل معدل جامعي سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على أقل معدل جامعي سنستخدم دالة Min.
	</li>
	<li>
		نضع المؤشر داخل الخلية M6.
	</li>
	<li>
		من تبويب إدراج، نختار دالة.
	</li>
	<li>
		نختار دالة Min. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لموازنتهم وإرجاع أقل قيمة فيهم.
	</li>
	<li>
		نحدد عمود المعدل الجامعي والذي يمثّل من الخلية F2 حتى الخلية F16.
	</li>
	<li>
		يظهر أعلى معدل جامعي والذي يساوي 50.98.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74078" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/14.png.c3237172ffd418d05213cfcf61a88a21.png" rel=""><img alt="14.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74078" data-unique="jxwq7nk4s" src="https://academy.hsoub.com/uploads/monthly_2021_08/14.png.c3237172ffd418d05213cfcf61a88a21.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74079" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/15.png.392dcf8641d0a2cd4626e4ff8af57c89.png" rel=""><img alt="15.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74079" data-unique="ss4lkzpm8" src="https://academy.hsoub.com/uploads/monthly_2021_08/15.png.392dcf8641d0a2cd4626e4ff8af57c89.png"></a>
</p>

<h3>
	6. الانحراف المعياري للمعدلات
</h3>

<p>
	لحساب الانحراف المعياري للمعدلات سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على الانحراف المعياري للمعدلات سنستخدم دالة STEDV.S.
	</li>
	<li>
		نضع المؤشر داخل الخلية M7.
	</li>
	<li>
		من تبويب إدراج، نختار دالة.
	</li>
	<li>
		نختار دالة STEDV.S. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لحساب الانحراف المعياري.
	</li>
	<li>
		نحدد عمود المعدل الجامعي والذي يمثّل من الخلية F2 حتى الخلية F16.
	</li>
	<li>
		يظهر الانحراف المعياري للمعدلات والذي يساوي 50.98.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74080" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/16.png.e517b162fee2ff67820abe994058b8b2.png" rel=""><img alt="16.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74080" data-unique="9hwhkjr70" src="https://academy.hsoub.com/uploads/monthly_2021_08/16.png.e517b162fee2ff67820abe994058b8b2.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74081" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/17.png.1010b857146868915e3fac42d4122879.png" rel=""><img alt="17.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74081" data-unique="849rd39x3" src="https://academy.hsoub.com/uploads/monthly_2021_08/17.png.1010b857146868915e3fac42d4122879.png"></a>
</p>

<h3>
	7. مجموع الرسوم الدراسية
</h3>

<p>
	لحساب مجموع الرسوم الدراسية الأكبر من 500، سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على مجموع الرسوم الدراسية (الأكبر من 500) سنستخدم دالة SumIf، حيث أننا هنا نريد مجموع قيم لكن بشرط معين.
	</li>
	<li>
		نضع المؤشر داخل الخلية M7.
	</li>
	<li>
		من تبويب إدراج، نختار دالة.
	</li>
	<li>
		نختار دالة SumIf.
	</li>
	<li>
		ستلاحظ أن هذه الدالة تحتاج قيمتين، نطاق الخلايا التي تريد جمعها (عمود الرسوم الدراسية) وهي range، والشرط الذي ستحدده والشرط هنا (الأكبر من 500) وهو criteria، ويُفصل بينهم بالفاصلة (,).
	</li>
	<li>
		نحدد عمود الرسوم والذي يمثّل من الخلية G2 حتى الخلية G16، ونضيف الشرط “&gt;500”. لا تنسَ علامات التنصيص عند إضافة الشرط.
	</li>
	<li>
		يظهر مجموع الرسوم الدراسية (الأكبر من 500) والذي يساوي 5167.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74082" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/18.png.e2d1a9dd5988c901cf4af0ae72370186.png" rel=""><img alt="18.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74082" data-unique="0t27za2ak" src="https://academy.hsoub.com/uploads/monthly_2021_08/18.png.e2d1a9dd5988c901cf4af0ae72370186.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74083" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/19.png.5bad741d70742acdfdfc454c935a363a.png" rel=""><img alt="19.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74083" data-unique="m7dhsmsvj" src="https://academy.hsoub.com/uploads/monthly_2021_08/19.png.5bad741d70742acdfdfc454c935a363a.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74085" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/20.png.81ab0e8501f687800b80f376a0865e63.png" rel=""><img alt="20.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74085" data-unique="6emi65rf1" src="https://academy.hsoub.com/uploads/monthly_2021_08/20.png.81ab0e8501f687800b80f376a0865e63.png"></a>
</p>

<h3>
	8. عدد الطلاب من جامعة الأزهر
</h3>

<p>
	لحساب عدد الطلاب الذين يدرسون في جامعة الأزهر، سنتبع الخطوات التالية:
</p>

<ol>
<li>
		للحصول على عدد الطلاب من جامعة الأزهر سنستخدم دالة CountIf، حيث أننا هنا نريد عدد مجموعة من القيم، لكن بشرط معين.
	</li>
	<li>
		نضع المؤشر داخل الخلية M8.
	</li>
	<li>
		من تبويب إدراج، نختار دالة.
	</li>
	<li>
		نختار دالة CountIf.
	</li>
	<li>
		ستلاحظ أن هذه الدالة تحتاج قيمتين، نطاق الخلايا التي تريد عددها (الجامعة/الكلية) وهي range، والشرط الذي ستحدده والشرط هنا "جامعة الأزهر" وهو criteria، ويُفصل بينهم بالفاصلة (,).
	</li>
	<li>
		نحدد عمود الرسوم الذي يمثّل من الخلية E2 حتى الخلية E16، ونضيف الشرط "جامعة الأزهر".
	</li>
	<li>
		يظهر عدد الطلاب من جامعة الأزهر والذي يساوي 2.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74086" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/21.png.7602968c1d6adfc778437ef4b4b0cb02.png" rel=""><img alt="21.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74086" data-unique="ptl9w1d4r" src="https://academy.hsoub.com/uploads/monthly_2021_08/21.png.7602968c1d6adfc778437ef4b4b0cb02.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74087" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/22.png.30f0013e5b6888f43c1087d8f6991c67.png" rel=""><img alt="22.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74087" data-unique="qdah8clpr" src="https://academy.hsoub.com/uploads/monthly_2021_08/22.png.30f0013e5b6888f43c1087d8f6991c67.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74088" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/23.png.2103ed1ab168ab09c70199a94133119d.png" rel=""><img alt="23.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74088" data-unique="mgqsvowgz" src="https://academy.hsoub.com/uploads/monthly_2021_08/23.png.2103ed1ab168ab09c70199a94133119d.png"></a>
</p>

<h3>
	9. الحالة لكل طالب
</h3>

<p>
	لتحديد حالة كل طالب (راسب أو ناجح)، سنتبع الخطوات التالية:
</p>

<ol>
<li>
		لتحديد حالة كل طالب سنستخدم دالة If. إذا كان معدل الطالب أكبر من أو يساوي 50 فإن الطالب ناجحًا، غير ذلك فإن الطالب يُعَد راسبًا.
	</li>
	<li>
		نضع المؤشر داخل أول خلية في عمود الحالة وهو H2. لاحظ هنا أننا سنحصل على حالة أول طالب فقط، ثم سنطبّق على باقي الطلبة.
	</li>
	<li>
		من تبويب إدراج، نختار دالة.
	</li>
	<li>
		نختار دالة If.
	</li>
	<li>
		ستلاحظ أن هذه الدالة تحتاج 3 قيم:
		<ul>
<li>
				Logical test: هو الشرط الذي يوازن بين قيمتين، ففي هذا المثال مثلًا، سوف نوازن معدل الطالب بالقيمة 50، فهل معدل الطالب أكبر من أو يساوي 50 أم لا؟ وذلك لتحديد الطالب ناجحًا أم راسبًا. والشرط هنا إذًا هو معدل الطالب <code>&gt;=50</code> ونكتبها كالتالي <code>F2&gt;=50. F2</code> هي الخلية التي تحتوي على معدل أول طالب في ورقة العمل.
			</li>
			<li>
				Value if true: هي القيمة التي ستُرجع في الخلية إذا تحقق الشرط. والقيمة هنا هي "ناجح".
			</li>
			<li>
				Value if false: هي القيمة التي ستُرجع في الخلية إذا لم يتحقق الشرط. والقيمة هنا هي "راسب".
			</li>
		</ul>
</li>
	<li>
		سنحصل على حالة أول طالب وهي "ناجح".
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74089" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/24.png.ba109f06738feddcd77526c153f865bb.png" rel=""><img alt="24.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74089" data-unique="n69ck7pgk" src="https://academy.hsoub.com/uploads/monthly_2021_08/24.png.ba109f06738feddcd77526c153f865bb.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74090" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/25.png.874045e538b09630aca06d3579ce45b2.png" rel=""><img alt="25.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74090" data-unique="ff7d0xie8" src="https://academy.hsoub.com/uploads/monthly_2021_08/25.png.874045e538b09630aca06d3579ce45b2.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74091" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/26.png.ca311555d3f21524603f3875dfeb57cf.png" rel=""><img alt="26.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74091" data-unique="grdcignva" src="https://academy.hsoub.com/uploads/monthly_2021_08/26.png.ca311555d3f21524603f3875dfeb57cf.png"></a>
</p>

<ol start="7">
<li>
		لتطبيق الدالة على باقي الطلبة ومعرفة حالتهم؛ ضع المؤشر على الخلية واسحب المربع الأخضر للأسفل لتطبيق الدالة على باقي الخلايا، وستلاحظ أن كافة الطلبة حالتهم "ناجح".
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74092" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/27.png.b5ce7e4674d554376d774587b6272c5b.png" rel=""><img alt="27.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74092" data-unique="6co0aixxl" src="https://academy.hsoub.com/uploads/monthly_2021_08/27.png.b5ce7e4674d554376d774587b6272c5b.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74093" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/28.png.94d234d53421beeb64637e78b3428497.png" rel=""><img alt="28.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74093" data-unique="249k596xh" src="https://academy.hsoub.com/uploads/monthly_2021_08/28.png.94d234d53421beeb64637e78b3428497.png"></a>
</p>

<ol start="8">
<li>
		تتميّز دول الإكسل، بأنها ديناميكية أي أن ناتجها يتغير بتغيّر قيم الخلايا. حاوِل تغيير المعدل الجامعي لأول ثلاثة طلاب في ورقة العمل للقيم التالية 40 و50 و30، ولاحظ تغيّر نتيجة الحالة.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74094" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/29.png.45b5351b516f8e55e7b39947110845b0.png" rel=""><img alt="29.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74094" data-unique="vkpaavqxc" src="https://academy.hsoub.com/uploads/monthly_2021_08/29.png.45b5351b516f8e55e7b39947110845b0.png"></a>
</p>

<h3>
	9. البحث عن المعدل الجامعي لأي طالب عن طريق معرفة رقم هويته
</h3>

<p>
	أشهر دوال البحث في الإكسل هي دالة <code>Vlookup</code>. لاستخدام هذه الدالة يجب أن تكون القيمة التي تميّز البيانات (القيمة الفريدة التي لا تتكرر) موجودةً في العمود الأول من ورقة العمل، وفي المثال التالي القيمة المميّزة للطالب في مثالنا هي رقم الهوية.
</p>

<p>
	لإنشاء دالة البحث سنتبع الخطوات التالية:
</p>

<ol>
<li>
		أنشئ ورقة عمل جديدة وانسخ فيها البيانات على أن يكون عمود رقم الهوية هو العمود الأول في ورقة العمل. افترض أن العمود الأول في ورقة العمل (رقم الهوية) هو عمود رقم 1، والعمود الثاني في ورقة العمل (الاسم الأول) هو عمود رقم 2، وهكذا.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74096" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/30.png.8de1e407954df3e7cf301ac0ec4d9631.png" rel=""><img alt="30.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74096" data-unique="rm9ppagvy" src="https://academy.hsoub.com/uploads/monthly_2021_08/30.png.8de1e407954df3e7cf301ac0ec4d9631.png"></a>
</p>

<ol start="2">
<li>
		أنشئ نموذج البحث الخاص بك، والذي سنبحث فيه عن المعدل الجامعي لأي طالب بمعرفة رقم هويته. تُعَد خلية رقم الهوية K4 هي الخلية التي سنكتب فيها رقم الهوية الذي نبحث عنه، وبالتالي لا نُدرج فيها دالة؛ أما خلية المعدل الجامعي فهي التي ستظهر تلقائيًا عند إدخال رقم الهوية. وبالتالي سنُدرج الدالة في خلية المعدل الجامعي وهي L4.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74097" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/31.png.15b54a2e53eb21c71af1d911b4012fc6.png" rel=""><img alt="31.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74097" data-unique="ece7vu300" src="https://academy.hsoub.com/uploads/monthly_2021_08/31.png.15b54a2e53eb21c71af1d911b4012fc6.png"></a>
</p>

<ol start="3">
<li>
		<p>
			نضع المؤشر داخل خلية L4.
		</p>
	</li>
	<li>
		<p>
			من تبويب إدراج، نختار دالة.
		</p>
	</li>
	<li>
		<p>
			نختار دالة <code>Vlookup</code>.
		</p>
	</li>
	<li>
		<p>
			ستلاحظ أن هذه الدالة تحتاج 4 قيم:
		</p>

		<ul>
<li>
				قيمة البحث Lookup value: القيمة التي تريد البحث عنها والتي تسمى قيمة البحث، وهنا هي خلية رقم الهوية K4.
			</li>
			<li>
				قيمة البحث Table array: النطاق الذي تقع فيه قيمة البحث. تذكّر أنه يجب أن تكون قيمة البحث دائمًا في العمود الأول في نطاق الدالة لكي تعمل بطريقة صحيحة. وهنا نطاق البيانات هو A2:I6. لاحظ أن عناوين الجدول ليست ضمن النطاق.
			</li>
			<li>
				رقم العمود في النطاق Col index num: وهو رقم العمود في النطاق الذي يحتوي على القيمة المرجعة. العمود الذي يحتوي على القيمة المرجعة هو (المعدل الجامعي)، ورقمه 6.
			</li>
			<li>
				بحث المدى Range lookup: يمكنك تحديد TRUE إذا كنت تريد تطابقًا تقريبيًا للقيمة المرجحة، أو FALSE إذا كنت تريد تطابقًا تامًا. إذا لم تحدد أي شيء فستكون القيمة الافتراضية هي TRUE.
			</li>
		</ul>
<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74098" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/32.png.2ea85b85cb495fd020515641036ef1d5.png" rel=""><img alt="32.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74098" data-unique="s3m9shdj2" src="https://academy.hsoub.com/uploads/monthly_2021_08/32.png.2ea85b85cb495fd020515641036ef1d5.png"></a>
		</p>

		<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74099" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/33.png.6d5d5d659c9149ca5f53df553c8bdb08.png" rel=""><img alt="33.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74099" data-unique="2g70usjhd" src="https://academy.hsoub.com/uploads/monthly_2021_08/33.png.6d5d5d659c9149ca5f53df553c8bdb08.png"></a>
		</p>
	</li>
	<li>
		<p>
			ستلاحظ أن نتيجة الدالة هي <code>#N/A</code> في حال كانت خلية رقم الهوية فارغة.
		</p>

		<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74100" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/34.png.f97e282dc9401b3610232966ed30a322.png" rel=""><img alt="34.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74100" data-unique="30teevqgw" src="https://academy.hsoub.com/uploads/monthly_2021_08/34.png.f97e282dc9401b3610232966ed30a322.png"></a>
		</p>
	</li>
	<li>
		<p>
			أدخل رقم هوية أحد الطلاب، وستلاحظ ظهور معدله الجامعي في خلية المعدل الجامعي.
		</p>

		<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="74101" data-ss1628593270="1" data-ss1628593444="1" href="https://academy.hsoub.com/uploads/monthly_2021_08/35.png.233bb91d6bbcfb89c84f83a68a267967.png" rel=""><img alt="35.png" class="ipsImage ipsImage_thumbnailed" data-fileid="74101" data-unique="vkt7duju1" src="https://academy.hsoub.com/uploads/monthly_2021_08/35.thumb.png.f127478578d6bd5247e255df550c8b59.png"></a>
		</p>
	</li>
</ol>
<p>
	تعرفنا في هذه المقالة على الدوال الشائعة في إكسل أونلاين 365 وهي Sum وAverage وCount وSumIf وCountIf وVlooup وIf وMin وMax وSTEDV.S، كما تعرفنا على فائدة كل دالة منهم وطريقة كتابتها والعناصر التي تحتويها. وبهذا بات بإمكانك الآن استخدام هذه الدوال مع بياناتك للحصول على نتائج سريعة لتقاريرك، مثل مجموع قيم معينة وأعلى قيمة وأقل قيمة، والبحث عن قيمة محددة والمتوسط الحسابي، وعدد قيم وعدد قيم حسب شرط محدد.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r485/" rel="">مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%A8%D9%88%D9%8A%D8%A8-%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D9%88%D9%85%D8%B2%D8%A7%D9%8A%D8%A7-%D8%A7%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%82%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r486/" rel="">تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/7-%D8%AF%D9%88%D8%A7%D9%84-%D9%84%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D8%A5%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA-%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D9%86%D8%B5%D9%88%D8%B5-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r232/" rel="">7 دوال لتطبيق إجراءات مختلفة على النصوص في اكسل</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r225/" rel="">دوال الوقت الأساسية في اكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">487</guid><pubDate>Tue, 10 Aug 2021 19:36:15 +0000</pubDate></item><item><title>&#x62A;&#x628;&#x648;&#x64A;&#x628; &#x625;&#x62F;&#x631;&#x627;&#x62C; &#x648;&#x645;&#x632;&#x627;&#x64A;&#x627; &#x627;&#x644;&#x645;&#x634;&#x627;&#x631;&#x643;&#x629; &#x648;&#x627;&#x644;&#x62A;&#x639;&#x644;&#x64A;&#x642;&#x627;&#x62A; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646; 365</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%A8%D9%88%D9%8A%D8%A8-%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D9%88%D9%85%D8%B2%D8%A7%D9%8A%D8%A7-%D8%A7%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%82%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r486/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cc0d69df_---------365.png.3490edf486162ef003be69f4c626764b.png" /></p>

<p>
	بعد أن تعرفنا على <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r485/" rel="">تبويب الصفحة الرئيسية</a> وما يحويه من أدوات وخصائص، سنتعرّف اليوم على تبويب <strong>إدراج</strong> أحد التبويات المهمة والكثيرة الاستخدام في تطبيق الاكسل، حيث يمكنك من خلاله إدراج عناصر مختلفة مثل صور وأشكال ودوال ومخططات وغيرها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73748" href="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccb0d452_1-.png.2743eaca626879bdc6ab23561e941985.png" rel=""><img alt="1-تبويب إدراج.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73748" data-unique="t509774cb" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccb0d452_1-.png.2743eaca626879bdc6ab23561e941985.png"></a>
</p>

<h2>
	أولا: تبويب إدراج
</h2>

<p>
	سنتعرف على عناصر تبويب <strong>إدراج</strong> بالتطبيق على البيانات التالية:
</p>

<p style="text-align: center;">
	<img alt="2_بيانات الطلاب.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73818" data-unique="sj8qmuzu7" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124e7c3b046_2_.png.b6b33d6d1164fb6ebb404a26daa03900.png" style=""></p>

<h3>
	1. إدراج دالة
</h3>

<p>
	يمكنك إدراج دالة من خلال الضغط على أيقونة الدالة.
</p>

<p style="text-align: center;">
	<img alt="3_أيقونة الدالة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73819" data-unique="hj2f4sz5m" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124e7ec1aa3_3_.png.0ce471f5e99872cd77a618cf418904c8.png" style=""></p>

<p>
	بعد الضغط عليها سيظهر لك مربع حوار يطلب منك انتقاء الدالة واختيار فئتها. تلقائيًا ستظهر لك فئة "شائعة الاستخدام" وهي الدوال شائعة الاستخدام عند مستخدمي الإكسل مثل دوال Sum وAverage وCount.
</p>

<p style="text-align: center;">
	<img alt="4-إدراج دالة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73820" data-unique="6cvk9z5la" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124e81461af_4-.png.9acfbcd7cae44739812234ee9be2df68.png" style=""></p>

<p>
	فئات الدوال عديدة مثل الدوال المالية ودوال النصوص ودوال الإحصاء وغيرها.
</p>

<p style="text-align: center;">
	<img alt="5_فئات الدوال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73821" data-unique="oqo3455mg" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124e8411e49_5_.png.03b3c70d95a268adc11f680b29c56d16.png" style=""></p>

<p>
	نفترض أننا نريد حساب المعدل العام للطلاب أي المتوسط الحسابي لمعدلات الطلاب. لتحقيق ذلك سنضع المؤشر في الخلية التي ستظهر فيها نتيجة الدالة، وسنستخدم دالة Average التي تُرجع المتوسط الحسابي لمجموعة من القيم. لاحظ أنه عند تحديدك لأي دالة، سيظهر لك في أسفل مربع الحوار شرح يوضح الهدف من الدالة.
</p>

<p style="text-align: center;">
	<img alt="6_دالة المتوسط الحسابي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73813" data-unique="j02aipnxx" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ceb50b7a_6_.png.5424b60a904bc4bc8c3ee34973e7997c.png" style=""></p>

<p>
	سيطلب منك تحديد القيم التي ستحسب متوسطها الحسابي. سنحدد المعدلات الخمسة للطلاب، ومن ثم نضغط على مفتاح Enter لتظهر النتيجة، وهنا ستظهر النتيجة في الخلية التي وضعت المؤشر فيها مسبقًا.
</p>

<p style="text-align: center;">
	<img alt="7_دالة المتوسط الحسابي2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73815" data-unique="6gi8gr5jd" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cec3a376_7_2.png.97e98c725cbde03e1e5611a1d296c9d6.png" style=""></p>

<p style="text-align: center;">
	<img alt="8_دالة المتوسط الحسابي3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73816" data-unique="kesg3z5nc" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cec8f41c_8_3.png.cc2a68cccac7f3231dd09e0022134c5b.png" style=""></p>

<p style="text-align: center;">
	<img alt="9-المتوسط الحسابي 4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73817" data-unique="kkxiocl5y" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ceceeb17_9-4.png.8800154da00db1e5f25cfd1c600a6577.png" style=""></p>

<h3>
	2. التوضيحات
</h3>

<p>
	يمكنكمن خلال عنصر التوضيحات، أن تُدرِج صورةً من جهازك أو إدراج شكل وتنسيقه.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73749" href="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccb6e150_10_.png.e30e262a36278620cb77583c26026d3e.png" rel=""><img alt="10_التوضيحات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73749" data-unique="keklabt4h" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccb6e150_10_.png.e30e262a36278620cb77583c26026d3e.png"></a>
</p>

<h4>
	إدراج صورة
</h4>

<p>
	اضغط على "صورة"، حيث سيظهر لك مربع حوار يطلب منك اختيار الصورة، لهذا اختر الصورة ومن ثم اضغط على إدراج.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73750" href="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccbbb147_11_.png.2a7691b6079a6cab6d50bdc3ca4e1b2c.png" rel=""><img alt="11_إدراج صورة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73750" data-unique="5ds2qwybu" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccbbb147_11_.png.2a7691b6079a6cab6d50bdc3ca4e1b2c.png"></a>
</p>

<p>
	وهنا أدرجنا صورةً لشعار "أكاديمية حسوب" على يسار البيانات في ورقة العمل على سبيل المثال.
</p>

<p style="text-align: center;">
	<img alt="12_إدارج صورة أكاديمية حسوب.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73751" data-unique="349txgjew" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccc6eb9b_12_.png.481df862c34220824004ae033d9dc8f7.png" style=""></p>

<h4>
	إدراج شكل
</h4>

<p>
	لإدراج شكل، اضغط على "الأشكال"، حيث ستظهر لك مجموعة من خيارات الأشكال. اضغط على أحد الأشكال وادرجه في ورقة العمل، واختر على سبيل المثال شكل مستطيل مستدير الزوايا.
</p>

<p style="text-align: center;">
	<img alt="13_إدراج شكل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73752" data-unique="ujy73mosk" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cccd8f03_13_.png.c608ae010fc47ab057dd274513968fb6.png" style=""></p>

<p style="text-align: center;">
	<img alt="14_ادراج شكل مستطيل مستدير الزوايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73753" data-unique="3lj1pcsfg" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccd4200a_14_.png.d2f592438e4682ab2e6b2577771c8bc8.png" style=""></p>

<p>
	سيظهر لك مباشرةً تبويب جديد اسمه "تنسيق"، والذي يمكنك من خلاله تنسيق الشكل بخيارات متعددة.
</p>

<p style="text-align: center;">
	<img alt="15_إدراج شكل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73754" data-unique="cuugh61dc" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccd95dc8_15_.png.772ef6a02e838d89d372842283d81e4c.png" style=""></p>

<p>
	يمكنك تغيير الشكل ونمطه ولون تعبئته، وكذلك شكل ولون إطاره. ويمكنك اختيار نمط جاهز من أنماط الأشكال، لهذا أضف التنسيقات اللي تراها مناسبةً للشكل، وتأكد من أنك أضفت إطارًا وتعبئة.
</p>

<p style="text-align: center;">
	<img alt="16_تغيير الشكل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73755" data-unique="jgqdu5vpf" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccdeac1a_16_.png.84fc85d452ad8e0d5957844cd945ecb7.png" style=""></p>

<p style="text-align: center;">
	<img alt="17_تنسيق إطار الشكل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73756" data-unique="cjwt2t6mh" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cce52889_17_.png.d4c86ea870348bc0464871805d90d2aa.png" style=""></p>

<p>
	يمكنك أيضًا تنسيق الشكل مباشرةً بدون استخدام تبويب "تنسيق"، وذلك بالضغط على الشكل بزر الفأرة الأيمن، حيث ستظهر لك نفس الخيارات التي تحدثنا عنها مسبقًا لتنسيق الشكل.
</p>

<p style="text-align: center;">
	<img alt="18_تنسيق سريع للشكل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73757" data-unique="o5ocboypt" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ccec7387_18_.png.d0f7e1b06d34554c9b09eb48773d9cc3.png" style=""></p>

<p style="text-align: center;">
	<img alt="19_أنماط الأشكال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73758" data-unique="93yqj98q0" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd185886_19_.png.d3c8ad88b2fe4385c28fc17e9707d78b.png" style=""></p>

<h3>
	3. المخططات
</h3>

<p>
	يمكنك إدراج المخططات بأنواعها المختلفة وتنسيقها، والتحكم بها باستخدام عنصر المخططات.
</p>

<p style="text-align: center;">
	<img alt="20_المخططات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73759" data-unique="nfq7k89bq" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd1d9ab4_20_.png.ca89387ab7d8045e073fec603c31752b.png" style=""></p>

<p>
	نفترض أننا سندرج شكلًا بيانيًا يوضح معدلات الطلاب وتفاوتها. نحدد عمود المعدل الجامعي (البيانات التي سنمثّلها في المخطط) ومن ثم سنختار الشكل "العمودي"، حيث أنه المناسب لطبيعة البيانات.
</p>

<p style="text-align: center;">
	<img alt="21_مخطط عمودي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73760" data-unique="rnm5eq4zx" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd29f42f_21_.png.68a58ca58ac50331c79ff1015f4d7e7c.png" style=""></p>

<p>
	سيظهر المخطط كالشكل التالي، وسيظهر في نفس ورقة العمل التي تعمل عليها، بحيث يمكنك الاستمرار على نفس الورقة، أو نقله إلى ورقة أخرى باستخدام خاصتي القص واللصق.
</p>

<p style="text-align: center;">
	<img alt="22_إدراج مخطط عمودي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73761" data-unique="9cklamuqy" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd329162_22_.png.646dad516a83a5bdc263848787698fd3.png" style=""></p>

<p>
	لاحظ ظهور تبويب جديد اسمه "مخطط" للتحكم في المخطط. هذا التبويب سيظهر فقط في حال تحديد المخطط في ورقة العمل.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73762" href="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd3986a9_23_.png.2fdcc22ecbbcf1fe2eae29b884667d6e.png" rel=""><img alt="23_تبويب مخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73762" data-unique="go07u0dwj" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd47a529_23_.thumb.png.7c64cb098fb75f34a0296236d22eeab6.png" style=""></a>
</p>

<p>
	ويمكنك من خلال هذا التبويب أن تغيّر البيانات ونطاقها، وأن تغيّر نوع المخطط، وأن تعدّل خصائص المخططأيضًا، مثل عنوانه وعناوين المحاور، وأن تُظهر أو تخفي خطوط الشبكة الأفقية والرأسية، وكذلك أن تغيّر تنسيق المخطط.
</p>

<p>
	لتغيير نطاق البيانات يمكنك الضغط على "تحديد البيانات"، سيظهر مربع حوار يطلب منك اختيار نطاق البيانات الجديد.
</p>

<p style="text-align: center;">
	<img alt="24_تحديد نطاق بيانات المخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73763" data-unique="o007v67ff" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd52b921_24_.png.a76779b624a1675b3af64f9ed7e1f237.png" style=""></p>

<p>
	يمكنك أيضًا تغيير نوع المخطط، حيث يمكنك تغييره مثلًا من عمودي إلى شريطي ليصبح مستطيلات أفقيةً بدلًا من مستطيلات عمودية.
</p>

<p style="text-align: center;">
	<img alt="25_مخطط شريطي أفقي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73764" data-unique="gap1iyzer" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd5bb954_25_.png.5692451bfe1576872322dcc14cc2d398.png" style=""></p>

<p>
	يمكنك أيضًا إضافة عنوان للمخطط، حيث ستُستبدل كلمة "عنوان المخطط" بالعنوان الذي أضفته.
</p>

<p style="text-align: center;">
	<img alt="26_تحرير عنوان المخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73765" data-unique="q5k8s803q" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd63e3f7_26_.png.ba3e45b15cf5fae2b27aa3bc085f4cb5.png" style=""></p>

<p>
	يمكنك كذلك تغيير مكان عنوان المخطط، مثل جعله أعلى المخطط، أو جعله يتوسط المخطط نفسه، أو عدم عرض العنوان.
</p>

<p style="text-align: center;">
	<img alt="27_تحديد مكان عنوان المخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73766" data-unique="xh9osycux" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd6a926b_27_.png.84a2e34872d6499e8f704b367b18d5f5.png" style=""></p>

<p>
	كما يمكنك عرض أو إخفاء عناوين المحاور الأفقية والرأسية، أو تغيير اسمها.
</p>

<p style="text-align: center;">
	<img alt="28_عناوين المحاور.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73767" data-unique="srer01rab" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd71c311_28_.png.8d33de6cd1e7300e4b3cc5b8f0771b21.png" style=""></p>

<p>
	يمكنك أيضًا إضافة أو إخفاء وسيلة إيضاح المخطط، وهذه يمكن استخدامها في حالات وجود بيانات كثيرة في المخطط وترغب في تمييزها بألوان مختلفة مثل اللون الأزرق لمعدلات طلبة كلية الهندسة، واللون الأحمر لمعدلات طلبة كلية الآداب.
</p>

<p style="text-align: center;">
	<img alt="29_وسيلة الإيضاح.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73768" data-unique="jvhps4ptl" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd787056_29_.png.86bf45610d433ab75990e343f8ed3c31.png" style=""></p>

<p>
	كما يمكنك عرض أو إخفاء تسمية البيانات، ويقصد هنا بالبيانات؛ "قيم المعدل الجامعي"، حيث يمكننا إظهار المعدلات خارج نهاية نقطة عمود المعدل الجامعي على سبيل المثال.
</p>

<p style="text-align: center;">
	<img alt="30_تسميات البيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73770" data-unique="5e5227rk7" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd8b3f90_30_.png.47ded9c2c2a60aec605ec2e1460bd867.png" style=""></p>

<p>
	يمكننا أيضًا إظهار جدول توضيحي للبيانات باستخدام خاصية "جدول البيانات". ويمكنك إظهار جدول للبيانات أسفل المخطط أو إخفائه.
</p>

<p style="text-align: center;">
	<img alt="31_جدول البيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73771" data-unique="cyr0ge7cd" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd918056_31_.png.a11b976b87231ff6dc2bacb703f49cc7.png" style=""></p>

<p>
	أيضًا بامكانك عرض أو إخفاء المحاور الأفقية والرأسية للشبكة، كما يمكنك تغيير قيمة عرض المحور العمودي لإظهارها بالآلاف أو الملايين أو البلايين، أو اختيار عرضها بالترتيب الافتراضي حسب البيانات المعطاة.
</p>

<p style="text-align: center;">
	<img alt="32_المحاور.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73772" data-unique="ks4vjx7e5" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cd987174_32_.png.87f126244be3a724b62b91429e5a956b.png" style=""></p>

<p>
	كما يمكنك إظهار أو إخفاء عرض خطوط الشبكات الأفقية والعمودية سواءً الخطوط الرئيسية أو الثانوية.
</p>

<p style="text-align: center;">
	<img alt="33_خطوط الشبكة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73773" data-unique="g2rkjogj5" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cda0dd00_33_.png.58a7873810cdcac15d5301eb6b21f8d6.png" style=""></p>

<p>
	يمكنك أيضًأ تنسيق المخططات تنسيقًا سريعًا من استخدام الخصائص السابقة. وستجد أغلب الخصائص التي ذكرناها مسبقًا متاحةً في خاصية التنسيق.
</p>

<p style="text-align: center;">
	<img alt="34_أيقونة تنسيق مخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73774" data-unique="6p2mqspm9" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cda540c1_34_.png.2f4a9349723d44b9a9aa0031c209e376.png" style=""></p>

<p style="text-align: center;">
	<img alt="35_قائمة تنسيق مخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73775" data-unique="azqnvpmzs" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cda9eea8_35_.png.d2eaad91562fd067150ed866af92de70.png" style=""></p>

<p>
	يمكنك تنسيق وتحرير تنسيق عنوان المخطط وتنسيق جدول البيانات مثلًا كالتالي:
</p>

<p style="text-align: center;">
	<img alt="36_قائمة تنسيق عنوان المخطط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73776" data-unique="049iwr1ln" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdb17ed3_36_.png.e337739305f648966568125fca528687.png" style=""></p>

<p style="text-align: center;">
	<img alt="37_قائمة تنسيق جدول البيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73777" data-unique="9cd02tpnh" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdb6767c_37_.png.f5c3f7fd9dd6968759adba2ed3490ed1.png" style=""></p>

<p>
	لاحظ أن المخطط الذي حصلنا عليه يمثّل معدلات الطلاب، لكن لو أردنا إظهار اسم الطالب صاحب كل معدل؛ فيمكننا عمل ذلك بتحديد عمودي المعدل والاسم. يمكنك تحديد العمودين معًا بتحديد عمود المعدل الجامعي واستمرار الضغط على مفتاح <code>Ctrl</code> من لوحة المفاتيح وتحديد عمود إسم الطالب.
</p>

<p style="text-align: center;">
	<img alt="38_تحديد عمودين.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73778" data-unique="uas6qu617" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdbc5b4d_38_.png.a48f23d9bc16fe1b219bdb9e368defec.png" style=""></p>

<p>
	بعد ذلك أدرج مخططًا كما تعلمت مسبقًا، حيث سيظهر لك المخطط التالي. ويمكنك تنسيق العنوان والمحاور وخطوط الشبكة.
</p>

<p style="text-align: center;">
	<img alt="39_مخطط من عمودين.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73779" data-unique="xeq0y5944" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdc394b9_39_.png.e3afe93b887a997c56fbda11e66ddceb.png" style=""></p>

<h3>
	4. إدراج ارتباط تشعبي
</h3>

<p>
	يمكنك إدراج ارتباط تشعبي بالضغط على أيقونة ارتباط تشعبي، حيث سيظهر لك مربع حوار يطلب منك إدخال النص الذي ستعرضه في الملف مثلًا "أكاديمية حسوب"، وسيطلب منك أيضًا URL وهو الرابط الالكتروني للموقع.
</p>

<p>
	سيُدرج الرابط الإلكتروني في ورقة العمل، وعند الضغط عليه سينتقل إلى المتصفح لفتح الموقع الإلكتروني.
</p>

<p style="text-align: center;">
	<img alt="40_ادراج ارتباط تشعبي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73782" data-unique="7xejs9sb5" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdd4ed55_40_.png.7791f898951f6fef0817a731acabbeff.png" style=""></p>

<p style="text-align: center;">
	<img alt="41_إدراج ارتباط تشعبي2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73783" data-unique="y24b3256k" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdd98329_41_2.png.279151ca532ab86110fe211cfc690a77.png" style=""></p>

<h3>
	5. التعليق
</h3>

<p>
	يمكنك أيضًا إدراج تعليق داخل ورقة العمل. هذه الخاصية مفيدة في حال مشاركة الملف مع مستخدمين آخرين، مما يساعدكم على مشاركة الآراء والتعليقات داخل الملف. وسنتحدث عنها لاحقًا في نهاية المقال.
</p>

<p style="text-align: center;">
	<img alt="42_اضافة تعليق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73784" data-unique="60agqf7o8" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cddee19a_42_.png.653628ae2457d066d551793400329b39.png" style=""></p>

<h3>
	6. الجداول
</h3>

<p style="text-align: center;">
	<img alt="43_الجداول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73785" data-unique="nbhj775kw" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cde4eec5_43_.png.05c3c2ac19b21beb406bc66275803fc9.png" style=""></p>

<h4>
	خيار إنشاء الجدول
</h4>

<p>
	حدد نطاق الخلايا التي تريد إدراج جدول فيها واضغط على جدول، بعدها سيظهر لك مربع حوار لإنشاء الجدول والذي يتضمن نطاق البيانات الخاصة بالجدول حسب الخلايا التي حددتها.
</p>

<p style="text-align: center;">
	<img alt="44_ادراج جدول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73786" data-unique="e0i1tufpt" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdea9edf_44_.png.7fa6668cad7745b985fd0e2a25ae743a.png" style=""></p>

<p>
	سيظهر لك الجدول بالشكل التالي:
</p>

<p style="text-align: center;">
	<img alt="45_ادراج جدول2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73787" data-unique="xne7d186k" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdf1c484_45_2.png.306d115b02eb94b0ee28d6c3ace68a63.png" style=""></p>

<p>
	لا تُستخدم هذه الخاصية بكثرة، حيث أن تطبيق إكسل عبارة عن جداول يمكن للمستخدم أن يتعامل معها بسهولة.
</p>

<h4>
	الجدول المحوري Pivot Table
</h4>

<p>
	لشرح الجدول المحوري Pivot Table، سنفترض أن لدينا البيانات الموالية، وأننا نريد معرفة عدد الطلاب في كل تخصص. حيث يمكننا عمل ذلك باستخدام دوال الإكسل، كما يمكننا عملها بطريقة أسهل وأسرع وهي "الجدول المحوري Pivot "Table، والتي تساعدنا على عمل تقارير للبيانات بصورة سهلة وسريعة.
</p>

<p style="text-align: center;">
	<img alt="46_بيانات طلاب2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73788" data-unique="zlm0nng0v" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdf7ece1_46_2.png.9800ad7c28d298546e6436c5f62cce7a.png" style=""></p>

<p>
	حدد البيانات وتأكد من أنك حددت عناوين البيانات (الاسم والتخصص والمعدل الجامعي)، ومن ثم اضغط على أيقونة Pivot Table.
</p>

<p style="text-align: center;">
	<img alt="47_أيقونة بيفوت .png" class="ipsImage ipsImage_thumbnailed" data-fileid="73789" data-unique="79y64i090" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cdfd0683_47_.png.7b1f9e2df19c3e9c11df94a85c955fd8.png" style=""></p>

<p>
	سيظهر لك مربع الحوار التالي، والذي سيطلب منك تحديد البيانات (تأكيد البيانات اللي اخترتها أو تحديد بيانات جديدة)، وكذلك المكان الذي تريد وضع تقرير Pivot Table فيه، كما سيطلب منك مكان إدراج الجدول، وهنا سنختار ورقة عمل جديدة، يمكنك أيضًا إدراجه في نفس ورقة العمل.
</p>

<p style="text-align: center;">
	<img alt="48_إنشاء جدول بيفوت.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73790" data-unique="6c1qq0jmo" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce046f84_48_.png.72f2fbbf1a422a493c392ab1d344e446.png" style=""></p>

<p>
	سيظهر لك تبويب جديد إسمه Pivot Table لتحرير وتنسيق الجدول.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73791" href="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce0a14e8_49_.png.334d08d62301724a4ac7967a53cc141f.png" rel=""><img alt="49_تبويب بيفوت.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73791" data-unique="w0hgm8ph8" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce14d6fb_49_.thumb.png.f6511ddcadb6660c68482d3941d29855.png" style=""></a>
</p>

<p>
	من أيقونة قائمة الحقول يمكنك تحديد الحقول التي ستستخدمها في إنشاء تقريرك.
</p>

<p style="text-align: center;">
	<img alt="50_أيقونة قائمة الحقول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73792" data-unique="g3yv3pwpg" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce1daeee_50_.png.c3188a00205f803cfc2ef4af85aaa5fc.png" style=""></p>

<p>
	سنفترض كما ذكرنا مسبقًا أننا نريد تقريرًا يوضح عدد الطلاب في كل تخصص (كلية)، وسنحدد حقلي التخصص والمعدل الجامعي، كما يمكنك تحديد حقلي التخصص والاسم. حددنا حقل التخصص لأننا نريد معرفة كل تخصص؛ أما حقلي المعدل أو الاسم فهما لمعرفة عدد الطلاب في كل تخصص.
</p>

<p style="text-align: center;">
	<img alt="51_اختيار الحقول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73793" data-unique="sgpibepzs" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce25aa69_51_.png.49044c20651cecdaa47c208e2c4bc0ac.png" style=""></p>

<p>
	نختار الحقول والتخصص الذي سيمثّل الصفوف كما يظهر في الشكل السابق؛ أما المعدل الجامعي فسيمثّل القيم (التي نريد عددها).
</p>

<p>
	اضغط على قائمة القيم واختر "إعدادات حقل القيم"، وغيّر الدالة المستخدمة لـ Count بدلًا من Sum، حيث أننا نريد عدد الطلاب.
</p>

<p style="text-align: center;">
	<img alt="52_إعدادات حقل القيم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73794" data-unique="3glogk3px" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce2b594f_52_.png.c40d91b0c10236242039cc8b0b62275c.png" style=""></p>

<p style="text-align: center;">
	<img alt="53_إعدادات حقل القيم2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73795" data-unique="23ofe5t8j" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce331bde_53_2.png.fc8c23d7cc767897ae6784a20d8b5109.png" style=""></p>

<p>
	ستحصل على النتيجة التالية والتي تمثّل عدد الطلاب في كل كلية، ومجموع الطلاب الكلي 10.
</p>

<p style="text-align: center;">
	<img alt="54_ناتج البيفوت.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73796" data-unique="zt1900u30" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce388e04_54_.png.f58a15a807a25eb19dd4b9eb6a621c85.png" style=""></p>

<p>
	يمكنك تصفية النتائج لإظهار تخصص أو تخصصات محددة كالتالي:
</p>

<p style="text-align: center;">
	<img alt="55_تصفية العناصر.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73797" data-unique="7mvly9l04" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce415cf8_55_.png.5cad73806145c5791788797cc624de90.png" style=""></p>

<p style="text-align: center;">
	<img alt="56_ناتج تصفية الحقول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73798" data-unique="14jymovc4" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce4608f2_56_.png.7569ba4739b21e0b95855a1143308d2a.png" style=""></p>

<p>
	يمكنك تحديث البيانات في حال إضافة بيانات جديدة أو تغيير نطاق البيانات واختيار بيانات جديدة بالضغط على الأيقونات التالية:
</p>

<p style="text-align: center;">
	<img alt="57_عناصر البيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73799" data-unique="jcbw6tkax" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce4c4ec6_57_.png.66f02bbf3db76d4a56151499cce83ca4.png" style=""></p>

<p style="text-align: center;">
	<img alt="58_تغيير مصدر بيانات التقرير.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73800" data-unique="2lsflyqml" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce5171c1_58_.png.9552489c7159a25e401404f7b07f969f.png" style=""></p>

<p>
	يمكن أيضًا نقل Pivot Table إلى ورقة عمل أخرى عن طريق أيقونة نقل Pivot Table.
</p>

<p style="text-align: center;">
	<img alt="59_أيقونة نقل بيفوت.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73801" data-unique="ntsk3lxbh" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce56823a_59_.png.818e65213601f4ab25ec3fdd67289809.png" style=""></p>

<p style="text-align: center;">
	<img alt="60_نقل التقرير2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73803" data-unique="5f8hwkx48" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce62cfa6_60_2.png.d93bfab85e8649102c75868af4947182.png" style=""></p>

<p>
	يمكنك اختيار نمط تنسيق من الأنماط الجاهزة في الإكسل بدلًا من تنسيقه بنفسك، كما يمكنك اختيار النمط الذي تريد بما يتناسب مع بياناتك.
</p>

<p style="text-align: center;">
	<img alt="61_أنماط التقرير.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73804" data-unique="ziemkmjs0" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce69c7d3_61_.png.71c13e5923a1acac66777d5ade2903a5.png" style=""></p>

<p>
	يمكنك التحكم في إعدادات Pivot Table سريعًا من قائمة إعدادات، حيث ستجد بعض الخصائص التي ذكرناها مسبقًا وبعض الخصائص الإضافية مثل إخفاء وإظهار الإجماليات الكلية والفرعية. يمكننا إخفاء الإجمالي الكلي من الصفوف وهنا سيخفي العدد الكلي وهو 10 ويكتفي بعرض عدد الطلاب في كل كلية.
</p>

<p style="text-align: center;">
	<img alt="66_أكثر من مستخدم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73809" data-unique="h2y5m61cw" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce84e5ce_66_.png.69d692b7788dc08e663be1fb61315a00.png" style=""></p>

<p style="text-align: center;">
	<img alt="63_اخفاء الاجمالي الكلي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73806" data-unique="9mvgsbpzi" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce7577b0_63_.png.119492a85d55c9dbfdc0c0d5938348dd.png" style=""></p>

<h2>
	ثانيا: المشاركة والتعليقات
</h2>

<p style="text-align: center;">
	<img alt="64_المشاركة والتعليقات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73807" data-unique="wkdeuzqzf" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce79fd32_64_.png.24b3eaa6c3ae53742456e39a4c532f32.png" style=""></p>

<p>
	سيظهر لك مربع حوار لإرسال رابط المشاركة لمستخدمين آخرين بمجرد الضغط على أيقونة مشاركة كما تحدثنا عنها في الدرس السابق.
</p>

<p style="text-align: center;">
	<img alt="65_إرسال رابط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73808" data-unique="ipdqxiszl" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce807849_65_.png.bfecb336c87a93f1a797d20275f57e60.png" style=""></p>

<p>
	إذا فتح أكثر من مستخدم نفس الملف، فستظهر لك مباشرةً بجانب أيقونتي المشاركة والتعليقات إشارة لكل مستخدم جديد داخل المستند.
</p>

<p style="text-align: center;">
	<img alt="66_أكثر من مستخدم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73809" data-unique="fh1ugtxqi" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce84e5ce_66_.png.69d692b7788dc08e663be1fb61315a00.png" style=""></p>

<p>
	كما سيكون مكان الخلية التي يعمل عليها المستخدم واضحًا من خلال اللون المخصص له من قبل التطبيق.
</p>

<p style="text-align: center;">
	<img alt="67_مكان عمل المستخدم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73810" data-unique="fgby40j1a" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce8c525a_67_.png.1626f3993233aaf7e8764179474ea197.png" style=""></p>

<p>
	تمكّن أيقونة التعليقات المستخدمين للملف من إضافة تعليقات لبعضهم البعض من دون التغيير في محتوى الملف الأساسي. ويمكنك تحرير التعليق أو حذفه أو حله بعدّ أنه قد وافق عليه المستخدم الآخر.
</p>

<p>
	لإضافة تعليق واضح حول نقطة محددة في الملف، اضغط على الخلية ثم أضف تعليقًا. ويمكنك أيضًا الرد على تعليق موجود مسبقًا بدلًا من كتابة تعليق جديد.
</p>

<p style="text-align: center;">
	<img alt="68_الرد على تعليق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73811" data-unique="zg2va5cv6" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce92d56b_68_.png.2a8afa8342bb87cfcf8eb1155ac74414.png" style=""></p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73812" href="https://academy.hsoub.com/uploads/monthly_2021_08/61124ce9a0e6b_69_.png.c2962a57a4d035930a6a9d7721585e28.png" rel=""><img alt="69_إضافة تعليق جديد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73812" data-unique="7rn4owfqk" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cea9eb4e_69_.thumb.png.59c3e34eb577f931110f86ff27a5ce4a.png" style=""></a>
</p>

<p style="text-align: center;">
	<img alt="70_تحرير تعليق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73814" data-unique="n0f4t286j" src="https://academy.hsoub.com/uploads/monthly_2021_08/61124cebd1c75_70_.png.6a30ad69b79b6f45e1f0b7ab92e6d38b.png" style=""></p>

<p>
	لقد تعرّفنا في هذه المقالة على تبويب إدراج بما يحتويه من خصائص لإدراج وتنسيق الصور والأشكال والمخططات والجداول وPivot Tables والدوال. حيث يمكنك من خلال هذا التبويب إدراج وتنسيق كافة بياناتك، كما يمكنك تلخيص وتحليل بياناتك باستخدام الدوال المختلفة أو Pivot Tables بطريقة سهلة. كما تعرّفنا على طريقة مشاركة الملف مع المستخدمين الآخرين والاستفادة من خاصية التعليقات بإضافة تعليقات جديدة أو الرد على تعليقات المستخدمين الآخرين.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">الدوال الشائعة في مايكروسوفت إكسل أونلاين 365 </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AD%D8%B0%D9%81-%D8%A7%D9%84%D8%B5%D9%81%D9%88%D9%81-%D9%88%D8%A7%D9%84%D8%A3%D8%B9%D9%85%D8%AF%D8%A9-%D8%A7%D9%84%D9%81%D8%A7%D8%B1%D8%BA%D8%A9-%D9%81%D9%8A-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-microsoft-excel-r297/" rel="">كيفية حذف الصفوف والأعمدة الفارغة في جداول بيانات Microsoft Excel</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%A7%D9%84%D9%82%D9%88%D8%A7%D8%A6%D9%85-%D8%A7%D9%84%D9%85%D9%86%D8%B3%D8%AF%D9%84%D8%A9-%D9%88%D8%AA%D8%AE%D8%B5%D9%8A%D8%B5%D9%87%D8%A7-%D9%81%D9%8A-microsoft-excel-r219/" rel="">كيفية إنشاء القوائم المنسدلة وتخصيصها في Microsoft Excel</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">486</guid><pubDate>Wed, 11 Aug 2021 12:04:02 +0000</pubDate></item><item><title>&#x62F;&#x648;&#x627;&#x644; &#x627;&#x644;&#x62A;&#x627;&#x631;&#x64A;&#x62E; &#x648;&#x627;&#x644;&#x648;&#x642;&#x62A; &#x627;&#x644;&#x623;&#x643;&#x62B;&#x631; &#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645;&#x627; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646; 365</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D9%88%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%A3%D9%83%D8%AB%D8%B1-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85%D8%A7-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r484/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_08/611d55cabd83a_(365).jpg.2daed51898afab98247f26f7bcdd27c2.jpg" /></p>

<p>
	يحتوي برنامج الإكسل على مئات الدوال التي نحتاجها في حياتنا في مختلف المجالات، مثل دوال النصوص ودوال الرياضيات ودوال الإحصاء ودوال قواعد البيانات، وكذلك دوال التاريخ والوقت.
</p>

<p>
	سنتحدث في هذا المقال عن مجموعة من دوال التاريخ والوقت في الإكسل. ولاستيعاب وفهم الدوال بسهولة، سنطبِّق المثال التالي بالإجابة على مجموعة من الأسئلة:
</p>

<ol>
<li>
		ما هو تاريخ اليوم؟
	</li>
	<li>
		ما هو تاريخ اليوم مع التوقيت الآن؟
	</li>
	<li>
		ما هو الشهر الحالي من السنة؟
	</li>
	<li>
		ما هو تاريخ اليوم من الشهر؟
	</li>
	<li>
		ما هي السنة الحالية؟
	</li>
	<li>
		هل يمكن تحديد قِيَم يوم وشهر وسنة، ومن ثم الحصول على قيمة تاريخ كاملًا في خلية واحدة بصيغة تاريخ؟
	</li>
	<li>
		هل يمكن الحصول على قيمة تاريخ مستقبلي؟ على سبيل المثال: ما هو التاريخ بعد شهرين من اليوم؟
	</li>
	<li>
		ما هو اليوم من أيام الأسبوع؟
	</li>
	<li>
		هل يمكن تحديد قِيَم الساعة والدقيقة والثواني والحصول على قيمة الساعة كاملةً مع تحديد هل هي صباحًا أم مساءً؟
	</li>
	<li>
		هل يمكن حساب عدد أيام عملك عن طريق تحديد تاريخ بدء عملك ونهايته؟
	</li>
</ol>
<p>
	للإجابة على الأسئلة السابقة، سنستخدم دوال التاريخ والوقت.
</p>

<p>
	أدرج الجدول التالي في ورقة العمل في الإكسل، بعد ذلك نسِّقها، وابدأ بتطبيق الخطوات لكل دالة للحصول على النتائج.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73533" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e228b6578c_1-.PNG.95638e629e5ad013ea790837a1866986.PNG" rel=""><img alt="1-المطلوب.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73533" data-unique="ym4n4xksi" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e228b6578c_1-.PNG.95638e629e5ad013ea790837a1866986.PNG"></a>
</p>

<h2>
	أساسيات التعامل مع دوال التاريخ والوقت
</h2>

<p>
	بدايةً يجب أن تعلم بعض أساسيات التعامل مع دوال التاريخ والوقت في الإكسل، وهي:
</p>

<ul>
<li>
		التأكد من أن صيغة الخلية التي تحتوي على تاريخ هي صيغة "تاريخ" وليست صيغة "عام"، وذلك من خيارات تنسيق الأرقام في تبويب الصفحة الرئيسية.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73544" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e2294bfea8_2-.PNG.dd10ec9ce4695544d76da6397177e564.PNG" rel=""><img alt="2-صيغة التاريخ.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73544" data-unique="gtl4zer3e" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2294bfea8_2-.PNG.dd10ec9ce4695544d76da6397177e564.PNG"></a>
</p>

<ul>
<li>
		يمكنك تغيير طريقة عرض التاريخ باختيار "تنسيقات إضافية للأرقام" من خيار "تنسيق الأرقام".
	</li>
</ul>
<p style="text-align: center;">
	<img alt="3-تنسيقات إضافية للأرقام.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73555" data-unique="stomo5qog" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22999553c_3-.png.1a91126e4c5eef55427bfa6ec261c682.png" style=""></p>

<p>
	ضمن فئة "التاريخ"، تأكد من اختيار التقويم الميلادي من خيار "نوع التقويم"، وبإمكانك تغييره إذا أردت استخدام التقويم الهجري. كما يمكنك اختيار الصيغة المناسبة للتاريخ مثل اختيار تاريخ قصير مشابه لـ 7/19/2021، أو تاريخ طويل مثل 19 يوليو 2021. كذلك بإمكانك اختيار عرض التوقيت أو إخفائه، إلى جانب عرض خيارات الصباح am والمساء pm أو إخفاؤها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73563" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e229dc319c_4_2.png.3c4779124011a0fec51a23d5038ee7cc.png" rel=""><img alt="4_تنسيقات إضافية للأرقام2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73563" data-unique="5vbv9hgzo" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229fab279_4_2.thumb.png.260b292df45ef7ba3e1d7ceb2e71185d.png" style=""></a>
</p>

<ul>
<li>
		يتعامل الإكسل مع أيام الأسبوع من القيمة 1 حتى القيمة 7، حيث يَعُد الإكسل يوم "الأحد" هو اليوم رقم "1" في الأسبوع، بينما يُعَد يوم "السبت" هو اليوم الأخير في الأسبوع وقيمته "7".
	</li>
</ul>
<p style="text-align: center;">
	<img alt="5_أيام الأسبوع.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73564" data-unique="5cec4ha6p" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22a09d1ba_5_.PNG.ad431cda9e6b5e4bcf67bdfc9be27c1e.PNG" style=""></p>

<p>
	حيث: 
</p>

<ol>
<li>
		يتعامل الإكسل مع الشهور من القيمة 1 حتى القيمة 12ـ أي أن شهر يناير هو شهر 1، وشهر ديسمبر هو شهر 12.
	</li>
	<li>
		يتعامل الإكسل مع أيام الشهر من القيمة 1 حتى القيمة 31.
	</li>
	<li>
		يتعامل الإكسل مع الساعات من القيمة 0 حتى القيمة 23.
	</li>
	<li>
		يتعامل الإكسل مع الدقائق من القيمة 0 حتى القيمة 59.
	</li>
	<li>
		يتعامل الإكسل مع الثواني من القيمة 0 حتى القيمة 59.
	</li>
</ol>
<p>
	سنبدأ الآن بتطبيق المثال باستخدام دوال التاريخ والوقت، فللحصول على تاريخ اليوم كاملًا (اليوم والشهر والسنة)، أو جزء منه مثل الحصول على اليوم فقط أو الشهر فقط، سنستخدم دوال التاريخ المختلفة. أدرج دالةً من تبويب إدراج واختر فئة "التاريخ والوقت" للوصول إلى كل دوال التاريخ والوقت.
</p>

<h3>
	1. دالة today
</h3>

<p>
	تُرجِع هذه الدالة التاريخ الحالي بصيغة تاريخ، فهي لا تأخذ أي قيم، بل تكتفي فقط بإرجاع التاريخ الحالي. وهنا اكتب الدالة في خلية النتيجة ولاحظ النتيجة التي ستظهر، فإذا كان التاريخ الذي نطبِّق فيه المثال هو 19 يوليو 2021، فستظهر النتيجة بهذا التاريخ. وأنت ستُظهر النتيجة لديك بالتاريخ الذي تطبِّق فيه المثال.
</p>

<p style="text-align: center;">
	<img alt="6-تاريخ اليوم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73565" data-unique="m7jl73fe6" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22a1a01b4_6-.png.0ecc27c663072775f464f54730f71e10.png" style=""></p>

<p style="text-align: center;">
	<img alt="7-تاريخ اليوم2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73566" data-unique="8dbjxvp1w" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22a20b82d_7-2.PNG.b81d86d74ef5b363bbb26786ae415296.PNG" style=""></p>

<p>
	يمكنك تغيير التاريخ من تاريخ قصير إلى تاريخ طويل، وذلك من إعدادات التاريخ، حيث ستحصل على 19 يوليو 2021 بدلًا من 7/19/2021.
</p>

<p style="text-align: center;">
	<img alt="8-اختيار تاريخ طويل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73567" data-unique="u3g1e2lu7" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22a29cc9e_8-.png.fe97a7cd4678fd1fe881fe9b4cb99f66.png" style=""></p>

<p style="text-align: center;">
	<img alt="9-ناتج تاريخ طويل.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73568" data-unique="g352o6i3f" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22a32c42c_9-.PNG.514ed64d30165dc3636e3b016eb2e5dd.PNG" style=""></p>

<h3>
	2. دالة now
</h3>

<p>
	تُرجِع هذه الدالة التاريخ والوقت الحاليين بتنسيق الوقت والتاريخ. لاحظ أن هذه الدالة لا تستقبل أي قِيَم، بل تُرجع قيمة التاريخ والوقت فقط.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73534" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e228bc133a_10-.PNG.b9b9cac3d0b9b059c2ca8e0872956c39.PNG" rel=""><img alt="10-تاريخ اليوم والوقت.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73534" data-unique="ardg9hna3" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e228bc133a_10-.PNG.b9b9cac3d0b9b059c2ca8e0872956c39.PNG"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73535" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e228c57803_11-2.PNG.36379077696b40630c05b75bd5a84a30.PNG" rel=""><img alt="11-تاريخ اليوم والوقت2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73535" data-unique="eay4hksbp" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e228c57803_11-2.PNG.36379077696b40630c05b75bd5a84a30.PNG"></a>
</p>

<p>
	يمكنك تخصيص الناتج للحصول فقط على الوقت وإخفاء التاريخ، كما يمكنك إضافة خيار عرض ص (صباحًا) أو م (مساءً)، وذلك من قائمة تنسيق الأرقام – فئة مخصص.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73536" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e228cec613_12-.png.a9401f6f40fc19b71705c26f9cd907fd.png" rel=""><img alt="12-تخصيص الوقت.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73536" data-unique="i9aeicuer" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e228e9eb5d_12-.thumb.png.a28d9c3256be86b6a539cf29d3b15f66.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73537" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22909a9a8_13-2.PNG.7c22115f5ca815be28d159de3dc807a3.PNG" rel=""><img alt="13-تخصيص الوقت2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73537" data-unique="pyl2s6hm5" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22909a9a8_13-2.PNG.7c22115f5ca815be28d159de3dc807a3.PNG"></a>
</p>

<h3>
	3. دوال month وday وyear
</h3>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73538" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22920fb8b_14-.PNG.fb443eb91c1f9bc991d9b47d03d30df3.PNG" rel=""><img alt="14-تاريخ اليوم مفصل.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73538" data-unique="jomcjtrbp" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22920fb8b_14-.PNG.fb443eb91c1f9bc991d9b47d03d30df3.PNG"></a>
</p>

<p>
	للحصول على تاريخ اليوم من حيث الشهر فقط (أي: يوليو)، أو اليوم فقط (أي: 19)، أو السنة فقط (أي: 2021)؛ استخدِم دالة month للحصول على الشهر ودالة day للحصول على اليوم ودالة year للحصول على السنة. تستقبل هذه الدوال التاريخ، وتُرجع القيمة المطلوبة سواءً كانت يومًا أو شهرًا أو سنة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73539" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22926c5fc_15_.PNG.2e8a4625448504f92b5d422d1d2d1261.PNG" rel=""><img alt="15_الشهر فقط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73539" data-unique="umi658y75" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22926c5fc_15_.PNG.2e8a4625448504f92b5d422d1d2d1261.PNG"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73540" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e2292ebdc0_16-.PNG.980533a057f41603523bded255a1944b.PNG" rel=""><img alt="16-اليوم فقط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73540" data-unique="wd14hzz1a" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2292ebdc0_16-.PNG.980533a057f41603523bded255a1944b.PNG"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73541" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e229351db8_17-.PNG.eb23a15b903e474c72ed6741e496713e.PNG" rel=""><img alt="17-السنة فقط.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73541" data-unique="8qksmmhin" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229351db8_17-.PNG.eb23a15b903e474c72ed6741e496713e.PNG"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73542" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e2293d2f86_18-.PNG.8e89888e7831230e013594877f47799f.PNG" rel=""><img alt="18-ناتج التاريخ مفصل.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73542" data-unique="ifqsvvgk6" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2293d2f86_18-.PNG.8e89888e7831230e013594877f47799f.PNG"></a>
</p>

<p>
	يمكنك تطبيق هذه الدالة على أي تاريخ في ورقة العمل وليس فقط على تاريخ اليوم، مثل التاريخ 31 يناير 2022، ويمكنك الحصول على السنة فقط بتحديد التاريخ داخل الدالة فتصبح كالتالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73543" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e229446447_19--2.PNG.73e3a8eeacac83b94bb3a49bf6f91220.PNG" rel=""><img alt="19-السنةفقط-مثال2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73543" data-unique="2g8wj0lil" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229446447_19--2.PNG.73e3a8eeacac83b94bb3a49bf6f91220.PNG"></a>
</p>

<h3>
	4. دالة date
</h3>

<p>
	هذه الدالة تعمل عكس الدوال السابقة، أي أنها تستقبل ثلاث قِيَم (اليوم والشهر والسنة)، وتُرجع قيمة التاريخ بصيغة تاريخ. بينما الدوال الثلاثة السابقة day وmonth وyear تستقبل التاريخ وتُرجع القيمة (اليوم أو الشهر أو السنة).
</p>

<p>
	سنعطي هذه الدالة قيمة 19 لليوم، وقيمة 7 للشهر (أي: يوليو)، وقيمة 2021 للسنة. وللحصول على التاريخ كاملًا في خلية واحدة بصيغة تاريخ؛ تأخذ الدالة القيم بالترتيب التالي (إجباريًّا)، ولا يمكن تغيير الترتيب وإلَّا ستحصل على تاريخ خاطئ:
</p>

<ul>
<li>
		القيمة الأولى: السنة
	</li>
	<li>
		القيمة الثانية: الشهر
	</li>
	<li>
		القيمة الثالثة: اليوم
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73545" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22952faab_20-.png.019ef91e81adddb1c01905b39b1386cc.png" rel=""><img alt="20-دالة التاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73545" data-unique="5iye9q6el" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22952faab_20-.png.019ef91e81adddb1c01905b39b1386cc.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73546" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e2295b2e76_21-.PNG.1b081ce0372bfe2781046378e947a268.PNG" rel=""><img alt="21-ناتج دالة التاريخ.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73546" data-unique="t2n91abp8" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2295b2e76_21-.PNG.1b081ce0372bfe2781046378e947a268.PNG"></a>
</p>

<h3>
	5. دالة edate
</h3>

<p>
	تُستخدم هذه الدالة للحصول على تاريخ مستقبَلي، وذلك بتحديد عدد الشهور التي تريد إضافتها على التاريخ. وتأخذ هذه الدالة قيمتين أولاهما هي التاريخ المحدد، أما الثانية فهي عدد الشهور التي نريد إضافتها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73547" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22961e8ab_22-.png.743d612f14e864cdf5d598206b140304.png" rel=""><img alt="22-إضافة شهرين على التاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73547" data-unique="osxbhg0kb" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22961e8ab_22-.png.743d612f14e864cdf5d598206b140304.png"></a>
</p>

<p>
	ستلاحظ أن النتيجة هي تاريخ 19/9/2021 وهو تاريخ اليوم مُضافًا إليه شهران.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73548" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22969f151_23-.png.617598445d639852116f9c0ff11f6c75.png" rel=""><img alt="23-ناتج إضافة شهرين.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73548" data-unique="lr8anclzq" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22969f151_23-.png.617598445d639852116f9c0ff11f6c75.png"></a>
</p>

<p>
	لقد طبَّقنا في المثال السابق إضافة شهرين على تاريخ اليوم، حيث يمكنك إضافة شهور على تاريخ محدد مسبقًا في ورقة العمل وليس فقط على تاريخ اليوم، كما يمكنك تحويل التاريخ لتاريخ طويل إذا كنت ترغب بعرض اسم الشهر واليوم من أيام الأسبوع.
</p>

<h3>
	6. دالة weekday
</h3>

<p>
	تُستخدم دالة weekday لتحديد رقم اليوم من أيام الأسبوع. وبما أن اليوم الإثنين فإن نتيجة الدالة ستكون الرقم 2 كما ذكرنا مسبقًا، لأن الإكسل يَعُد يوم الأحد هو اليوم الأول من أيام الأسبوع ورقمه 1، وبالتالي فإن يوم الإثنين رقمه 2.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73549" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e229711157_24-.PNG.51a73041f7377cec7e64b69d19d91d89.PNG" rel=""><img alt="24-يوم الأسبوع.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73549" data-unique="l828ljlcf" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229711157_24-.PNG.51a73041f7377cec7e64b69d19d91d89.PNG"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73550" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e22976ddcb_25-2.PNG.ec0f5ecacd86459eae5f848602b30606.PNG" rel=""><img alt="25-يوم الاسبوع2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73550" data-unique="7bu9b21t3" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22976ddcb_25-2.PNG.ec0f5ecacd86459eae5f848602b30606.PNG"></a>
</p>

<p>
	يمكننا تحويل الرقم السابق (2) إلى نص (الإثنين) باستخدام الدالة النصية text.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73551" href="https://academy.hsoub.com/uploads/monthly_2021_08/610e2297d8ab9_26-.PNG.05005f1e9bace738f6ceaa8524209062.PNG" rel=""><img alt="26-تحويل الرقم لنص.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73551" data-unique="6mnwkmbpt" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2297d8ab9_26-.PNG.05005f1e9bace738f6ceaa8524209062.PNG"></a>
</p>

<p style="text-align: center;">
	<img alt="27-يوم الاثنين.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73552" data-unique="4ew2iuvtx" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22984950a_27-.PNG.2b01ef70af0e4f934522c9ea7e7a01fc.PNG" style=""></p>

<p>
	إذا كنت تستخدم التاريخ باللغة الإنجليزية، فستحصل على النتيجة التالية Mon:
</p>

<p style="text-align: center;">
	<img alt="28-الاثنين بالانجليزي مختصر.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73553" data-unique="ngcf2jyru" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2298b158f_28-.PNG.9057d266b679b5a811199b8f2423cb31.PNG" style=""></p>

<p>
	إذا غيَّرت صيغة الدالة، واستبدلت ddd بـ dddd أي أربعة حروف بدلًا من ثلاثة، فستحصل على كلمة Monday كاملة لا مختصرة.
</p>

<p style="text-align: center;">
	<img alt="29-الاثنين بالانجليزي كامل.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73554" data-unique="dyloae4xw" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e22992709a_29-.PNG.73bb29e94ea8aa1b60e323155d34a11c.PNG" style=""></p>

<p style="text-align: center;">
	<img alt="30-الاثنين كامل2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73556" data-unique="tsnl0n82n" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e2299edc7e_30-2.PNG.e9dd3a2ad7d6c054df4f60d7091bb9b4.PNG" style=""></p>

<h3>
	7. دالة time
</h3>

<p>
	سنحدد القِيَم التالية في صورة أرقام، على النحو: الساعة الثالثة، والدقيقة الثلاثون، وخمسة وخمسون ثانية.
</p>

<p style="text-align: center;">
	<img alt="31-إدخال قيم الوقت.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73557" data-unique="mj3zmx6lb" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229a5e779_31-.PNG.7d8fbbb7f113217185c908c8d70318ee.PNG" style=""></p>

<p>
	يمكننا الحصول على الساعة بالضبط حسب القِيَم السابقة وذلك باستخدام دالة time، حيث تستقبل هذه الدالة ثلاث قِيَم بالترتيب وهي الساعة والدقيقة والثانية، وهنا سنحصل على الساعة 03:30 ص.
</p>

<p style="text-align: center;">
	<img alt="32-حساب الوقت.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73558" data-unique="56uw7cf65" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229ae6479_32-.png.1ddbf23aa76c05100e16dfee277b0a2d.png" style=""></p>

<p style="text-align: center;">
	<img alt="33-الوقت.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73559" data-unique="veh6isva1" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229b69e1e_33-.PNG.920c9823b8a47ff655ac370e15f9c9de.PNG" style=""></p>

<h3>
	8. دالة days
</h3>

<p>
	تُستخدم هذه الدالة لإرجاع عدد الأيام بين تاريخين، وعليه تستقبل الدالة تاريخين على الترتيب، تاريخ النهاية وتاريخ البداية وتحسب عدد الأيام بين هذين التاريخين.
</p>

<p>
	فلنفترض أنك تريد حساب عدد أيام عملك، وكان تاريخ بداية عملك 1 يناير 2021 بينما تاريخ نهاية عملك 31 مارس 2021.
</p>

<p style="text-align: center;">
	<img alt="34-تاريخ بداية ونهاية العمل.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73560" data-unique="p88k951z3" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229bd337b_34-.PNG.990cc021b3f21a781caaa82ceddfd89f.PNG" style=""></p>

<p>
	طبِّق الدالة على تاريخي البداية والنهاية، حيث ستجد أن عدد أيام عملك 89 يومًا، وهنا غيِّر تاريخ البداية وتاريخ النهاية لقِيَم أخرى ولاحظ الفرق.
</p>

<p style="text-align: center;">
	<img alt="35-عدد الأيام بين تاريخين.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73561" data-unique="yx9xb7ss6" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229c60bc0_35-.png.19b7126a54f868292a1b02f0f0da79b2.png" style=""></p>

<p style="text-align: center;">
	<img alt="36-عدد الأيام بين تاريخين 2.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="73562" data-unique="tjchn6s4w" src="https://academy.hsoub.com/uploads/monthly_2021_08/610e229d1634e_36-2.PNG.bee6c47de5a566e25048f6e295ac4b3e.PNG" style=""></p>

<p>
	لقد تعرَّفنا في هذه المقالة على مجموعة من الدوال الخاصة بالتاريخ والوقت في الإكسل، مثل دالة الحصول على التاريخ الحالي today ودالة الحصول على التاريخ والوقت الحاليين now، وكذلك دوال الحصول على اليوم والشهر والسنة وأيام الأسبوع من تاريخ محدد، وهي day وmonth وyear وweekday على التوالي. كما تعلَّمنا كيفية الحصول على التاريخ كاملًا إذا كانت لدينا القِيَم المختلفة لليوم والشهر والسنة وذلك باستخدام دالة date. وتعلَّمنا أيضًا كيفية تحديد تاريخ مستقبَلي موازنةً بتاريخ معين، وبإمكاننا تحويل القيمة العددية لأيام الأسبوع لقيمة نصية عربية أو إنجليزية باستخدام الدالة النصية text، كما تعرَّفنا على دالة days والتي تحسب عدد الأيام بين تاريخين وذلك بتحديد تاريخ البداية وتاريخ النهاية.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r224/" rel="">دوال التاريخ الأساسية في اكسل</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r225/" rel="">دوال الوقت الأساسية في اكسل</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D8%AE%D8%A7%D8%B5%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%82%D9%82-%D9%85%D9%86-%D8%B5%D8%AD%D8%A9-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r227/" rel="">كيفية تطبيق خاصية التحقق من صحة البيانات على الخلايا في اكسل</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/7-%D8%AF%D9%88%D8%A7%D9%84-%D9%84%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D8%A5%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA-%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D9%86%D8%B5%D9%88%D8%B5-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r232/" rel="">7 دوال لتطبيق إجراءات مختلفة على النصوص في اكسل</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">484</guid><pubDate>Sun, 08 Aug 2021 12:06:00 +0000</pubDate></item><item><title>&#x645;&#x62F;&#x62E;&#x644; &#x625;&#x644;&#x649; &#x62A;&#x637;&#x628;&#x64A;&#x642; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x623;&#x648;&#x641;&#x64A;&#x633; &#x625;&#x643;&#x633;&#x644; 365 &#x623;&#x648;&#x646;&#x644;&#x627;&#x64A;&#x646;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D8%A5%D9%83%D8%B3%D9%84-365-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-r485/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_08/6112b95069b38_--365-.png.187f9ac3355b23f1af1223abebbfa3a2.png" /></p>

<p>
	يُعَد مايكروسوفت 365 من أحدث خدمات شركة مايكروسوفت، وهو مجموعة من التطبيقات التي تعمل عبر الانترنت بدون الحاجة إلى تحميل التطبيقات على جهازك، مما يسهل على المستخدمين الوصول للملفات ومشاركتها مع الآخرين ضمن معايير عالية من الخصوصية والأمان.
</p>

<p>
	كما يُعَد مايكروسوفت إكسل 365 أونلاين أحد أهم تطبيقات الشركة ضمن حزمة 365، حيث أنه يحتوي على العديد من المزايا، خاصةً في مجال تحليل البيانات بأنواعها المختلفة، وذلك باستخدام أدوات ومعادلات سهلة الاستخدام.
</p>

<h2>
	مايكروسوفت إكسل 365 أونلاين
</h2>

<p>
	يشرح هذا المقال أهم الخصائص الرئيسية لتطبيق الإكسل ضمن حزمة مايكروسوفت 365 الأونلاين، كما يشرح تبويب الصفحة الرئيسية في الملف.
</p>

<p>
	يجب عليك في البداية تسجيل الدخول لحساب مايكروسوفت الخاص بك، وستجد عندها التطبيقات المتاحة ضمن مايكروسوفت 365، اختر تطبيق الإكسل.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73691" href="https://academy.hsoub.com/uploads/monthly_2021_08/611245994551e_-01_365.png.b0eb04cbb7ed88393a74b12a7df9743d.png" rel=""><img alt="-01. واجهة اوفيس365.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73691" data-unique="selchc9xu" src="https://academy.hsoub.com/uploads/monthly_2021_08/6112459b458ef_-01_365.thumb.png.709ca4d6384a9a3e3af0153d1bdcdb97.png" style=""></a>
</p>

<p>
	قد تبدو شاشة الإكسل عمومًا، والتي تتكون من الصفوف والأعمدة وورق العمل وأشرطة الأدوات مألوفةً لك، ولكن قد تبدو لك كذلك بعض الاختلافات بين نسخة الإكسل 365 أونلاين، ونسخة الإكسل التي اعتدت على استخدامها ضمن حزمة الأوفيس.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73692" href="https://academy.hsoub.com/uploads/monthly_2021_08/6112459d29fcf_02-.png.7cadf02b283f9f9812cdab04784aefb7.png" rel=""><img alt="02-واجهة الاكسل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73692" data-unique="u7kf5evfo" src="https://academy.hsoub.com/uploads/monthly_2021_08/6112459ea0aba_02-.thumb.png.79a91c9fe85a2ba42cb6f55fa0a2ee64.png" style=""></a>
</p>

<p>
	يكمن الاختلاف الرئيسي في أنه بإمكانك التعامل مع ملفاتك عبر الانترنت وحفظها وتعديلها ومشاركتها مع الآخرين، والوصول إليها من أي جهاز عن طريق بريدك الإلكتروني.
</p>

<p>
	هناك المزيد من الاختلافات التي تظهر في بعض الأدوات والأيقونات، مثل تبويب "رسم" الموجود في نسخة مايكروسوفت 365 وليس متوفرًا في تطبيق سطح المكتب.
</p>

<p style="text-align: center;">
	<img alt="03- تبويب رسم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73693" data-unique="trfrplqg3" src="https://academy.hsoub.com/uploads/monthly_2021_08/6112459f8d469_03-.png.5881793093bdbbd07bc11e0de7454156.png" style=""></p>

<h2>
	1. قائمة ملف
</h2>

<p>
	للتعرف على القائمة، انقر على قائمة ملف في أعلى ورقة العمل، حيث ستجد فيها الخيارات التالية:
</p>

<ol>
<li>
		<strong>إغلاق</strong>: لإغلاق قائمة ملف.
	</li>
	<li>
		<strong>الصفحة الرئيسية</strong>: وتشمل هذه الصفحة عدة خيارات:
		<ul>
<li>
				فتح ملف جديد، وذلك بالضغط على خيار "جديد".
			</li>
			<li>
				في حال كنت تستخدم خدمة الأوفيس 365 حديثًا، يمكنك أخذ جولة في التطبيق بالضغط على “مرحباً بك في Excel".
			</li>
			<li>
				الوصول لآخر الملفات التي فتحتها على حسابك من خلال قسم "الأخيرة"، كما يتضح في الشكل فإن Book3.xlsx هو من الملفات التي فُتحت حديثًا على الحساب.
			</li>
		</ul>
</li>
</ol>
<p style="text-align: center;">
	<img alt="04- قائمة ملف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73694" data-unique="3uoz5mddk" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245a0a63fa_04-.png.0b784fe6862ded0440b2c0ed8920f2ef.png" style=""></p>

<ol start="3">
<li>
		<strong>جديد</strong>: لفتح ملف إكسل جديد.
	</li>
	<li>
		<strong>فتح</strong>: لفتح ملف إكسل موجود مسبقًا (الملفات الموجودة أونلاين ضمن خدمة مايكروسوفت 365).
	</li>
	<li>
		<strong>معلومات</strong>: تشمل هذه الصفحة عدة خيارات:
	</li>
</ol>
<p style="text-align: center;">
	<img alt="05-خيار معلومات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73695" data-unique="6m0mhx5it" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245a16548b_05-.png.59fd660adff0a9e60bf4e82981dd1e79.png" style=""></p>

<ul>
<li>
		<strong>فتح في تطبيق سطح المكتب</strong>: يتيح لك هذا الخيار فتح الملف على برنامج مايكروسوفت إكسل على جهازك. عند اختيارك لهذا الخيار، سيطلب منك إكسل 365 أونلاين أن تُغلق الملف ليفتح تطبيق الإكسل الموجود على جهازك.<br>
		 
	</li>
</ul>
<p style="text-align: center;">
	<img alt="06-فتح في تطبيق سطح المكتب.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73696" data-unique="v0zsalm0v" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245a20c343_06-.png.61a5f40539804578e085fbb96eb2b2ba.png" style=""></p>

<ul>
<li>
		<strong>حماية المصنف</strong>: تتيح هذه الخاصية منع التغييرات على الملف، وإتاحته للقراءة فقط، بحيث إذا فتح أحد المستخدمين الملف؛ فستظهر له الرسالة التالية، وستلاحظ تغيّر خيار زر "تحرير" إلى "عرض".
	</li>
</ul>
<p style="text-align: center;">
	<img alt="07-حماية المصنف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73697" data-unique="zr0sfbhgt" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245a3e7dc1_07-.png.2034c023acc5b597814f170e4f618e84.png" style=""></p>

<ul>
<li>
		<strong>محفوظات الإصدارات</strong>: تتيح هذه الخاصية عرض التغييرات التي جرت على الملف منذ لحظة إنشائه. من خلال هذه الخاصية ستعرف التعديلات التي جرت على الملف، ومن عمل على التعديلات، إلى جانب الوقت الذي حدثت فيه التعديلات، كما تتيح لك هذه الخاصية استعادة إصدار سابق من الملف.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73698" href="https://academy.hsoub.com/uploads/monthly_2021_08/611245a4ae3db_08-.png.db03a25f87998346d745c9480b9378ec.png" rel=""><img alt="08-محفوظة الإصدارات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73698" data-unique="pfwxwy1ix" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245a6ef6aa_08-.thumb.png.04b674f55ee60c70ba977f818398b2d2.png" style=""></a>
</p>

<ol start="6">
<li>
		<strong>حفظ باسم</strong>: يمكنك من خلال هذه الخاصية اتخاذ الإجراءات التالية:

		<ul>
<li>
				حفظ نسخة من الملف أونلاين.
			</li>
			<li>
				إعادة تسمية الملف باسم جديد.
			</li>
			<li>
				تنزيل نسخة على جهازك.
			</li>
			<li>
				تنزيل نسخة على جهازك كملف ODS.
			</li>
		</ul>
</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73699" href="https://academy.hsoub.com/uploads/monthly_2021_08/611245a853f2d_09-.png.0ddf5bea56e39181b413f7ea318a54cc.png" rel=""><img alt="09-حفظ باسم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73699" data-unique="jafomnrzj" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245aaec9a6_09-.thumb.png.460d7dd9df0b719d4d7a610f7795aed9.png" style=""></a>
</p>

<ol start="7">
<li>
		<strong>طباعة</strong>: تتيح لك هذه الخاصية إمكانية طباعة الملف وتجهيز إعدادات الطباعة، مثل تحديد ورق العمل الذي تريد طباعته وحجم الورق واتجاه الطباعة، حيث يمكنك طباعة كافة الأوراق في الملف أو تحديد ورقة معينة، كما يمكنك تحديد حجم الورقة التي سيطبع عليها على سبيل المثال ورقة بحجم A4 أو A3.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="10-إعدادات الطباعة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73700" data-unique="qs4xlxrts" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ac40c6e_10-.png.c2a2ad44d1575f79056cd9e3684e60a6.png" style=""></p>

<ol start="8">
<li>
		<strong>مشاركة</strong>: تتيح لك هذه الخاصية خيارين:

		<ul>
<li>
				الخيار الأول هو مشاركة الملف مع أشخاص آخرين، حيث يمكنك من خلاله منح الأشخاص الآخرين إذنًا يسمح لهم باستعراض الملف فقط بدون التعديل عليه، أو إمكانية التعديل عليه.
			</li>
			<li>
				الخيار الثاني يمنحك شيفرة برمجية تستطيع من خلالها تضمين هذا الملف ضمن مدونتك أو موقعك الشخصي.
			</li>
		</ul>
</li>
</ol>
<p style="text-align: center;">
	<img alt="11-مشاركة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73701" data-unique="hfv2821gi" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ad156a8_11-.png.f191248295c0a9c064f1a7a701bcedcd.png" style=""></p>

<p>
	في حال أردت مشاركة الملف مع مستخدمين آخرين؛ فيمكنك المشاركة عبر مجموعة من الخيارات:
</p>

<ul>
<li>
		إضافة البريد الإلكتروني للشخص الذي تريد مشاركة الملف معه، مع إمكانية إضافة رسالة توضح من خلالها سبب المشاركة أو وصف للملف إذا رغبت بذلك.
	</li>
	<li>
		نسخ رابط المشاركة مباشرةً وإرساله للجهة التي تريد مشاركة الملف معها.
	</li>
	<li>
		يمكنك أيضًا تعديل مستوى المشاركة عبر منحهم أذونات لإمكانية التعديل أو التحرير للملف، وذلك بالضغط على Anyone with the link can edit، والتي يُقصد بها أن أي شخص يحصل على الرابط سيمكنه تعديل الملف. يمكنك إزالة التحديد عن خيار السماح بالتحرير Allow editing، كما يمكنك أيضًا إضافة تاريخ انتهاء الصلاحية لدخول الملف وكذلك إضافة كلمة مرور.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="12-إرسال رابط المشاركة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73702" data-unique="vq2su2zad" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245adcb620_12-.png.93dd31be517d0b8b8bf8c5eda3c452d2.png" style=""></p>

<p style="text-align: center;">
	<img alt="13-إعدادات رابط المشاركة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73703" data-unique="drp3z06pc" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ae36526_13-.png.259e074ac5723fe4bf4fb7bda20f2cba.png" style=""></p>

<ol start="9">
<li>
		<strong>خيارات</strong>: يمكنك تغيير الإعدادات الخاصة بالتاريخ والعملة، والتي يطلق عليها إعدادات التنسيق الإقليمي، وذلك بتحديد اللغة المراد استخدامها.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="14- إعدادت التنسيق الخاصة بالمنطقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73704" data-unique="1ism7bu5o" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245aecb88a_14-.png.9702f12b90dc88276f1dcc05c9dadc23.png" style=""></p>

<p style="text-align: center;">
	<img alt="15-إعدادت التنسيق الخاصة بالمنطقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73705" data-unique="ralp8asds" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245af684cf_15-.png.c2a369634b42444cdd6b8105234d5b0b.png" style=""></p>

<h2>
	2. تبويب الصفحة الرئيسية
</h2>

<p>
	بعد التعرّف على قائمة ملف والتي شملت الخيارات الأساسية للتحكم في ملف الإكسل، سنتعرف الآن على تبويب الصفحة الرئيسية والذي يضم مجموعة من الخيارات.
</p>

<p>
	بدايةً، سيظهر لك الشكل التالي لتبويب الصفحة الرئيسية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73706" href="https://academy.hsoub.com/uploads/monthly_2021_08/611245b003656_16-.png.8483b81930eb658119f948d08fcf1c38.png" rel=""><img alt="16-الرئيسية تفصيلي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73706" data-unique="cfc06y54w" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b10a1e4_16-.thumb.png.1a8c723fcb9fcf40f428385114b63c9b.png" style=""></a>
</p>

<p>
	إذا ضغطت على السهم الموجود في نهاية الشريط، فسيتحوّل شكل تبويب الصفحة الرئيسية إلى الشكل التالي والذي يظهر الأيقونات تفصيليًا.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73707" href="https://academy.hsoub.com/uploads/monthly_2021_08/611245b1ec074_17-().png.914047dc4af141401e41b9dbe674dcc5.png" rel=""><img alt="17-تبويب الصفحة الرئيسية (تفصيلي).png" class="ipsImage ipsImage_thumbnailed" data-fileid="73707" data-unique="4m4ue0mkt" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b2623ed_17-().thumb.png.c5bc6a85694a71d1e1b7c9544337b7cd.png" style=""></a>
</p>

<p>
	يحتوي تبويب الصفحة الرئيسية على مجموعة من الخيارات الرئيسية وهي:
</p>

<ol>
<li>
		<strong>الحافظة</strong>: تحتوي على الخيارات الخاصة بالنسخ واللصق واللصق الخاص ونسخ التنسيق.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="18-الحافظة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73708" data-unique="m6jvn8j7n" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b2d751a_18-.png.c067b1376e0267735e38a741b440d56f.png" style=""></p>

<p>
	لتوفير الوقت والجهد، استخدم خاصية "نسخ التنسيق" <img alt="19-أيقونة نسخ  التنسيق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73709" data-unique="5dqfphu6d" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b33bb9b_19-.png.7fa9c35924b0901125dec7488358fc13.png" style=""> لنسخ التنسيق من خلية معينة أو مجموعة خلايا وتطبيقه على خلية أو مجموعة خلايا أخرى. تنسخ هذه الخاصية نفس خصائص الخط والتعبئة والحدود وتلصقها على خلية أخرى بدلًا من إعادة العمل على التنسيق مرةً أخرى.
</p>

<p>
	تُعَد عمليات النسخ والقص من العمليات المعروفة في نظام الحاسوب، أمّا بالنسبة لأيقونة اللصق فتحتوي على عدة خيارات مثل لصق ولصق الصيغ ولصق قيم ولصق التنسيق وتبديل موضع اللصق ولصق الارتباط، فإذا كان في الملف خلية مثلًا بحجم خط 20 ومعبّئة بلون أزرق؛ فكل ما عليك فعله هو تحديد هذه الخلية والضغط على أيقونة "نسخ التنسيق"، ومن ثم تطبيقه على الخلية المُراد نسخ التنسيق عليها.
</p>

<p style="text-align: center;">
	<img alt="20-خيارات اللصق الخاص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73710" data-unique="n1ka0jj1n" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b3bf09e_20-.png.e0b9ac54c6966ccdfc2ed1ec70ea5121.png" style=""></p>

<p>
	نفترض أن لدينا الأرقام التالية ويجب أن نحصل على مجموع الرقمين وإدراجه في خلية وذلك باستخدام دالة المجموع Sum أو خاصية الجمع التلقائي.
</p>

<p style="text-align: center;">
	<img alt="21_مثال اللصق الخاص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73711" data-unique="96bzlzt3l" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b4220d3_21_.png.f3c04f54819d9a71f42d234200e9908e.png" style=""></p>

<p>
	حاول نسخ القيمة 8 وإدراجها في ورقة عمل جديدة، أو نسخها في خلية أخرى في ذات الملف أو ملف آخر. ستحصل غالبًا على النتيجة 0 أو على قيمة أخرى (ليست القيمة 8). ولضمان استخدام احترافي لعملية اللصق في الاكسل، فعليك استخدام اللصق الخاص. فإذا أردت لصق قيمة خلية مرتبطة بدالة معينة مثلًا، فيمكنك استخدام خيار "لصق قيمة"، وإذا أردت نسخ الدالة ذاتها فاستخدم خيار "لصق الصيغ". وبالعودة للمثال السابق، عليك استخدام خيار لصق قيمة للصق القيمة 8.
</p>

<ol start="2">
<li>
		<strong>الخط</strong>: يحتوي على كافة خيارات تنسيق الخطوط مثل حجم الخط ولون الخط ونوع الخط وتكبير وتصغير الخط والحدود وإضافة خط تحت النص أو خلاله.
	</li>
</ol>
<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		لتنسيق كلمة "إكسل" مثلًا كالتالي: إكسل؛ فيمكننا تطبيق ذلك بسهولة، إذ أن أيقونة <strong>B</strong> تجعل الخط غامقًا، أما <em>I</em> فتجعله مائلًا، بينما U تضيف أسفله خط (تسطير مفرد)، وD تضيف أسفله خطّين (تسطير مزدوج)، أما ab فتضيف خطًا. ويمكننا أيضًا تحديد نوع الخط وحجمه ولونه، وكذلك لون تعبئة الخلية. تساعدك أيقونات <code>A A</code> على تغيير حجم خط النص بالزيادة أو النقصان.
	</p>
</blockquote>

<p style="text-align: center;">
	<img alt="22-الخط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73712" data-unique="57ubxi4p6" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b489f6d_22-.png.d80cc7504546af493874be1bf47efdad.png" style=""></p>

<p>
	يوفّر الإكسل العديد من الخيارات لحدود الخلايا مثل تعيين حدود داخلية للخلية أو حدود خارجية، أو تحديد حدود من جهة معينة مثل حدود علوية فقط. كما يوفر الإكسل خيارات للتحكم في نمط الحد ولونه، حيث يمكنك تحديد كافة الحدود للبيانات في ورقة العمل مثلًا بلون أزرق ونمط "خط مزدوج"، ويظهر الجدول كالشكل التالي:
</p>

<p style="text-align: center;">
	<img alt="23_تنسيق الحدود.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73713" data-unique="hx7ujyx4j" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b561416_23_.png.fcc2d8b51a6952fb9a230b82bcabbd23.png" style=""></p>

<p style="text-align: center;">
	<img alt="24_إضافة وتنسيق حدود لجدول البيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73714" data-unique="rrkj0vqzo" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b5ebbe0_24_.png.a42a75c5ac0c1425834b45dba696e3da.png" style=""></p>

<p>
	نفترض أن لدينا البيانات التالية والتي سنضيف إليها التنسيقات المختلفة مثل تنسيق الخط والخلايا والحدود.
</p>

<p style="text-align: center;">
	<img alt="25-بيانات بدون تنسيق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73715" data-unique="zgsh6ctdw" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b6584d5_25-.png.2e480bf2978f6fffd93ee4f726f52d95.png" style=""></p>

<p>
	سنختار نوع الخط Calibari، بحجم خط 14 وبلون أسود، مع إضافة الحدود للخلايا. وسنضيف أيضًا تعبئة لخلايا العنوان (رأس الجدول)، مع جعلها بلون غامق.
</p>

<p style="text-align: center;">
	<img alt="26-بيانات مع تنسيق الخط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73716" data-unique="nt0znjkdi" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b711c82_26-.png.7ac36f040f2ab0cbec3c1e132c1ecb74.png" style=""></p>

<ol start="3">
<li>
		<strong>المحاذاة</strong>: تحتوي كافة الخيارات الخاصة بمحاذاة النصوص داخل الخلايا والتفاف النص ودمج وتوسيط الخلايا.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="27-المحاذاه.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73717" data-unique="x4fr636yl" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b753de0_27-.png.a0b0bdc0b08c2f477495841550e88aa1.png" style=""></p>

<p>
	سنعمل على محاذاة النص في خلايا العنوان لاتجاه الوسط أفقيًا ورأسيًا؛ أما في باقي الخلايا فسنعمل على محاذاة النص فيها للجهة اليمنى.
</p>

<p style="text-align: center;">
	<img alt="28- البيانات مع تنسيق المحاذاه.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73718" data-unique="0jfhgaclw" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b7e8720_28-.png.45be0b430f8cad7d1d1f02a7faa6c6f0.png" style=""></p>

<p>
	يمكنك زيادة أو إنقاص المسافة البادئة في النص باستخدام أيقونات التحكّم في المسافة البادئة <img alt="29-أيقونة المسافة البادئة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73719" data-unique="0mh7oczxd" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b85aba3_29-.png.8f1d7c8f4a731e7471be13fc44d7b42b.png" style="">، حيث تعمل أيقونة زيادة المسافة البادئة على إضافة مسافة قبل النص، بينما تعمل أيقونة إنقاص المسافة البادئة على تقليل المسافة قبل النص، ويمكننا على سبيل المثال زيادة المسافة البادئة في خلية "اسم الطالب".
</p>

<p style="text-align: center;">
	<img alt="30-زيادة المسافة البادئة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73720" data-unique="fuzky633k" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b8cb806_30-.png.5f22420405511b53e9ca394436c6f84d.png" style=""></p>

<p>
	يمكن إضافة عنوان للجدول، ودمج الخلايا وتوسيطها للحصول على عنوان للجدول.
</p>

<p style="text-align: center;">
	<img alt="31-إدراج عنوان للبيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73721" data-unique="7ixz3nbqw" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245b9b788d_31-.png.8888a541ee0c37f0bf286b78e696259b.png" style=""></p>

<p>
	سنحصل على الشكل التالي بعد عملية الدمج والتوسيط، ويمكننا إضافة تنسيق للعنوان باستخدام تنسيقات الخط التي تحدثنا عنها سابقًا.
</p>

<p style="text-align: center;">
	<img alt="32-دمج وتوسيط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73722" data-unique="win5aeifh" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ba66c20_32-.png.c7078f1c83cbbf2df198275783657507.png" style=""></p>

<ol start="4">
<li>
		<strong>الترقيم</strong>: يحتوي هذا الخيار على كافة الخيارات الخاصة بقيم الخلايا، مثل احتساب قيمة الخلية عملةً أو رقمًا عشريًا، أو نسبةً مئويةً أو غيرها. فعلى سبيل المثال، يُعَد المعدل الجامعي نسبةً مئوية في الشكل السابق.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="33- الترقيم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73723" data-unique="mbtg0tppx" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245bb1e287_33-.png.8770f3c84035d9cde143eea097062a14.png" style=""></p>

<p style="text-align: center;">
	<img alt="34- تنسيق المعدل الجامعي نسبة مئوية.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73724" data-unique="mfkah9ul9" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245bb974be_34-.png.84ea372bcd2cefc69892220570dffd98.png" style=""></p>

<ol start="5">
<li>
		<strong>الجداول</strong>: تحتوي على كافة الخيارات الخاصة بتنسيق الجدول مثل:
	</li>
</ol>
<ul style="margin-right: 40px;">
<li>
		<strong>التنسيق الشرطي</strong>: وهو تنسيق الخلايا بناءً على شرط معين. يمكن تطبيق هذا التنسيق الشرطي على أنواع القيم المختلفة سواءً كانت نصًا أو رقمًا أو تاريخًا أو عملةً أو نسبًة مئويًة أو غيرها، حيث سنعمل مثلًا على تنسيق المعدل الجامعي للطالب بلون أخضر في حال كان معدله فوق 49%.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="35- التنسيق الشرطي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73725" data-unique="ww6yy8sjn" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245bc43e75_35-.png.ec5d065838dccf0d90a07d197bbedf42.png" style=""></p>

<p style="text-align: center;">
	<img alt="36- تنسيق الخلايا الأكبر من 49.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73726" data-unique="wipikkwd3" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245bcce7b4_36-49.png.f25f059d180e7daf05dcd2b5f7a3c671.png" style=""></p>

<p>
	ستلاحظ الآن تعبئة كافة الخلايا التي تحتوي على معدلات أعلى من 49% باللون الأخضر. حاول إضافة تنسيق شرطي جديد باللون الأحمر لمن معدلهم أقل من 49% ولاحظ التغيير في لون تعبئة الخلايا.
</p>

<p style="text-align: center;">
	<img alt="37- نتيجة التنسيق الشرطي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73727" data-unique="zzk8cb2jd" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c0cb385_37-.png.fc24630e752afeaea79d69066fe1a49d.png" style=""></p>

<ul style="margin-right: 40px;">
<li>
		<strong>تنسيق كجدول</strong>: تتيح لك تنسيق الخلايا كجداول باستخدام أنماط مختلفة جاهزة. أضف أحد التنسيقات إلى بيانات ورقة العمل ولاحظ الشكل.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="38- تنسيق كجدول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73728" data-unique="trv6rzyx9" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c15e3d7_38-.png.555a38fa9e3c5b425ddb23962c553002.png" style=""></p>

<ul>
<li style="margin-right: 40px;">
		<strong>أنماط</strong>: وهي خاصية تتيح لك الإمكانية لإضافة أنماط مختلفة للخلايا، سواءً كانت الخلايا تحتوي على عناوين أو عملات أو ارتباطات تشعبية. أضف نمطًا معينًا لجدول البيانات في ورقة العمل ولاحظ الاختلاف.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="39- نمط الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73729" data-unique="ej2ffvrc4" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c22f725_39-.png.fdc935190a29953ac0b8b2b284568966.png" style=""></p>

<ol start="6">
<li>
		<strong>الخلايا</strong>: تتيح مجموعةً من الخيارات الخاصة بالخلايا مثل إدراج صفوف وأعمدة، وحذف صفوف وأعمدة، وتنسيق حجم الخلايا واحتوائها التلقائي للمحتوى. أدرج صفوفًا أو أعمدة، واحذف صفوفًا أو أعمدة من ورقة العمل.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="40-عمليات الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73730" data-unique="ehfby3iic" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c2c4a89_40-.png.e4b3f1f145592eb749e75e7aabb1b4f5.png" style=""></p>

<p style="text-align: center;">
	<img alt="41- قائمة إدراج.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73731" data-unique="rkoylox00" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c3a9171_41-.png.926b6f4f6e2c03556c3f740195724084.png" style=""></p>

<p>
	لإدراج طالب جديد في ورقة العمل قبل اسم "هدى حسين" على سبيل المثال، سنضع المؤشر على هذه الخلية، ونختار "إدراج صفوف في الورقة"، حيث سيُدرج صف جديد قبل اسم "هدى حسين".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="73732" href="https://academy.hsoub.com/uploads/monthly_2021_08/611245c4f18cc_42-.png.0a9d96a8c1230557d705d6c8a969dec7.png" rel=""><img alt="42- إدراج صف علوي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73732" data-unique="e8aaz9exj" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c69f8b1_42-.thumb.png.98a32cc1db9fe6bda72d2881bb6c3757.png" style=""></a>
</p>

<p>
	لاحظ أن الصف يُدرج قبل الصف المحدد.
</p>

<p style="text-align: center;">
	<img alt="43- إدراج صف علوي (2).png" class="ipsImage ipsImage_thumbnailed" data-fileid="73733" data-unique="png2ugx39" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c7b6cd7_43-(2).png.6259c862aef4ec313dd8897e1c424da2.png" style=""></p>

<p>
	إنّ آلية حذف الصفوف والأعمدة تشبه آلية إدراجها، لهذا ضع المؤشر على الصف أو العمود المراد حذفه، واختر حذف صفوف أو أعمدة.
</p>

<p style="text-align: center;">
	<img alt="44- قائمة حذف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73734" data-unique="ss39b30j7" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c92495c_44-.png.0818ee4ae5250d23089b384d0e16751f.png" style=""></p>

<p>
	يمكنك من خلال خيار التنسيق، تغيير عرض العمود وارتفاع الصف، كما يمكنك إتاحة جعل عرض العمود وارتفاع الصف تلقائيًا مناسبًا للمحتوى داخل الصف أو العمود وذلك باختيار "احتواء تلقائي".
</p>

<p style="text-align: center;">
	<img alt="45- قائمة التنسيق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73735" data-unique="1q6pe42ck" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245c9e53b3_45-.png.b18664ca662917940889e74c83297543.png" style=""></p>

<ol start="7">
<li>
		<strong>تحرير</strong>: يشتمل التحرير على عدة خيارات منها:
	</li>
</ol>
<ul style="margin-right: 40px;">
<li>
		<strong>الجمع التلقائي</strong>: وهي تحتوي على الدوال السريعة والأكثر شيوعًا في الإكسل، مثل المجموع والمتوسط والعدد الأكبر والعدد الأصغر وغيرها، حيث يمكننا مثلًا إيجاد المعدل الأعلى في قائمة الطلاب كالتالي:
	</li>
</ul>
<p style="text-align: center;">
	<img alt="46-دالة أكبر عدد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73736" data-unique="gxcznx1tl" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ca52014_46-.png.65d8396a88d81cf3ea66bc000946212f.png" style=""></p>

<p style="text-align: center;">
	<img alt="47- إيجاد أعلى معدل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73737" data-unique="8ve84lc2q" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245cb276bf_47-.png.78f3ca80660d530fee91811e000b13f8.png" style=""></p>

<p>
	اضغط على مفتاح <code>Enter</code> من لوحة المفاتيح، حيث ستجد القيمة 88% وهي المعدل الأعلى بين المعدلات في ورقة العمل.
</p>

<ul style="margin-right: 40px;">
<li>
		<strong>الفرز والتصفية</strong>: فرز الخلايا أي ترتيب الخلايا تنازليًا أو تصاعديًا مثل ترتيب الطلاب من الأكبر للأصغر حسب معدلهم الجامعي، أو ترتيب الطلاب أبجديًا تبعًا لاسم العائلة أو الاسم الأول. كما يمكنك استخدام "الفرز المخصص" لمزيد من الخيارات.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="48-فرز مخصص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73738" data-unique="sb7oiva68" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245cb9a77e_48-.png.9e10f660b3f7cfdf4a51383b7121850a.png" style=""></p>

<p>
	أما تصفية الخلايا، فيقصد بها اختيار فئة محددة وعرضها في ورقة العمل بدلًا من عرض كافة البيانات، مثل عرض الطلاب من تخصص "تكنولوجيا المعلومات" فقط.
</p>

<p style="text-align: center;">
	<img alt="49-تصفية الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73739" data-unique="dx7y5y8em" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ccf3e7c_49-.png.7fb99ff310e483244f121bb17f1d0f1a.png" style=""></p>

<p>
	ستلاحظ النتيجة كالتالي: اختفاء كافة الصفوف ما عدا طلاب تخصص "تكنولوجيا المعلومات".
</p>

<p style="text-align: center;">
	<img alt="50-ناتج تصفية الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73740" data-unique="e6j6w99hk" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245cd7f0b8_50-.png.8f0f9bfe12264b65e4a797698c068f63.png" style=""></p>

<ul style="margin-right: 40px;">
<li>
		<strong>بحث وتحديد</strong>: وتشمل ثلاثة خيارات:
	</li>
</ul>
<p style="text-align: center;">
	<img alt="51-البحث.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73741" data-unique="87sgbj436" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ce157e8_51-.png.451e4133654b1674f6cae163fdd5b87f.png" style=""></p>

<ul style="margin-right: 40px;">
<li>
		<strong>بحث</strong>: للبحث عن قيمة معينة في الخلايا. ويمكن استخدام "خيارات البحث" لتحديد أدق لعملية البحث.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="52-بحث متقدم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73742" data-unique="soj6ed3eg" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ce7ac05_52-.png.07a0ca7585b7f3cdc3f35b66c511f78a.png" style=""></p>

<ul style="margin-right: 40px;">
<li>
		<strong>استبدال</strong>: استبدال كلمة بأخرى في الملف. حيث نريد مثلًا استبدال "تكنولوجيا المعلومات" بـ "Information Technology".
	</li>
</ul>
<p style="text-align: center;">
	<img alt="53-استبدال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73743" data-unique="j2rj5m2ed" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245ceed012_53-.png.7ceb2a61ecd9ab51387f55eb3a348654.png" style=""></p>

<ul style="margin-right: 40px;">
<li>
		<strong>انتقال إلى</strong>: للانتقال إلى خلية معينة في الملف في أي ورقة من ورق العمل. نريد الانتقال إلى نطاق الخلايا A1:A50 في ورقة العمل الأولى في الملف على سبيل المثال .
	</li>
</ul>
<p style="text-align: center;">
	<img alt="54-الانتقال إلى.png" class="ipsImage ipsImage_thumbnailed" data-fileid="73744" data-unique="4e223nyh0" src="https://academy.hsoub.com/uploads/monthly_2021_08/611245cf555e2_54-.png.1e019ac6d33fe93f28e77f17873d3b2c.png" style=""></p>

<p>
	بهذا نكون قد تعرّفنا على أساسيات تطبيق إكسل 365 أونلاين، وتعرّفنا على طريقة الوصول للتطبيق وكيفية الاستفادة منه. يمكنك الآن إضافة البيانات لورقة العمل في الإكسل وتنسيق المحتوى وتنسيق الخلايا وحدودها، كما يمكنك التحكّم في الصفوف والأعمدة بالإضافة إليها أو الحذف منها. كذلك يمكنك البحث عن قيمة في الملف، أو استبدال قيمة بأخرى.
</p>

<p>
	إذا كان لديك الآلاف من الصفوف، فيمكنك تصفيتها وفرزها للوصول إلى بياناتك بسرعة ممّا يوفر عليك الوقت والجهد، كما يمكنك تنسيق بياناتك بناءً على شروط تحددها بنفسك. باختصار، يمكنك استخدام ورقة عمل الإكسل بسهولة والتعامل مع تبويب الصفحة الرئيسية بما يحتويه من أدوات.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r487/" rel="">الدوال الشائعة في مايكروسوفت إكسل أونلاين 365 </a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AA%D8%A8%D9%88%D9%8A%D8%A8-%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D9%88%D9%85%D8%B2%D8%A7%D9%8A%D8%A7-%D8%A7%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%82%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A3%D9%88%D9%86%D9%84%D8%A7%D9%8A%D9%86-365-r486/" rel="">تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 </a>
	</li>
</ul>
]]></description><guid isPermaLink="false">485</guid><pubDate>Thu, 05 Aug 2021 12:00:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62A;&#x639;&#x627;&#x645;&#x644; &#x645;&#x639; &#x627;&#x644;&#x623;&#x62E;&#x637;&#x627;&#x621; &#x641;&#x64A; VBA &#x636;&#x645;&#x646; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%A3%D8%AE%D8%B7%D8%A7%D8%A1-%D9%81%D9%8A-vba-%D8%B6%D9%85%D9%86-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r455/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c8417e4a96b_-------VBA.png.30c88a3feec2f1db63f8831dee59a85a.png" /></p>

<p>
	عند كتابة الإجراءات نُجهّز كل شيء للتعامل مع أوامر المستخدم النهائي للتطبيق، ولكن بغض النظر عن مدى خبرتك في كتابة الشيفرات في VBA، فإنّ الأخطاء دائمًا ستكون جزءًا من الشيفرة سواءً كنت مبتدئًا أو خبيرًا، ولكن الفرق هنا بين المبتدئ والخبير هو معرفة كيفية التعامل مع الأخطاء واستخدامها فعّالية.
</p>

<h2>
	أنواع الأخطاء
</h2>

<p>
	في البداية لابد لنا من معرفة الأنواع المختلفة للأخطاء التي من المحتمل أن تواجهنا في عملية البرمجة، فهناك أربعة أنواع من الأخطاء في VBA وهي:
</p>

<ul>
<li>
		أخطاء في بنية التركيب البرمجي (الشيفرة البرمجية) Syntax errors.
	</li>
	<li>
		أخطاء التجميع Compilation errors.
	</li>
	<li>
		أخطاء التشغيل Runtime errors.
	</li>
	<li>
		أخطاء منطقية Logical Errors.
	</li>
</ul>
<h3>
	أخطاء في بنية التركيب البرمجي Syntax errors
</h3>

<p>
	هي أخطاء تحدث في بناء الشيفرة، مثل: نسيان قوس مفتوح، أو نسيان كتابة جزء من تعليمة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69301" href="https://academy.hsoub.com/uploads/monthly_2021_06/001Error.PNG.3906ee4f67e9ac1f0bd3f82ed678e613.PNG" rel=""><img alt="001Error.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69301" data-unique="oz3zj6seh" src="https://academy.hsoub.com/uploads/monthly_2021_06/001Error.PNG.3906ee4f67e9ac1f0bd3f82ed678e613.PNG"></a>
</p>

<p>
	نجد في الإجراء الموضَّح بالصورة أن التركيب خاطئ، حيث أنّ الشرط يفتقد لكلمة <code>Then</code>، وعند كتابة التعليمات في VBA، فسيتحقق المحرّر من كل الجملة بمجرد الضغط على الزر <code>Enter</code>، فإذا وجد شيئًا مفقودًا في بناء التركيب، فسيعرض رسالةً على الفور تحتوي بعض النص الذي يمكن أن يساعدك في فهم الجزء المفقود.
</p>

<p>
	للتأكد من رؤية المحرّر لأخطاء التركيب البرمجي كلما كان هناك شيء مفقود، فنحتاج إلى التأكد من تمكين التحقّق من بناء الجملة <strong>Auto syntax check</strong>، وذلك من قائمة <strong>Tools</strong> في واجهة المحرّر، حيث نضغط على الخيار <strong>options</strong> لتظهر لنا النافذة التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69302" href="https://academy.hsoub.com/uploads/monthly_2021_06/002Error.PNG.58dd3ca59a46519505ba3b4c8e912f74.PNG" rel=""><img alt="002Error.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69302" data-unique="ew7kpt18f" src="https://academy.hsoub.com/uploads/monthly_2021_06/002Error.PNG.58dd3ca59a46519505ba3b4c8e912f74.PNG"></a>
</p>

<p>
	نتأكد من تبويب <strong>Editor</strong> بأن الخيار<strong>Auto syntax check</strong> مُفعّل، فإذا كان غير مُفعّل فإن المحرّر سيُحدد لك السطر الذي يحوي الخطأ ويُلّونَه بلون أحمر ولكن بدون إعلامنا ما هو نوع الخطأ.
</p>

<h3>
	أخطاء التجميع Compilation errors
</h3>

<p>
	تحدث عندما يكون هناك جزء مفقود من النص ومطلوب في نفس الوقت، تتشابه هذه الأخطاء قليلًا مع المجموعة السابقة لكن الفرق بينهما بينهما يكمن في كون الأخطاء في بنية التركيب تُظهر الخطأ في حال كان السطر البرمجي فيه جزء مفقود، أمّا أخطاء التجميع فتظهر عند تشغيل الشيفرة ويكون سطر بالكامل مفقود، أي أن صيغة الشيفرة صحيحة في سطر ما ولكنها غير صحيحة عند معالجة جميع شيفرة الإجراء أو المشروع ككتلة واحدة، ومن الأمثلة على ذلك:
</p>

<ul>
<li>
		تعليمة <code>IF</code> الشرطيّة بدون عبارة <code>End IF</code> المقابلة لها.
	</li>
	<li>
		حلقة <code>For</code> التكرارية بدون عبارة <code>Next</code> المقابلة لها.
	</li>
	<li>
		استدعاء إجراء غير موجود، أو موجود ولكن فيه معلومات خاطئة.
	</li>
	<li>
		عدم تعريف أحد المتغيّر ات.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69303" href="https://academy.hsoub.com/uploads/monthly_2021_06/003Error.PNG.cc7c4eb49c528199b07d5a0cc55da36d.PNG" rel=""><img alt="003Error.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69303" data-unique="84enso0ko" src="https://academy.hsoub.com/uploads/monthly_2021_06/003Error.PNG.cc7c4eb49c528199b07d5a0cc55da36d.PNG"></a>
</p>

<h3>
	أخطاء التشغيل Runtime errors
</h3>

<p>
	هي الأخطاء التي تحدث أثناء تشغيل الشيفرة، وذلك عندما نكون قد تجاوزنا النوعين السابقين من الأخطاء، أي في حال وجود خطأ من أحدهما فله أولوية الظهور بين الأخطاء ولا يظهر خطأ التشغيل قبل معالجته، ومن الأمثلة على الأخطاء وقت التشغيل:
</p>

<ul>
<li>
		إدخال بعض البيانات في صفحة ما ضمن الملف الذي نعمل عليه ولكن هذه الصفحة غير موجودة (سواءً حُذفت أو تغيّر اسمها).
	</li>
	<li>
		تصميم إجراء يحتوي عمليات على ملف ما وعند التشغيل لم يَجِد المحرّر هذا الملف، عندها نحصل على خطأ التشغيل.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69304" href="https://academy.hsoub.com/uploads/monthly_2021_06/004Error.PNG.5e0ddfa444698e20a888e96e60ce4aa1.PNG" rel=""><img alt="004Error.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69304" data-unique="kosune9xv" src="https://academy.hsoub.com/uploads/monthly_2021_06/004Error.PNG.5e0ddfa444698e20a888e96e60ce4aa1.PNG"></a>
</p>

<p>
	في هذا النوع من الأخطاء نجد أن المحرّر سيُظهر لنا نافذةً تحتوي على خطأ من النوع أخطاء التشغيل Runtime errors، ولكنها مفيدة أكثر من النوعين السابقين، حيث نجد أن محتوى الرسالة هو تفصيل شبه كامل عن الخطأ وسببه، وعند الضغط على الزر <strong>Debug</strong>، فسيعمل المحرّر على تمييز جزء الشيفرة الذي يؤدي إلى الخطأ.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69305" href="https://academy.hsoub.com/uploads/monthly_2021_06/005Error.PNG.9950b5235b79b039ce9e0331cfe551f0.PNG" rel=""><img alt="005Error.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69305" data-unique="rasp2bk52" src="https://academy.hsoub.com/uploads/monthly_2021_06/005Error.PNG.9950b5235b79b039ce9e0331cfe551f0.PNG"></a>
</p>

<h3>
	أخطاء منطقية Logical Errors
</h3>

<p>
	لا تؤدي هذه الأخطاء إلى إيقاف تنفيذ الشيفرة ولكنها قد تؤدي إلى نتائج خاطئة يمكن أن تكون أصعب أنواع الأخطاء اكتشافًا، وبالتالي فإن إصلاحها يكون أصعب، حيث أن المحرّر لا يستطيع تمييزها وتحتاج إلى الإصلاح اليدوي، أمثلة على ذلك:
</p>

<ul>
<li>
		تعريف متغيّرين تجري عليهما عملية جمع ضمن إجراء ما وعند كتابة العملية وضع إشارة الضرب بدل إشارة الجمع بين المتغيّرين.
	</li>
	<li>
		كتابة حلقة غير منتهية مثل فحص الخلايا الفارغة في عمود، ولم نضع له شرط يحدد قيمة النهاية للفحص.
	</li>
</ul>
<h2>
	معالجة الأخطاء
</h2>

<p>
	هنالك ثلاث طرق للمعالجة يمكننا استخدامها وهي:
</p>

<ul>
<li>
		عرض الخطأ وإيقاف الشيفرة.
	</li>
	<li>
		تجاهل الخطأ وإكمال الشيفرة.
	</li>
	<li>
		تجاهل الخطأ والذهاب لموقع معين في الشيفرة.
	</li>
</ul>
<p>
	وجميعها تأخذ الصيغة العامة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_6" style="">
<span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> statement </span></pre>

<p>
	حيث أن <code>On Error</code> تفيد توجيه المحرّر إلى ما نريد تنفيذه لمعالجة الخطأ عند وجوده، و<code>statement</code> ما نريد من المحرّر فعله لمعالجته، ولدينا 4 حالات للمعالجة:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_8" style="">
<span class="pln">on </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">Go</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
on </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">Resume</span><span class="pln"> </span><span class="typ">Next</span><span class="pln">
on </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">Go</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="pun">[</span><span class="typ">Label</span><span class="pun">]</span><span class="pln">
on </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">Go</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span></pre>

<h3>
	المعالجة باستخدام on Error Go To 0
</h3>

<p>
	هو السلوك الافتراضي في VBA، بمعنى آخر إذا كنّا لا نستعمل أيًا من أساليب معالجة الأخطاء، فسينفّذ هذا النوع تلقائيًا عند وجود خطأ ما، حيث أن مُعالج الشيفرة يتوقف ويعرض رسالة الخطأ، وهنا يتطلب التطبيق تدخل المستخدم مع الشيفرة لمعالجة الخطأ حتى يتمكّن من متابعة تنفيذ الشيفرة.
</p>

<h4>
	مثال
</h4>

<p>
	ليكن لدينا الإجراء التالي الذي يعمل على حساب بعض المعادلات
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_10" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">UsingDefault</span><span class="pun">()</span><span class="pln">

</span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> y </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">    
x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6</span><span class="pln">
y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	عند تشغيل الشيفرة التالية، فستظهر رسالة الخطأ من النوع <code>on Error Go To 0</code>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69306" href="https://academy.hsoub.com/uploads/monthly_2021_06/006Error.gif.71664557cb58fbe0c6bcb7d7f3cb7973.gif" rel=""><img alt="006Error.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69306" data-unique="7a6fwtldt" src="https://academy.hsoub.com/uploads/monthly_2021_06/006Error.gif.71664557cb58fbe0c6bcb7d7f3cb7973.gif"></a>
</p>

<p>
	يفيدنا هذا النوع من المعالجات في تحديد موقع الخطأ ولكن له عدة مساوئ، حيث لا يمكن للمستخدِم الاستمرار بالعمل على التطبيق دون إصلاح هذا الخطأ، ويُعَد التطبيق غير مناسب للمستخدِم النهائي، وهو يُعَد من الأخطاء غير المهنية وتجعل التطبيق غير مستقر.
</p>

<h3>
	المعالجة باستخدام on Error Resume Next
</h3>

<p>
	يؤدي استخدام هذا النوع إلى تجاهل السطر الذي يحتوي على الخطأ والمتابعة بدون تنفيذه. هناك مواضع محددة قد يكون هذا النوع من الحلول مفيدًا، ولكن في الغالب يُفضّل عدم استخدامه إلا للضرورة، لأنه من الممكن أن يؤثِّر الخطأ على كتلة التطبيق وينتهي بنا المطاف بالحصول على بيانات خاطئة أو غير صالحة، حيث أن المستخدِم لن يعلم بحدوث الخطأ أثناء التشغيل.
</p>

<h4>
	مثال
</h4>

<p>
	لنأخذ نفس المثال السابق، حيث عند استعمال هذه الصيغة يصبح شكل الإجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_13" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">UsingDefault</span><span class="pun">()</span><span class="pln">

</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">Resume</span><span class="pln"> </span><span class="typ">Next</span><span class="pln"> 
   </span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> y </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">    
    x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6</span><span class="pln">
    y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69307" href="https://academy.hsoub.com/uploads/monthly_2021_06/007Error.gif.c71de9dd70849598edca31b37da1e225.gif" rel=""><img alt="007Error.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69307" data-unique="0jhtooshb" src="https://academy.hsoub.com/uploads/monthly_2021_06/007Error.gif.c71de9dd70849598edca31b37da1e225.gif"></a>
</p>

<p>
	نلاحظ أنه عند تشغيل الشيفرة بدون التعليمة، فسيُظهر لنا المحرّر رسالة الخطأ، أي أنه يعمل على النوع <code>on Error Go To 0</code>؛ أما عند وضع التعليمة <code>on Error Resume Next</code> فقد تجاهلَ المحرّر سطر الخطأ وأكمل قراءة الشيفرة.
</p>

<p>
	عند استخدامنا للتعليمة <code>On Error Resume Next</code> فإن الشيفرة تتجاهل الخطأ الذي نتوقع حدوثه، ولكن ماذا لو كان في الشيفرة أخطاء أخرى لم نتوقعها، هنا ستتجاهلها الشيفرة أيضًا. لذلك يجب أن نُعيد سياق فحص الأخطاء إلى الوضع الافتراضي لذا نستخدم هنا <code>on Error Go To 0</code> بعد التعليمة التي نريد تجاهل خطأها.
</p>

<h4>
	مثال آخر
</h4>

<p>
	ليكن لدينا الإجراء التالي الذي يحدد الخلايا الفارغة ضمن عدة خلايا مُحددة:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_15" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">SelectFormulaCells</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> y </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">    
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">Resume</span><span class="pln"> </span><span class="typ">Next</span><span class="pln">
</span><span class="typ">Selection</span><span class="pun">.</span><span class="typ">SpecialCells</span><span class="pun">(</span><span class="pln">xlCellTypeBlanks</span><span class="pun">).</span><span class="typ">Select</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
X</span><span class="pun">=</span><span class="lit">7</span><span class="pln">
Y</span><span class="pun">=</span><span class="lit">7</span><span class="pun">/</span><span class="lit">0</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	عندما تكون الخلايا المحددة جميعها غير فارغة، فسينتج لدينا خطأ تشغيل، وهنا سيتجاهل المحرّر الخطأ الأول ولكن لا يتجاهل الثاني ويُظهر خطأ تشغيل عند السطر <code>Y=7/0</code>.
</p>

<h3>
	المعالجة باستخدام ‪on Error Go To [Label]
</h3>

<p>
	هي طريقة يمكنك من خلالها تحديد ما تريد فعله في حال وجود خطأ في الشيفرة البرمجية والصيغة العامة لها:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_17" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Test</span><span class="pun">()</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="typ">Label</span><span class="pun">:</span><span class="pln">
</span><span class="kwd">this</span><span class="pln"> line causes an error </span><span class="pun">(سطر</span><span class="pln"> </span><span class="pun">يحتوي</span><span class="pln"> </span><span class="pun">على</span><span class="pln"> </span><span class="pun">خطأ)</span><span class="pln">
</span><span class="typ">Exit</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">
</span><span class="typ">Label</span><span class="pun">:</span><span class="pln">
code to handle the error
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	حيث أن:
</p>

<ul>
<li>
		<strong>Exit sub</strong>: تفيد هنا عدم انتقال الشيفرة للجزء التالي إذا كانت التعليمات سليمةً ولا تحوي أخطاء.
	</li>
	<li>
		<strong>label</strong>: العنوان الذي ستنتقل إليه الشيفرة عند وجود خطأ في القسم الأول، ويمكن أن يحتوي رسالةً أو تعليمات جديدة.
	</li>
</ul>
<h4>
	مثال
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_19" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Errorhandler</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> y </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">    
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="typ">ErrMsg</span><span class="pln">
X </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pln">
Y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">20</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">

</span><span class="typ">Exit</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">
</span><span class="typ">ErrMsg</span><span class="pun">:</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"There seems to be an error"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69308" href="https://academy.hsoub.com/uploads/monthly_2021_06/008Error.gif.3c50f089a9d9b186bbf4e22a8e0c4461.gif" rel=""><img alt="008Error.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69308" data-unique="okwasxcgb" src="https://academy.hsoub.com/uploads/monthly_2021_06/008Error.gif.3c50f089a9d9b186bbf4e22a8e0c4461.gif"></a>
</p>

<p>
	عند حدوث خطأ ما هنا فستُنفذ الأسطر قبل سطر الخطأ، حيث أنه يُسند القيمة 12 إلى المتغيّر <code>x</code> ولكن عند حدوث الخطأ لا تُسند القيمة للمتغيّر <code>y</code>، وبالتالي لا يُنفذ باقي الشيفرة أي أنه أيضًا لا تُسند القيمة إلى <code>z</code>، عندها ينتقل تنفيذ الشيفرة إلى الجزء <code>ErrMsg</code>
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		عند معالجة خطأ بالنوع <code>[on Error Go [Label</code> وحدوث خطأ آخر يليهK فإن المحرّر يعود للوضع الافتراضي <code>on Error GoTo 0</code> تلقائيًا.
	</p>
</blockquote>

<h3>
	المعالجة باستخدام on Error Go To -1
</h3>

<p>
	يُستخدZم هذا النوع لمسح الخطأ الحالي من ذاكرة VBA بدلًا من تحديد سلوك معيّن، حيث أن ذاكرة VBA تسمح لنا بالتعامل مع خطأ واحد وتحفظه بالذاكرة، إذ لديها مكان واحد لحفظ الأخطاء، وتعمل هذه التعليمة على تفريغ هذا المكان للخطأ التالي إن وُجِد، ومن غير المحتمل أن نستخدِم هذه التعليمة في عملنا.
</p>

<h4>
	مثال
</h4>

<p>
	ليكن لدينا جزء من إجراء كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_21" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Errorhandler</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> y </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> Z </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> A </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> B </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="typ">ErrMsg</span><span class="pln">
X </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pln">
Y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">20</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
Z </span><span class="pun">=</span><span class="pln"> </span><span class="lit">30</span><span class="pln">
</span><span class="typ">Exit</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">
</span><span class="typ">ErrMsg</span><span class="pun">:</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"There seems to be an error"</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="typ">ErrMsg2</span><span class="pln">
A </span><span class="pun">=</span><span class="pln"> </span><span class="lit">10</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
B </span><span class="pun">=</span><span class="pln"> </span><span class="lit">35</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
</span><span class="typ">Exit</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">
</span><span class="typ">ErrMsg2</span><span class="pun">:</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"There seems to be an error again"</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69309" href="https://academy.hsoub.com/uploads/monthly_2021_06/009Error.gif.0a60974e70187cbf6000aba518d3e74a.gif" rel=""><img alt="009Error.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69309" data-unique="6ox0ggjsn" src="https://academy.hsoub.com/uploads/monthly_2021_06/009Error.thumb.gif.0835dd8524098bd98b1cf645f3f3d549.gif"></a>
</p>

<p>
	عند معالجة الخطأ الأول تستمر الشيفرة بتنفيذ ما تحتوي الأسطر التي بعد قسم معالجة الخطأ، ولكن عند الوصول لخطأ ثانٍ فسنحصل على خطأ من أخطاء التشغيل Runtime errors، بحيث لا ينقلنا المحرّر إلى جزء المعالجة الثاني ولهذا يجب علينا تفريغ الذاكرة أولًا وذلك عن طريق التعليمة <code>On Error GoTo -1</code>، عندها ينتقل الإجراء في الخطأ الثاني إلى قسم معالجة الخطأ الثاني ولا يظهر خطأ التشغيل Runtime error، وتصبح الشيفرة كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5161_23" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Errorhandler</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> y </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> Z </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> A </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pun">,</span><span class="pln"> B </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="typ">ErrMsg</span><span class="pln">
X </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pln">
Y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">20</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
Z </span><span class="pun">=</span><span class="pln"> </span><span class="lit">30</span><span class="pln">
</span><span class="typ">Exit</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">
</span><span class="typ">ErrMsg</span><span class="pun">:</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"There seems to be an error"</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pln">
</span><span class="typ">On</span><span class="pln"> </span><span class="typ">Error</span><span class="pln"> </span><span class="typ">GoTo</span><span class="pln"> </span><span class="typ">ErrMsg2</span><span class="pln">
A </span><span class="pun">=</span><span class="pln"> </span><span class="lit">10</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
B </span><span class="pun">=</span><span class="pln"> </span><span class="lit">35</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="lit">0</span><span class="pln">
</span><span class="typ">Exit</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">
</span><span class="typ">ErrMsg2</span><span class="pun">:</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"There seems to be an error again"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69310" href="https://academy.hsoub.com/uploads/monthly_2021_06/010Error.gif.97f2984a0da3ed18b801481c0ccb287a.gif" rel=""><img alt="010Error.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69310" data-unique="h1rwd6skd" src="https://academy.hsoub.com/uploads/monthly_2021_06/010Error.thumb.gif.e53622993a50d4f1caa5984a14973ba2.gif"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	إن للأخطاء أهمية كبيرة في عمليات البرمجة فهي تعمل على تصحيح عمل الشيفرة ولكن بطريقة غير مباشرة، حيث تكمن أهميتها في اكتشاف المشاكل والأجزاء المفقودة من التعليمات، كما أن التطبيقات موجّهة لمستخدمين ربّما لا يكون لديهم معرفة بتعديل الأخطاء، أو حتى فهمها لذا يجب علينا أن نُعالج كافة الأخطاء وتقدير احتمالات حدوثها، ووضع حلول مسبقة لها ولهذا تُعَد معالجة الأخطاء من المهام الأساسيّة في عمليّة صناعة البرمجيات، ويجب إتقانها جيدًا لصناعة تطبيقات خالية من العيوب.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">455</guid><pubDate>Mon, 05 Jul 2021 12:03:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62A;&#x641;&#x627;&#x639;&#x644; &#x645;&#x639; &#x627;&#x644;&#x645;&#x633;&#x62A;&#x62E;&#x62F;&#x645; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c83f10d349f_-------VBA.png.e0c25afba4a08ea93e0ea28c867104d3.png" /></p>

<p>
	تتفاعل إجراءات الفيجوال بيسك مع المستخدم عن طريق نوعين من النوافذ، وهما: الرسائل الصندوقية <code>MsgBox</code>، وصناديق الإدخال <code>InputBox</code>.
</p>

<h2>
	التعامل مع الرسائل النصية MsgBox
</h2>

<p>
	تُستخدَم للتواصل والتفاعل مع المستخدِم، ومن خلالها يمكننا عرض المعلومات وطرح الأسئلة وحفظ الإجابات، كما يمكننا توجيهه لإجراء عمل ما في بعض الأحيان مثل (التأكد من الإغلاق، حفظ الملف قبل الإغلاق).
</p>

<h3>
	الشكل العام للصيغة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_6" style="">
<span class="typ">MsgBox</span><span class="pun">(</span><span class="pln">prompt</span><span class="pun">,[</span><span class="pln">buttons</span><span class="pun">],[</span><span class="pln">title</span><span class="pun">],[</span><span class="pln">help</span><span class="pun">,</span><span class="pln">context</span><span class="pun">])</span></pre>

<p>
	حيث أن:
</p>

<ul>
<li>
		<strong>prompt</strong>: هو نص الرسالة التي ستظهر للمستخدِم، وهو مُعطى مطلوب.
	</li>
	<li>
		<strong>buttons</strong>: هي الأزرار التي سنضيفها للرسالة، وهو مُعطى اختياري، حيث أن القيمة الافتراضيّة له هي زر موافق.
	</li>
	<li>
		<strong>title</strong>: هو النص الذي سيظهر في شريط العنوان للرسالة، وهو مُعطى اختياري، حيث أن القيمة الافتراضيّة له هي <strong>Microsoft Excel</strong>.
	</li>
	<li>
		<strong>help,context</strong>: إرفاق ملف مساعد بمثابة دليل للمستخدم، وهو مُعطى اختياري ولا يُستخدم مع إكسل غالبًا.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69289" href="https://academy.hsoub.com/uploads/monthly_2021_06/001MsgBox.PNG.7f8de711d5e8f508d9ce381e9700005a.PNG" rel=""><img alt="001MsgBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69289" data-unique="3p7i4s3fv" src="https://academy.hsoub.com/uploads/monthly_2021_06/001MsgBox.PNG.7f8de711d5e8f508d9ce381e9700005a.PNG"></a>
</p>

<h3>
	أشكال الرسائل المستخدمة في MsgBox
</h3>

<p>
	يوجد خمس أجزاء تعمل على تشكيل الرسائل، أربعة منها أساسية وواحدة نادرة الاستخدام، بحيث نُدخلها كاملةً ضمن المُعطى <code>button</code> وهي:
</p>

<ul>
<li>
		نوع الأزرار الظاهرة.
	</li>
	<li>
		نوع الأيقونات ضمن الرسالة.
	</li>
	<li>
		تعيين الزر الافتراضي.
	</li>
	<li>
		تعيين نوع الاستجابة.
	</li>
	<li>
		إضافة بعض الخصائص للرسالة.
	</li>
</ul>
<h3>
	تحديد نوع الأزرار الظاهرة
</h3>

<p>
	لدينا الأنواع التالية التي تُحدد عمل الرسائل عن طريق الأزرار المستخدَمة وهي:
</p>

<ul>
<li>
		<strong>vbOKOnly</strong>: تعمل على إظهار الزر <strong>OK</strong> فقط، رقم التعريف الخاص به 0، وهو الإفتراضي عند عدم تحديد نوع الزر المستخدَم. +<strong>vbOKCancel</strong>: تعمل على إظهار الزر <strong>OK</strong> مع زر <strong>Cancel</strong>، ورقم التعريف الخاص به 1.
	</li>
	<li>
		<strong>vbAbortRetryIgnore</strong>: تعمل على إظهار الأزرار <strong>Abort</strong> بمعنى فشل العملية، و<strong>Retry</strong> لإعادة المحاولة، و<strong>Ignore</strong> بعنى تجاهل الخطأ؛ أما رقم التعريف الخاص به 2.
	</li>
	<li>
		<strong>vbYesNoCancel</strong>: تعمل على إظهار الأزرار <strong>Yes</strong>، و<strong>No</strong>، و<strong>Cancel</strong> التي تفيد هنا إلغاء العملية؛ أما رقم التعريف الخاص به فهو 3.
	</li>
	<li>
		<strong>vbYesNo</strong>: تعمل على إظهار الأزرار <strong>Yes</strong>، و<strong>No</strong> ، ورقم التعريف الخاص به هو 4.
	</li>
	<li>
		<strong>vbRetryCancel</strong>: تعمل على إظهار الأزرار <strong>Cancel</strong>، و<strong>Retry</strong>، رقم التعريف الخاص به هو 5.
	</li>
</ul>
<p>
	نستطيع استخدام أحد هذه الأزرار ببساطة، ولكن نحتاج إلى تعريف متغيّر نوعه <code>MsgBoxResult</code> لتخزين نتيجة اختيار المستخدِم فيه لاستعمالها لاحقًا في تنفيذ الأوامر. ولا نُعرّف هذا المتغيّر في حال استخدامنا للزر<code>vbOKOnly</code> فقط.
</p>

<h3>
	آلية حفظ نتيجة اختيار المستخدم
</h3>

<p>
	على فرض أننا نستعمل الزر من النوع <code>vbYesNoCancel</code>، فسيكون له ثلاثة احتمالات لاختيار المستخدم، ولتكن لدينا الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_8" style="">
<span class="typ">Sub</span><span class="pln"> test1</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> result </span><span class="typ">As</span><span class="pln"> </span><span class="typ">VbMsgBoxResult</span><span class="pln">
result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">MsgBox</span><span class="pun">(</span><span class="str">"هل أنت متأكد من الإغلاق"</span><span class="pun">,</span><span class="pln"> vbYesNoCancel</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	هنا تكون النتيجة إحدى الاحتمالات التالية <code>vbYes</code>، و<code>vbNo</code>، و<code>vbCancel</code>. وعند الضغط على أحد هذه الأزرار، فستُحفظ قيمته في المتغيّر بحيث يمكننا الاستفادة منها لاحقًا في تنفيذ بعض التعليمات اعتمادًا عليها، وبنفس الطريقة تعمل باقي الأزرار. كما يمكننا استخدام رقم التعريف عوضًا عن الاسم، أي لاستعمال الزر <code>vbYesNoCancel</code> نضع في المُعطى الخاص به الرقم المُعرِّف له بدل اسم الزر وهو 3، والذي يعطي نفس النتيجة.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_10" style="">
<span class="typ">Sub</span><span class="pln"> test1</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> result </span><span class="typ">As</span><span class="pln"> </span><span class="typ">VbMsgBoxResult</span><span class="pln">
result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">MsgBox</span><span class="pun">(</span><span class="str">"هل أنت متأكد من الإغلاق"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h3>
	تحديد نوع الأيقونات الظاهرة
</h3>

<ul>
<li>
		<strong>vbCritical</strong>: إظهار علامة X، ورقم التعريف الخاص به 16.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69290" href="https://academy.hsoub.com/uploads/monthly_2021_06/002MsgBox.PNG.8e8a318ecdbde633c4ceb5c1ce31626c.PNG" rel=""><img alt="002MsgBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69290" data-unique="pqk0c1448" src="https://academy.hsoub.com/uploads/monthly_2021_06/002MsgBox.PNG.8e8a318ecdbde633c4ceb5c1ce31626c.PNG"></a>
</p>

<ul>
<li>
		<strong>vbQuestion</strong>: إظهار علامة الاستفهام، ورقم التعريف الخاص به 32.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69291" href="https://academy.hsoub.com/uploads/monthly_2021_06/003MsgBox.PNG.519766b8b249a50638d20a1d71dc3e67.PNG" rel=""><img alt="003MsgBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69291" data-unique="8jkub6jr2" src="https://academy.hsoub.com/uploads/monthly_2021_06/003MsgBox.PNG.519766b8b249a50638d20a1d71dc3e67.PNG"></a>
</p>

<ul>
<li>
		<strong>vbExclamation</strong>: إظهار علامة التعجب الصفراء المثلثة، ورقم التعريف الخاص به 48.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69292" href="https://academy.hsoub.com/uploads/monthly_2021_06/004MsgBox.PNG.32d0f468a1efb6896bc627df204a2f50.PNG" rel=""><img alt="004MsgBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69292" data-unique="3pnr365uz" src="https://academy.hsoub.com/uploads/monthly_2021_06/004MsgBox.PNG.32d0f468a1efb6896bc627df204a2f50.PNG"></a>
</p>

<ul>
<li>
		<strong>vbInformation</strong>: إظهار علامة التعجب الزرقاء الدائرية، ورقم التعريف الخاص به 64.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69293" href="https://academy.hsoub.com/uploads/monthly_2021_06/005MsgBox.PNG.fcfdf9dc2c9d89fd12c92be844aecb73.PNG" rel=""><img alt="005MsgBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69293" data-unique="9t5dhhv1z" src="https://academy.hsoub.com/uploads/monthly_2021_06/005MsgBox.PNG.fcfdf9dc2c9d89fd12c92be844aecb73.PNG"></a>
</p>

<p>
	يمكننا إضافة الأيقونة للرسالة عن طريق الوسيطة <code>buttons</code>، وذلك بإضافة اسم الأيقونة إلى اسم الزر، لنفصل بينهما بإشارة <strong>+</strong>، وبالعودة للمثال السابق وإضافة الأيقونة سنحصل على الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_12" style="">
<span class="typ">Sub</span><span class="pln"> test1</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> result </span><span class="typ">As</span><span class="pln"> </span><span class="typ">VbMsgBoxResult</span><span class="pln">
result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">MsgBox</span><span class="pun">(</span><span class="str">"هل أنت متأكد من الإغلاق"</span><span class="pun">,</span><span class="pln"> vbYesNoCancel</span><span class="pun">+</span><span class="pln"> vbInformation</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	أو بالصيغة المرجعية لرقم الخاصية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_14" style="">
<span class="typ">Sub</span><span class="pln"> test1</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> result </span><span class="typ">As</span><span class="pln"> </span><span class="typ">VbMsgBoxResult</span><span class="pln">
result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">MsgBox</span><span class="pun">(</span><span class="str">"هل أنت متأكد من الإغلاق"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="lit">64</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h3>
	تحديد الزر الافتراضي
</h3>

<p>
	يمكننا تحديد أي الأزرار يكون هو الافتراضي عند الضغط على زر <code>Enter</code> من لوحة المفاتيح.
</p>

<ul>
<li>
		<strong>vbDefaultButton1</strong>: الزر الأول هو الافتراضي، ورقم التعريف الخاص به 0.
	</li>
	<li>
		<strong>vbDefaultButton2</strong>: الزر الثاني هو الافتراضي، ورقم التعريف الخاص به 256.
	</li>
	<li>
		<strong>vbDefaultButton3</strong>: الزر الثالث هو الافتراضي، ورقم التعريف الخاص به 512.
	</li>
	<li>
		<strong>vbDefaultButton4</strong>: الزر الرابع هو الافتراضي، ورقم التعريف الخاص به 768.
	</li>
</ul>
<h3>
	تحديد نوع الاستجابة
</h3>

<ul>
<li>
		<strong>vbApplicationModal</strong>: عند استخدامها تُجبر المستخدِم على الاستجابة للرسالة قبل المتابعة، ورقم التعريف الخاص به 0.
	</li>
	<li>
		<strong>vbSystemModal</strong>: عند استخدامها فإن جميع برامج النظام تتوقف حتى يستجيب المستخدم للرسالة، ورقم التعريف الخاص به 4096.
	</li>
</ul>
<h3>
	إضافة بعض الخصائص للرسالة
</h3>

<ul>
<li>
		<strong>vbMsgBoxHelpButton</strong>: إظهار زرّ <strong>Help</strong> على الرسالة، ورقم التعريف الخاص به 16384.
	</li>
	<li>
		<strong>vbMsgBoxSetForeground</strong>: جعل نافذة الرسالة في مقدمة النوافذ المفتوحة، ورقم التعريف الخاص به 65536.
	</li>
	<li>
		<strong>vbMsgBoxRight</strong>: محاذاة نص الرسالة للجهة اليُمنى، ورقم التعريف الخاص به 524288.
	</li>
	<li>
		<strong>vbMsgBoxRtlReading</strong>: اتجاه الكتابة من اليمين لليسار للغة العربية، ورقم التعريف الخاص به 1048576.
	</li>
</ul>
<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		هام جدًا: يمكننا استعمال خاصية واحدة من كل مجموعة من المجموعات السابقة في الرسالة الواحدة، ولا يمكننا استخدام خاصيتين من نفس المجموعة في نفس الرسالة.
	</p>
</blockquote>

<h3>
	مثال تطبيقي
</h3>

<p>
	ليكن لدينا جدول البيانات التالية ونريد كتابة إجراء يحذف البيانات ضمن الجدول، ولكن قبل الحذف نريد من المستخدم تأكيد العملية عن طريق <code>MsgBox</code> وفي حال لم يوافق على الحذف تظهر له رسالة أخرى تُعلمه أن البيانات لم تُحذف:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69294" href="https://academy.hsoub.com/uploads/monthly_2021_06/006MsgBox.PNG.d244c2204df99d8e70bd02c0444c9edc.PNG" rel=""><img alt="006MsgBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69294" data-unique="4v5qbzlxd" src="https://academy.hsoub.com/uploads/monthly_2021_06/006MsgBox.PNG.d244c2204df99d8e70bd02c0444c9edc.PNG"></a>
</p>

<p>
	لكتابة الإجراء الخاص بالعمليات السابقة، نُعرّف الإجراء ونضع له الاسم "clear"، ثم نُعرّف متغيّر من النوع <code>VbMsgBoxREsult</code> ونُسند إليه الرسالة التي ستظهر للمستخدِم، والتي تحتوي على رسالة تأكيد عملية الحذف. بحيث يكون الزر فيها من النوع <code>vbYesNo</code>، والأيقونة من النوع <code>vbQuestion</code>، بالإضافة لعنوان الرسالة الذي يُعبّر عن تحذير تصبح الصيغة كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_16" style="">
<span class="pln">result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">MsgBox</span><span class="pun">(</span><span class="str">"هل أنت واثق من حذف البيانات"</span><span class="pun">,</span><span class="pln"> vbYesNo </span><span class="pun">+</span><span class="pln"> vbQuestion</span><span class="pun">,</span><span class="pln"> </span><span class="str">"تحذير"</span><span class="pun">)</span></pre>

<p>
	لاستخدام نتيجة اختيار المستخدم نضع شرطًا، بحيث إذا ضغط المستخدِم على الزر yes، فسيُنفِّذ عملية حذف البيانات؛ أما إذا ضغط على الزر No، فينتقل للشق الثاني من الشرط وهو إظهار رسالة بأن البيانات لم تُحذف، نكتب الشرط بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_18" style="">
<span class="typ">If</span><span class="pln"> result </span><span class="pun">=</span><span class="pln"> vbYes </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D12:H29"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="pun">(</span><span class="str">"البيانات لم تُحذف"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<p>
	هكذا نكون قد حصلنا على الإجراء المطلوب ويصبح الإجراء كاملًا كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_20" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Clear</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> result </span><span class="typ">As</span><span class="pln"> </span><span class="typ">VbMsgBoxResult</span><span class="pln">
result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">MsgBox</span><span class="pun">(</span><span class="str">"هل أنت واثق من حذف البيانات"</span><span class="pun">,</span><span class="pln"> vbYesNo </span><span class="pun">+</span><span class="pln"> vbQuestion</span><span class="pun">,</span><span class="pln"> </span><span class="str">"تحذير"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">If</span><span class="pln"> result </span><span class="pun">=</span><span class="pln"> vbYes </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2:H12"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="pun">(</span><span class="str">"البيانات لم تُحذف"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69295" href="https://academy.hsoub.com/uploads/monthly_2021_06/007MsgBox.gif.145267cf55dd712e0189f497ada9d926.gif" rel=""><img alt="007MsgBox.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69295" data-unique="ty2slhry3" src="https://academy.hsoub.com/uploads/monthly_2021_06/007MsgBox.thumb.gif.9ce76f54649dc469ffea58bddafc7213.gif"></a>
</p>

<h2>
	التفاعل مع المستخدم عبر صندوق الإدخال عن طريق InputBox
</h2>

<p>
	مثل سابقتها، تعمل على إظهار رسالة للمستخدِم، ولكن عن طريقها يستطيع المستخدِم إدخال قيمة ما عبر صندوق إدخال القيم، ولدينا نوعان منها.
</p>

<h3>
	الشكل العام للصيغة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_22" style="">
<span class="typ">InputBox</span><span class="pun">(</span><span class="pln">prompt</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> title </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> </span><span class="kwd">default</span><span class="pln"> </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> xpos </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> ypos </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> helpfile</span><span class="pun">,</span><span class="pln"> context </span><span class="pun">])</span></pre>

<p>
	هذه التعليمة خاصّة بلغة فيجوال بيسك عمومًا، حيث أن:
</p>

<ul>
<li>
		<strong>prompt</strong>: هو نص الرسالة التي ستظهر للمستخدِم، وهو مُعطى مطلوب.
	</li>
	<li>
		<strong>title</strong>: هو النص الذي سيظهر في شريط العنوان للرسالة، وهو مُعطى اختياري، حيث أن القيمة الافتراضيّة له هي *<em>Microsoft Excel</em>*.
	</li>
	<li>
		<strong>default</strong>: هي القيمة الافتراضيّة في صندوق الإدخال، وهو مُعطى اختياري.
	</li>
	<li>
		<strong>xpos</strong>: هي الموقع الأفقي لظهور الرسالة في الصندوق، وهو مُعطى اختياري، تكون القيمة الافتراضيّة له <code>Left</code>.
	</li>
	<li>
		<strong>ypos</strong>: هي الموقع الشاقولي لظهور الرسالة في الصندوق وهو مُعطى اختياري، وتكون القيمة الافتراضيّة له <code>Top</code>.
	</li>
	<li>
		<strong>help,context</strong>: إرفاق ملف مساعد بمثابة دليل للمستخدم، وهو مُعطى اختياري ولا يُستخدم مع إكسل غالبًا.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_34" style="">
<span class="pln">expression</span><span class="pun">.</span><span class="typ">InputBox</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Prompt</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> title </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> </span><span class="kwd">default</span><span class="pln"> </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> xpos </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> ypos </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln"> helpfile</span><span class="pun">,</span><span class="pln"> context </span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="typ">Type</span><span class="pun">])</span></pre>

<p>
	هذه التعليمة خاصة بتطبيقات أوفيس مع الفيجوال بيسك، حيث أن المعطيات هي نفسها ولكن مع بعض الزيادات:
</p>

<ul>
<li>
		<strong>expression</strong>: عن طريقها نُحدد كائن من كائنات الإكسل الذي سنطبق التعليمات عليه مثل الكائن <code>Application</code>.
	</li>
	<li>
		<strong>type</strong>: تحدد نوع البيانات التي سيُدخلها المستخدِم، ولدينا عدة أنواع كما هو موضح في الصورة.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69296" href="https://academy.hsoub.com/uploads/monthly_2021_06/008InputBox.PNG.9a5ec2bba3295ba27fc22895959943bc.PNG" rel=""><img alt="008InputBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69296" data-unique="jycnqc16v" src="https://academy.hsoub.com/uploads/monthly_2021_06/008InputBox.thumb.PNG.457509e90c305721d3be7ef7472a4508.PNG"></a>
</p>

<h3>
	آلية العمل والفرق بين الصيغتين
</h3>

<p>
	نُعرِّف متغيّرات تعمل على حفظ القيمة التي سيُدخلها المستخدِم، ثم نُسند التعليمة إلى هذا المتغيّر، ولكن يوجد فرق جوهري وهو في الصيغة الأولى، فعند وجود خطأ في إدخال قيمة بغير الصيغة التي عرّفنا فيها المتغيّر، فسيوقف المحرّر الإجراء بدون معرفة ما هو نوع الخطأ، حيث سيُحدد السطر الذي يحتوي على هذا الخطأ باللون الأصفر فقط؛ أما في الصيغة الثانية، فسيُحدد المحرّر نوع الخطأ ويُظهر رسالة تُعلِم المستخدم أنه أدخل صيغة خاطئة.
</p>

<h3>
	مثال
</h3>

<p>
	لدينا الملف التالي الذي يحتوي على صفحتين، الأولى تسمح لنا بتسجيل الدخول عن طريق صندوقي إدخال الأول لاسم المستخدم، والثاني لكلمة المرور، وإظهار الصفحة الثانية التي تحتوي على بيانات الشركة. حيث أنّ الصفحة الثانية مخفية عن طريق تغيير قيمة الخاصية <code>visible</code> لها إلى القيمة <code>xlSheetVeryHidden</code>، وهي خاصية لا تسمح لنا بإظهار الصفحة من ملف الإكسل بالطريقة التقليدية، إنما فقط عن طريق الإجراءات أو عن طريق القائمة <code>Property</code> التي تحدثنا عنها في درس التعريف عن الواجهة الرئيسية للمحرّر:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69297" href="https://academy.hsoub.com/uploads/monthly_2021_06/009InputBox.PNG.b25393d343578ec88fd87a740097e502.PNG" rel=""><img alt="009InputBox.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69297" data-unique="hmdo4akj7" src="https://academy.hsoub.com/uploads/monthly_2021_06/009InputBox.PNG.b25393d343578ec88fd87a740097e502.PNG"></a>
</p>

<p>
	نبدأ الإجراء بتعريف المتغيّرات التي سنُخزن فيها القيم التي سيُدخلها المستخدِم لموازنتها فيما بعد مع القيم الصحيحة لتسجيل الدخول، وتكون لدينا الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_24" style="">
<span class="typ">Dim</span><span class="pln"> </span><span class="typ">UserName</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> </span><span class="typ">Password</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Double</span><span class="pln">
</span><span class="typ">UserName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">InputBox</span><span class="pun">(</span><span class="str">"Enter your user name"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Username"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Your Name"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Password</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Application</span><span class="pun">.</span><span class="typ">InputBox</span><span class="pun">(</span><span class="str">"Enter your password"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Password"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Type</span><span class="pun">:=</span><span class="lit">1</span><span class="pun">)</span></pre>

<p>
	كتبنا المُعطى <code>Type:=1</code> بهذا الشكل وهو طريقة ثانية لكتابة قيم المُعطيات عندما نريد تجاوز المُعطيات التي تسبق المُعطى الذي نريده، ولو أردنا كتابتها بالصيغة الأساسية فستكون كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_26" style="">
<span class="typ">Application</span><span class="pun">.</span><span class="typ">InputBox</span><span class="pun">(</span><span class="str">"Enter your password"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Password"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span></pre>

<p>
	بعد تعريف المتغيّرات إسناد القيم من صناديق الإدخال لها بقي لنا أن نضع شرطًا يتحقّق من أن ما أدخله المستخدِم يطابق شروط الدخول إلى صفحة البيانات أم لا ويكون الشرط بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_28" style="">
<span class="typ">If</span><span class="pln"> </span><span class="typ">UserName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Maher"</span><span class="pln"> </span><span class="typ">And</span><span class="pln"> </span><span class="typ">Password</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">123</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"data"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xlSheetVisible
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"Incorrect Username or Password"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<p>
	يُصبح الإجراء بالكامل كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_5605_30" style="">
<span class="typ">Sub</span><span class="pln"> check_user</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> </span><span class="typ">UserName</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> </span><span class="typ">Password</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Double</span><span class="pln">
</span><span class="typ">UserName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">InputBox</span><span class="pun">(</span><span class="str">"Enter your user name"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Username"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Your Name"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Password</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Application</span><span class="pun">.</span><span class="typ">InputBox</span><span class="pun">(</span><span class="str">"Enter your password"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Password"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Type</span><span class="pun">:=</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
</span><span class="typ">If</span><span class="pln"> </span><span class="typ">UserName</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Maher"</span><span class="pln"> </span><span class="typ">And</span><span class="pln"> </span><span class="typ">Password</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">123</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Sheets</span><span class="pun">(</span><span class="str">"data"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xlSheetVisible
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"Incorrect Username or Password"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69298" href="https://academy.hsoub.com/uploads/monthly_2021_06/010InputBox.gif.be900eedbba3c41231e7d741dc3d8c61.gif" rel=""><img alt="010InputBox.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69298" data-unique="psqy18akn" src="https://academy.hsoub.com/uploads/monthly_2021_06/010InputBox.thumb.gif.71ceb66d9118d098731c6e96a69c5c92.gif"></a>
</p>

<p>
	عند إدخال اسم مستخدم أو كلمة مرور غير صحيحة، سيُنفِّذ الإجراء الشق الثاني من الشرط، وهي رسالة تفيد بأن اسم المستخدِم أو كلمة المرور خاطئة؛ أما عند إدخال بيانات صحيحة، فسيُنفِّذ الشق الأول من الشرط عندها تظهر الصفحة <code>Data</code>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69299" href="https://academy.hsoub.com/uploads/monthly_2021_06/011InputBox.gif.ee96b6cfe0644120ba0416992455ed11.gif" rel=""><img alt="011InputBox.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69299" data-unique="ln77uf36v" src="https://academy.hsoub.com/uploads/monthly_2021_06/011InputBox.thumb.gif.37a31c0be63a2873dede86d4c8574491.gif"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	نلاحظ أن صندوق الرسائل وصندوق الإدخال يسمح لنا بزيادة ضبط التحكم بالعمليات وتوجيه المستخدم بطريقة منظمة ودقيقة، وكلما كانت العمليات دقيقةً ومنظمةً أكثر، حصلنا على بيانات صحيحة ومنظمة ومحميّة أكثر. وبدمج صناديق الإدخال وصناديق الرسائل مع الشروط، فسنحصل على إجراءات تُنجز الكثير من الأعمال بتنظيم وسرعة في آن واحد، وبنتائج تُحقّق لنا الكثير من الفائدة.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">454</guid><pubDate>Fri, 02 Jul 2021 12:04:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62D;&#x644;&#x642;&#x627;&#x62A; &#x627;&#x644;&#x62A;&#x643;&#x631;&#x627;&#x631;&#x64A;&#x629; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c83cce65f17_---MsgBox---InputBox------.png.781401f0e32103bbbfa497c645ff2f2b.png" /></p>

<p>
	نقضي الكثير من الوقت في تكرار المهام البسيطة في إكسل، ;قد تكون هذه المهام، مثل: تنسيق نطاقات متعددة، وإخفاء أوراق متعددة، والنسخ واللصق في العديد من المصنفات، وتطبيق عوامل التصفية على جداول متعددة. وقد تكون هذه المهام مضيعةً للوقت ومملةً للغاية، لكن لحسن الحظ يمكننا استخدام الحلقات في وحدات ماكرو VBA، لتكرار الإجراءات بسرعة كبيرة، بحيث يمكن إكمال المهام التي قد تستغرق ساعات لإنجازها يدويًا في غضون ثوانٍ باستخدام حلقة تكرارية.
</p>

<h2>
	الحلقة التكرارية For Next Loop
</h2>

<p>
	تعمل على تكرار التعليمات وفقًا لشرط نُسنده لمُتغيّر اختياري وتكون قيمة الفحص مناسبةً لعدد مرات التكرار التي نريد تنفيذها.
</p>

<h3>
	الشكل العام لصيغة الحلقة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_6" style="">
<span class="typ">For</span><span class="pln"> variable </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Start</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="typ">End</span><span class="pln"> 
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">Next</span><span class="pln"> </span><span class="typ">Element</span></pre>

<p>
	حيث أن:
</p>

<ul>
<li>
		<strong>variable</strong>: تمثل المُتغيّر الذي سيُحدد عدد مرّات تكرار الحلقة عن طريق قيمة البداية والنهاية له.
	</li>
	<li>
		<strong>Start</strong>: تمثل قيمة البداية للمُتغيّر.
	</li>
	<li>
		<strong>End</strong>: تمثل قيمة النهاية للمُتغيّر.
	</li>
	<li>
		<strong>Code</strong>: التعليمات التي سنُنفذ عليها التكرار.
	</li>
	<li>
		<strong>Next Element</strong>: تُعيد هذه التعليمة الحلقة للبداية لتطبيقها على العنصر التالي بإضافة 1 للمُتغيّر.
	</li>
</ul>
<h3>
	مثال
</h3>

<p>
	لتكن لدينا مثلًا البيانات التالية، بحيث نريد تغيير التنسيق للنصوص في الخلايا إلى خط غامق باستخدام إجراء يعمل على ذلك.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69284" href="https://academy.hsoub.com/uploads/monthly_2021_06/001For.PNG.adfd3fdadae39ec0134c727a742bc221.PNG" rel=""><img alt="001For.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69284" data-unique="np0usitqp" src="https://academy.hsoub.com/uploads/monthly_2021_06/001For.PNG.adfd3fdadae39ec0134c727a742bc221.PNG"></a>
</p>

<p>
	نكتب الإجراء بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_8" style="">
<span class="typ">Sub</span><span class="pln"> test1</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> counter </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
</span><span class="typ">For</span><span class="pln"> counter </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="lit">10</span><span class="pln">
</span><span class="typ">ActiveCell</span><span class="pun">.</span><span class="typ">Font</span><span class="pun">.</span><span class="typ">Bold</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln">
</span><span class="typ">ActiveCell</span><span class="pun">.</span><span class="typ">Offset</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">).</span><span class="typ">Select</span><span class="pln">
</span><span class="typ">Next</span><span class="pln"> counter

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69285" href="https://academy.hsoub.com/uploads/monthly_2021_06/002For.gif.a8f04ce8080fbcee864d2914531446f0.gif" rel=""><img alt="002For.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69285" data-unique="5o59cj21w" src="https://academy.hsoub.com/uploads/monthly_2021_06/002For.thumb.gif.1569500f4ee5362ee9b06c1f4289dedb.gif"></a>
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		يجب الانتباه إلى حالة الأحرف في الخاصية <code>property</code> حيث يجب أن تكون كما هي مُعرفة في لغة الفيجوال بيسك Visual Basic.
	</p>
</blockquote>

<h3>
	آلية عمل الحلقة
</h3>

<p>
	بعد أن عرّفنا المُتغيّر وأُسندت له قيمة البداية والنهاية في الحلقة، فستعمل التعليمة <code>ActiveCell.Font.Bold = true</code> على تغيير تنسيق الخط من العادي إلى الغامق، حيث <code>ActiveCell</code> هو عنصر الخلية المفعّلة (مكان توضّع المؤشر)، والعنصر <code>Font</code> هو خط الخلية، أمّا الخاصية <code>Bold</code> فتأخذ قيمتين <code>true</code> للخط الغامق و<code>False</code> للخط العادي، وهي القيمة الافتراضية لتنسيق الخط. بعدها ننتقل إلى التعليمة التالية، بحيث تعمل التعليمة <code>(Offset(value1,value2</code> بالانتقال إلى خلية نُحدّدها عبر نطاق التعليمة، إذ تُمثِّل الوسيطة <code>value1</code> مقدار الانتقال على العمود بدايةً من الخلية الحالية، أما الوسيطة <code>value2</code> فتمثّل مقدار الانتقال على الصف بدايةً من الخلية الحالية.
</p>

<p>
	نريد الانتقال في مثالنا لخلية واحدة فقط للأسفل على العمود، فيكون المجال لدينا <code>(Offset(1,0</code>، أما الأمر <code>Select</code> فيجعل الخلية مفعّلة (نشطة). بعدها ننتقل إلى التعليمة <code>Next counter</code>، حيث تنقل المُتغيّر إلى القيمة التالية وتكرر العملية إلى أن تصل لقيمة النهاية المُحددة للمُتغيّر.
</p>

<h3>
	أشكال أخرى لكتابة الحلقة السابقة
</h3>

<p>
	يمكن كتابة الحلقة بالشكل العكسي لمجال المُتغيّر.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_11" style="">
<span class="typ">For</span><span class="pln"> variable </span><span class="pun">=</span><span class="pln"> </span><span class="typ">End</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="typ">Start</span></pre>

<p>
	كما يمكننا التحكم بمقدار الزيادة في قيمة المُتغيّر للدورة التالية.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_15" style="">
<span class="typ">For</span><span class="pln"> variable </span><span class="pun">=</span><span class="pln"> </span><span class="typ">End</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="typ">Start</span><span class="pln"> </span><span class="typ">Step</span><span class="pln"> value </span></pre>

<p>
	هنا لو كانت قيمة البداية 1 وقيمة النهاية 10 مثلًا وأردنا أن تكون خطوات الزيادة للمُتغيّر هي خطوتين في كل دورة، فستُنفذ الحلقة السابقة 5 عمليات تكرار فقط.
</p>

<h2>
	الحلقة التكرارية For Each Next Loop
</h2>

<p>
	تُعَد من أقوى تقنيّات الماكرو، وهذا النوع هو الأكثر شيوعًا من الحلقات، حيث تسمح لنا حلقة For Next Loop بالمرور عبر مجموعة من العناصر في إكسل وتكرار بعض العمليات عليها. وقد تتضمن مجموعات العناصر ما يلي:
</p>

<ul>
<li>
		خلايا في نطاق.
	</li>
	<li>
		أوراق العمل في مصنف.
	</li>
	<li>
		المصنفات على الحاسوب.
	</li>
	<li>
		الجداول المحورية في ورقة العمل.
	</li>
	<li>
		الحقول المحورية في جدول محوري.
	</li>
	<li>
		الأشكال الموجودة في ورقة العمل، وأي كائن آخر تتفاعل معه في إكسل.
	</li>
</ul>
<p>
	تتمثل مهمة <code>For Next Loop</code> في تنفيذ نفس الإجراءات (سطور التعليمات البرمجية) على كل عنصر في المجموعة.
</p>

<h3>
	الشكل العام للحلقة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_17" style="">
<span class="typ">For</span><span class="pln"> </span><span class="typ">Each</span><span class="pln"> </span><span class="typ">Object</span><span class="pln"> </span><span class="typ">In</span><span class="pln"> collection 
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">Next</span><span class="pln"> </span><span class="typ">Object</span></pre>

<p>
	حيث أن:
</p>

<ul>
<li>
		<strong>Object</strong>: تمثل الكائن الذي سننفذ الحلقة عليه.
	</li>
	<li>
		<strong>collection</strong>: تمثل مجموعة الكائنات التي تمثل الكائن <code>Object</code>.
	</li>
	<li>
		<strong>Code</strong>: مجموعة التعليمات التي سيكررها الإجراء.
	</li>
	<li>
		<strong>Next Object</strong>: تُعيد هذه التعليمة الحلقة للبداية لتطبيقها على الكائن التالي.
	</li>
</ul>
<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		ملاحظة مهمة: لا يتعرف المحرِّر في هذه الحلقة على الكائن في بعض الأحيان، ولتفادي هذا الأمر نُعرف الكائن في بداية الشيفرة على أنه مُتغيّر، ويكون نوعه هذا الكائن وبذلك تعمل الشيفرة بدون أخطاء.
	</p>
</blockquote>

<h3>
	مثال
</h3>

<p>
	ليكن لدينا ملف العمل التالي الذي يحتوي على مجموعة من الصفحات المخفية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69286" href="https://academy.hsoub.com/uploads/monthly_2021_06/003ForEach.PNG.41d78b13fb2ebfe50dca07714267d2d7.PNG" rel=""><img alt="003ForEach.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69286" data-unique="gkoa620cx" src="https://academy.hsoub.com/uploads/monthly_2021_06/003ForEach.PNG.41d78b13fb2ebfe50dca07714267d2d7.PNG"></a>
</p>

<p>
	إظهار هذه الصفحات يدويًا سيستغرق بعض الوقت، ولكن يمكننا كتابة إجراء بسيط يحوي حلقةً تكراريةً تعمل على تغيير الخاصية <code>visible</code> لكل صفحة إلى القيمة <code>xlSheetVisible</code> والتي تجعل الصفحة ظاهرة، ويكون الإجراء بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_19" style="">
<span class="typ">Sub</span><span class="pln"> test2</span><span class="pun">()</span><span class="pln">

</span><span class="typ">Dim</span><span class="pln"> ws </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Worksheet</span><span class="pln">

</span><span class="typ">For</span><span class="pln"> </span><span class="typ">Each</span><span class="pln"> ws </span><span class="typ">In</span><span class="pln"> </span><span class="typ">ActiveWorkbook</span><span class="pun">.</span><span class="typ">Worksheets</span><span class="pln">
ws</span><span class="pun">.</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> xlSheetVisible
</span><span class="typ">Next</span><span class="pln"> ws

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69287" href="https://academy.hsoub.com/uploads/monthly_2021_06/004ForEach.gif.5e362dcadd64cc3fdee5d3c245606e53.gif" rel=""><img alt="004ForEach.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69287" data-unique="utq4f7v02" src="https://academy.hsoub.com/uploads/monthly_2021_06/004ForEach.thumb.gif.5ff1e2679e17df92b58727c6b8a691b7.gif"></a>
</p>

<h3>
	آلية عمل الحلقة
</h3>

<p>
	عرّفنا المُتغيّر <code>ws</code> على أنه عنصر صفحة، ثم وضعناه في الحلقة التكرارية على أنه عنصر المجموعة.
</p>

<p>
	التعليمة <code>ActiveWorkbook.Worksheets</code> تُحدد مجموعة عناصر صفحات الملف الحالي الذي نعمل عليه لأننا نريد تكرار العملية على جميع أوراق العمل في <code>ActiveWorkbook</code>. يُحدد المُتغيّر <code>ws</code> العنصر الأول من المجموعة، بحيث تعمل تعليمة الحلقة التكرارية بالمرور على صفحات الملف واحدة تلو الأخرى، وتُستبدَل الخاصية <code>xlSheetHidden</code> بالخاصية <code>xlSheetVisible</code>، إذ أن التعليمة <code>Next</code> تعمل على نقل العملية إلى العنصر الثاني بالمجموعة، ثم الثالث، وهكذا إلى الوصول لآخر عنصر(صفحة) في المجموعة، وعندها يتوقف التكرار الحلقي ويستمر الماكرو إلى السطر التالي من التعليمات البرمجية وهو إنهاء الإجراء <code>End sub</code>.
</p>

<h3>
	الترتيب الذي تعمل به كل حلقة
</h3>

<p>
	تبدأ الحلقة <code>For each</code> دائمًا عند العنصر الأول في المجموعة ويتكرر حتى العنصر الأخير بالترتيب الذي يظهر به في إكسل، حيث يعتمد هذا على رقم فهرس العناصر في المجموعة، وفيما يلي بعض الأمثلة على الترتيب الذي تعمل به الحلقة للعناصر الشائعة:
</p>

<ul>
<li>
		<strong>المصنفات</strong>: يبدأ في المصنف الذي فُتح أولًا، وتعمل الحلقات على المصنفات بالترتيب الذي فُتحت فيه، بحيث يتعيّن رقم فهرس للمصنفات عند فتحها.
	</li>
	<li>
		<strong>أوراق العمل</strong>: تبدأ من علامة تبويب الورقة الأولى في المصنف، وتتكرر إلى الأخيرة بالترتيب الذي تظهر به علامات التبويب في المصنف.
	</li>
	<li>
		<strong>الخلايا</strong>: تبدأ الحلقات من اليمين إلى اليسار (وبالعكس في النسخ الإنكليزية) ثم إلى الأسفل، أي يبدأ في الخلية الأولى في النطاق ويتكرر إلى العمود التالي في نفس الصف، ثم ينتقل إلى الصف التالي.
	</li>
	<li>
		<strong>الجداول والجداول المحورية</strong>: تبدأ بالعنصر الذي أُنشئ أولًا وتعمل الحلقات على عناصر الورقة بترتيب إنشاءها. ينطبق هذا المبدأ نفسه على العناصر الأُخرى التي نُنشئها في أوراق العمل، مثل: الأشكال، والمخططات، وما إلى ذلك.
	</li>
</ul>
<h2>
	الحلقة التكرارية Do Loop
</h2>

<p>
	تعمل هذه الحلقة على تكرار العمليات في الشيفرة اعتمادًا على شرط نضعه في صيغة الحلقة.
</p>

<h3>
	الصيغة العامة للحلقة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_21" style="">
<span class="typ">Do</span><span class="pln"> </span><span class="kwd">until</span><span class="pln"> </span><span class="typ">Condition</span><span class="pln">
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">Loop</span></pre>

<p>
	حيث أن:
</p>

<p>
	+<strong>Condition</strong>: تمثِّل شرط تكرار التعليمات في الحلقة.
</p>

<ul>
<li>
		<strong>Code</strong>: مجموعة التعليمات التي سيكررها الإجراء.
	</li>
	<li>
		<strong>Loop</strong>: تُعيد هذه التعليمة الحلقة للبداية لتطبيقها على العنصر التالي.
	</li>
</ul>
<h3>
	مثال
</h3>

<p>
	لتكن لدينا البيانات السابقة ونريد إعطاء خلفية بلون أحمر للخلايا غير الفارغة، ولإنجاز ذلك نكتب الحلقة التكرارية التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_25" style="">
<span class="typ">Sub</span><span class="pln"> test3</span><span class="pun">()</span><span class="pln">

</span><span class="typ">Do</span><span class="pln"> </span><span class="typ">Until</span><span class="pln"> </span><span class="typ">ActiveCell</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln">
</span><span class="typ">ActiveCell</span><span class="pun">.</span><span class="typ">Interior</span><span class="pun">.</span><span class="typ">Color</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> vbRed
</span><span class="typ">ActiveCell</span><span class="pun">.</span><span class="typ">Offset</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">1</span><span class="pun">).</span><span class="typ">Select</span><span class="pln">

</span><span class="typ">Loop</span><span class="pln">

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69288" href="https://academy.hsoub.com/uploads/monthly_2021_06/005DoLoop.gif.b5e0117142a03f9adc5aaf0aff717262.gif" rel=""><img alt="005DoLoop.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69288" data-unique="fd1srfcjy" src="https://academy.hsoub.com/uploads/monthly_2021_06/005DoLoop.thumb.gif.19c36d4b30d62dad590cbf07b7efcaa2.gif"></a>
</p>

<h3>
	آلية عمل الحلقة
</h3>

<p>
	تفحص الحلقة الشرط أولًا، وفي حال تحقُّقه تُنفّذ التعليمة على الخلية المُفعّلة عن طريق العنصر <code>Interior</code> للتحكم بخلفية الخلية عن طريق الخاصية <code>color</code>، وإعطاءه القيمة <code>vbRed</code> التي تُمثِّل اللون الأحمر، ثم التعليمة <code>ActiveCell.Offset(0,1) Select</code> التي تعمل على الانتقال إلى الخلية التالية وتنشيطها، بعدها التعليمة <code>Loop</code> التي تُعيد الحلقة للبداية لتكرار العمليات على الخلية التي أصبحت نشطةً، وهكذا إلى أن يصل الشرط إلى خلية فارغة، عندها تتوقف الحلقة.
</p>

<h3>
	أشكال أخرى لكتابة الحلقة السابقة
</h3>

<p>
	يمكن كتابة الحلقة بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_27" style="">
<span class="typ">Do</span><span class="pln"> </span><span class="kwd">while</span><span class="pln"> </span><span class="typ">Condition</span><span class="pln">
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">Loop</span></pre>

<p>
	تعمل هذه الصيغة بنفس آلية الصيغة السابقة، ولكن في السابقة كان الأمر هو تنفيذ التكرار حتى يتحقّق الشرط، بينما هنا تعمل على تنفيذ التكرار طالما الشرط محقّق.
</p>

<p>
	ولدينا صيغة أُخرى تعمل بنفس الآلية وهي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8334_29" style="">
<span class="typ">Do</span><span class="pln"> 
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">Loop</span><span class="pln"> </span><span class="kwd">while</span><span class="pln"> </span><span class="typ">Condition</span></pre>

<p>
	تختلف هذه الصيغة عن سابقاتها بأنها ستُنفّذ العمليات داخل الحلقة ثم تتحقّق من الشرط، أي أنّ العمليات هنا ستُنفذ لمرّة واحدة على الأقل، بينما في السابقات يمكن ألّا تُنفّذ العمليات ضمن الحلقة ولا مرّة.
</p>

<h2>
	خاتمة
</h2>

<p>
	نلاحظ أن العمليات الروتينية التي نُجريها على إكسل لا تُعَد ولا تُحصى، وأنّه بالتطبيق السليم لأفكار الحلقات التكرارية سنتخلص من الروتين الممل، ونوفر الوقت، ونضبط عملياتنا أكثر من الطريقة اليدوية، وكل ما علينا هو دراسة المهمة التي نكرّرها دائمًا ومعرفة عناصرها وخصائصها، وتصميم إجراء يحتوي على إحدى صيغ الحلقات التكرارية بما يتناسب مع تلك العملية، ووضع التعليمات المناسبة لتنفيذ تلك العملية داخل الحلقة التكرارية لِتُنفذها عوضًا عنّا وذلك خلال وقت قياسي.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%A3%D8%AE%D8%B7%D8%A7%D8%A1-%D9%81%D9%8A-vba-%D8%B6%D9%85%D9%86-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r455/" rel="">التعامل مع الأخطاء في VBA ضمن مايكروسوفت إكسل</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">453</guid><pubDate>Wed, 30 Jun 2021 12:03:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x639;&#x645;&#x644;&#x64A;&#x627;&#x62A; &#x627;&#x644;&#x634;&#x631;&#x637;&#x64A;&#x629; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; VBA</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c83985b6f31_------VBA.png.6167a319845a598d15746ddcc4fa06cf.png" /></p>

<p>
	عند كتابة الشيفرات البرمجية، تُصادِفنا العديد من التعليمات التي نحتاج تنفيذها فقط عند تحقّق أمر ما، مثل: تنفيذ شيفرة عند إدخال المستخدم قيمة معينة لإحدى الخلايا، أو عند إجراء تغييرٍ ما عليها، أو عند إدخال قيمة لا توافق الشروط التي وضعناها. بحيث تُنفَّذ الشيفرة بإظهار رسالة معّينة أو بتنفيذ أمر معين في حال تحقّق الشرط، وتنفيذ أوامر أخرى في حال عدم تحقّقه، وتُسمى هذه العملية بالعملية الشرطيّة.
</p>

<h2>
	تعليمة IF الشرطية
</h2>

<p>
	هي أشهر التعليمات الشرطيّة وتكتب بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_6" style="">
<span class="pln">IF condition </span><span class="typ">Then</span><span class="pln"> code </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the condition </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span></pre>

<p>
	وهي الصيغة الأساسية لكتابة هذه التعليمة، ولكن يمكن كتابتها بشكل أوسع على الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_8" style="">
<span class="pln">IF condition </span><span class="typ">Then</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the condition </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<p>
	حيث أن:
</p>

<ul>
<li>
		<strong>condition</strong>: الشرط الذي نريد تنفيذ التعليمات عند تحقّقه.
	</li>
	<li>
		<strong>codes</strong>: مجموعة التعليمات التي ستُنفذ عند تحقّق الشرط السابق.
	</li>
	<li>
		<strong>End IF</strong>: علامة نهاية العملية الشرطيّة.
	</li>
</ul>
<h3>
	مثال
</h3>

<p>
	لتكن لدينا البيانات التالية، حيث نريد فحص الخلايا وإعطائها رموز ترتيب في العمود D حسب نوع القسم. نطبق الشرط على الخلية A2 لفهم عمل الشرط، بحيث تعمل الشيفرة على إدخال القيمة A في الخلية D2 عند تحقّقه، ونكتب الشرط بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_10" style="">
<span class="typ">Sub</span><span class="pln"> test_if</span><span class="pun">()</span><span class="pln">
IF </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الصحي"</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"A"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> IF

</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	الشرط هنا هو أن تكون قيمة الخلية A2 تساوي القيمة "الصحي"، وبتنفيذ الإجراء من المحرّر نجد أنّ الشيفرة تعمل بطريقة صحيحة، وتُمثّل هذه الصيغة الشروط البسيطة.
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		عند إسناد القيم للتعليمات، نضع القيم النصية بين إشارتي تنصيص، والقيم الرقمية بدون إشارات تنصيص لتمييزها. حيث أن الأرقام التي تُسند بين إشارتي تنصيص، يَتعامل معها المحرّر على أنها نص ولا تجري عليها العمليات الخاصة بالأرقام.
	</p>
</blockquote>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69274" href="https://academy.hsoub.com/uploads/monthly_2021_06/001IF.gif.7c591065722f4d0f4e77f906448346e3.gif" rel=""><img alt="001IF.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69274" data-unique="gp9b7mqap" src="https://academy.hsoub.com/uploads/monthly_2021_06/001IF.thumb.gif.a27b3da63477914e0c13662a1fb74bb2.gif"></a>
</p>

<h2>
	تعليمة IF/Else الشرطية
</h2>

<p>
	تعمل بنفس مبدأ التعليمة السابقة ولكن في حال لم يتحقّق الشرط نضيف للشيفرة عمليات أُخرى ليُنفّذها، وتكون التعليمة بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_12" style="">
<span class="pln">IF </span><span class="typ">Condition</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the condition </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the condition </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<p>
	حيث أن <code>Else</code> هنا تُنفّذ الأوامر التابعة لها في حال لم يتحقّق الشرط.
</p>

<h3>
	مثال
</h3>

<p>
	لنطبّق التعليمة الجديدة على الخلية A3 ونضع القيمة السابقة في حال تحقّق الشرط، والقيمة B في حال عدم تحقّقه، ونكتب الشرط بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_14" style="">
<span class="typ">Sub</span><span class="pln"> test_if</span><span class="pun">()</span><span class="pln">
IF </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الصحي"</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"A"</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"B"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> IF
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69275" href="https://academy.hsoub.com/uploads/monthly_2021_06/002IF.gif.41c2683440f9d42e900c1220f7e7c187.gif" rel=""><img alt="002IF.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69275" data-unique="gijgce965" src="https://academy.hsoub.com/uploads/monthly_2021_06/002IF.thumb.gif.669441597b5e2929d6be3db7f3543ab3.gif"></a>
</p>

<h2>
	تعليمة الشروط المتداخلة IF/Elseif/Else 
</h2>

<p>
	تعمل هذه التعلمية على تطبيق شروط متعددة على الخلية، بحيث إذا لم يتحقّق الشرط الأول، ننتقل للشرط الثاني، ثم للثالث وهكذا. وتكون التعليمة بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_16" style="">
<span class="pln">IF condition </span><span class="typ">Then</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the first condition </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Else</span><span class="pln"> IF condition </span><span class="typ">Then</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the second condition </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> all conditions are </span><span class="kwd">false</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<h3>
	مثال
</h3>

<p>
	لنطبق التعليمة الجديدة على الخلية A4 ونضع القيمة السابقة في حال تحقّق الشرط الأول، والقيمة C في حال كانت قيمتها هي "الزراعي"؛ أو القيمة D عند عدم تحقّق أي شرط سابق. ونكتب الشرط بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_19" style="">
<span class="typ">Sub</span><span class="pln"> test_if</span><span class="pun">()</span><span class="pln">
IF </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الصحي"</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"A"</span><span class="pln">
</span><span class="typ">ElseIF</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الزراعي"</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"C"</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"D"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> IF
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69276" href="https://academy.hsoub.com/uploads/monthly_2021_06/003IF.gif.7afda2eee05f8006fe62d3903ce3a50d.gif" rel=""><img alt="003IF.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69276" data-unique="fppbdzztp" src="https://academy.hsoub.com/uploads/monthly_2021_06/003IF.thumb.gif.63926e37a3ef3376dac8108ca9993dca.gif"></a>
</p>

<h2>
	تعليمة IF الشرطية مع التعليمات AND/OR
</h2>

<p>
	إذا أردنا أن ننفذ عمليات على الخلايا في حال تحقّق عدة شروط مع بعضها، نستخدم التعليمة AND مع تعليمة IF الشرطيّة؛ أما في حال أردنا أن ننفذ عمليات على الخلايا في حال تحقّق أحد الشروط، فسنستخدم التعليمة OR معها، لتصبح الصيغة:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_21" style="">
<span class="pln">IF condition1 AND</span><span class="pun">/</span><span class="pln">OR condition2 AND</span><span class="pun">/</span><span class="pln">OR condition3 </span><span class="typ">Then</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> all conditions are </span><span class="kwd">true</span><span class="pln"> </span><span class="kwd">with</span><span class="pln"> AND</span><span class="pun">)</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> one of conditions are </span><span class="kwd">true</span><span class="pln"> </span><span class="kwd">with</span><span class="pln"> OR</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> all conditions are </span><span class="kwd">false</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<h3>
	مثال
</h3>

<p>
	لنطبّق أكثر من شرط على الخلية A5، ونضع القيمة E في حال تحقّق الشروط، أو القيمة F في حال عدم تحقّقها، ونكتب الشرط بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_23" style="">
<span class="typ">Sub</span><span class="pln"> test_if</span><span class="pun">()</span><span class="pln">
IF </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"الصحي"</span><span class="pln"> </span><span class="typ">And</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pun">=</span><span class="lit">11</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"E"</span><span class="pln">
</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"F"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> IF
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69277" href="https://academy.hsoub.com/uploads/monthly_2021_06/004IF.gif.b8940f7d21948d0eca605f355dbf3f87.gif" rel=""><img alt="004IF.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69277" data-unique="9hry1xsh9" src="https://academy.hsoub.com/uploads/monthly_2021_06/004IF.thumb.gif.695fdef8a8ce0a10760ec6dd149bec87.gif"></a>
</p>

<h2>
	التعليمة الشرطية Select Case
</h2>

<p>
	تُستعمل هذه التعليمة إذا أردنا فحص عدة شروط على خلية واحدة، وتنفيذ التعليمة المقابلة للشرط في حال تحقّقه. حيث نلاحظ أنّه يمكن تنفيذ هذه العملية عن طريق التعليمة <code>IF/Elseif/Else</code>، ولكن التكرار الكثير للتعليمة <code>IF</code> في الشيفرة البرمجية سيزيد من حجم العمليات في الإجراء، كما سيؤدي إلى بطء تنفيذه، لكن باستخدام التعليمة <code>Select Case</code>، فسنقلل من حجم الشيفرة البرمجية وبالتالي تصبح عمليةً أكثر من التعليمة السابقة.
</p>

<h3>
	الصيغة العامة للتعليمة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_25" style="">
<span class="typ">Select</span><span class="pln"> </span><span class="kwd">case</span><span class="pln"> </span><span class="typ">Element</span><span class="pun">(</span><span class="kwd">object</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> first </span><span class="kwd">case</span><span class="pln"> 
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the </span><span class="kwd">case</span><span class="pln"> </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> second </span><span class="kwd">case</span><span class="pln">
codes </span><span class="pun">(</span><span class="kwd">if</span><span class="pln"> the </span><span class="kwd">case</span><span class="pln"> </span><span class="kwd">is</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> 
</span><span class="typ">Case</span><span class="pln"> </span><span class="typ">Else</span><span class="pln">
codes </span><span class="pun">(</span><span class="typ">If</span><span class="pln"> all cases are </span><span class="kwd">false</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Select</span></pre>

<ul>
<li>
		<strong>Element</strong>: العنصر الذي نُطبّق الاستعلام عليه للتحقّق.
	</li>
	<li>
		<strong>The first case</strong>: تمثل شرط التحقّق من القيمة الأولى أو قيمة الفحص الأولى.
	</li>
	<li>
		<strong>The second case</strong>: تمثل شرط التحقّق من القيمة الثانية أو قيمة الفحص الثانية.
	</li>
	<li>
		<strong>Code</strong>: التعليمات التي ستُنفَّذ عند تحقّق الحالة السابقة له.
	</li>
</ul>
<h3>
	مثال
</h3>

<p>
	لدينا الجدول التالي الذي يحتوي على الترتيب التالي، والذي يمثّل أيام الأسبوع. على فرض أنّ السبت هو اليوم الأول، نريد فحص القيمة في الخلية وإعادة ما يقابلها من أيام الأسبوع، ونطبق الصيغة التالية على الخلية A8:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_27" style="">
<span class="typ">Sub</span><span class="pln"> day_name</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Select</span><span class="pln"> </span><span class="typ">Case</span><span class="pln"> </span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A8"</span><span class="pun">).</span><span class="pln">value
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"السبت"</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"الأحد"</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">3</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"الإثنين"</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">4</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"الثلاثاء"</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">5</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"الأربعاء"</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">6</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"الخميس"</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="lit">7</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B8"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="str">"الجمعة"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Select</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69278" href="https://academy.hsoub.com/uploads/monthly_2021_06/005SelectCaase.gif.bc47df3b4d70703b6284b65c99536e2d.gif" rel=""><img alt="005SelectCaase.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69278" data-unique="q5guor931" src="https://academy.hsoub.com/uploads/monthly_2021_06/005SelectCaase.thumb.gif.5f0f95e97b87b0e8bca41b0f13b9dbeb.gif"></a>
</p>

<p>
	عندما تكون الأوامر التي ستُنفّذها الحالة <code>Case</code> متشابهةً في أكثر من حالة، فسيمكننا اختصار الإجراء وتجميع الحالات ذات الأوامر المتشابهة في حالة واحدة، وذلك أيضًا يقلل من حجم الشيفرة، بحيث يصبح شكل العملية بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_29" style="">
<span class="typ">Select</span><span class="pln"> </span><span class="kwd">case</span><span class="pln"> </span><span class="typ">Element</span><span class="pun">(</span><span class="kwd">object</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> first </span><span class="kwd">case</span><span class="pun">,</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> second </span><span class="kwd">case</span><span class="pun">,</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> third </span><span class="kwd">case</span><span class="pln">
</span><span class="typ">Code</span><span class="pln">
 </span><span class="typ">Case</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> fourth </span><span class="kwd">case</span><span class="pun">,</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> fifth </span><span class="kwd">case</span><span class="pln">
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">Case</span><span class="pln"> </span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Code</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Select</span></pre>

<p>
	بالعودة إلى مثالنا السابق وبفرض أن يومي الجمعة والسبت هما أيام عطلة وباقي الأيام أيام عمل، وأردنا تطبيق العملية السابقة على البيانات لمعرفة إذا كان ترتيب اليوم يقابل يوم عمل أو يوم عطلة نُطبّق التعليمة السابقة على الخلايا C2 وC5، لتصبح لدينا التعليمة كالتالي:
</p>

<pre class="ipsCode">
Select Case Range("A8").Value
Case 1, 2
Range("C5").Value = "يوم عطلة"
 Case 3, 4, 5, 6, 7
Range("C5").Value = "يوم عمل"
End Select
</pre>

<p>
	بتكرار العمليات السابقة في الخلية C2، نجد أن الشيفرة تعمل بطريقة صحيحة، ولكن بما أن شرط تحقُّق الحالة هو عبارة عن أرقام تراتبية، يمكننا الاختصار أكثر وكتابة التعليمات بالشكل التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_31" style="">
<span class="typ">Case</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="typ">To</span><span class="pln"> </span><span class="lit">7</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"يوم عمل"</span></pre>

<p>
	كما يمكن كتابتها بالشكل التالي في حال كانت قيم المطابقة عددية، أي قابلة للقياس:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_33" style="">
<span class="typ">Case</span><span class="pln"> IS</span><span class="pun">&lt;</span><span class="lit">2</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C5"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"يوم عمل"</span></pre>

<p>
	كل الصيغ السابقة تؤدي نفس العمل ولكن تختلف السرعة في التنفيذ.
</p>

<h2>
	مثال تطبيقي لكل ما سبق
</h2>

<p>
	لدينا الملف التالي ونريد كتابة إجراء يعمل على فحص البيانات المُدخلة في الخلايا وإعطاء رسالة في حال كانت إحدى البيانات فارغة أو ترحيل البيانات إلى صفحة ثانية في حال كانت البيانات كاملةً عن طريق زر إدخال.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69280" href="https://academy.hsoub.com/uploads/monthly_2021_06/007Example.PNG.f541f3becda194b1f3bc459bbdc8c7f8.PNG" rel=""><img alt="007Example.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69280" data-unique="92u4i75nq" src="https://academy.hsoub.com/uploads/monthly_2021_06/007Example.thumb.PNG.a3c3b14fb06fa88af85a1f20149fc471.PNG"></a>
</p>

<p>
	في البداية نضع اسمًا للإجراء الذي سنعمل عليه وليكن <code>DataEntry</code>، ثم نُعرّف المتغيرات التي ستحفظ نتيجة الاستعلامات عن قيم إدخال الخلايا التي نعمل عليها. حيث لدينا ثلاثة أنواع من المتغيرات، وهي: رقمي طويل<code>Long</code>، ونصّي <code>String</code>، وتاريخ <code>Date</code>. بحيث ستتكون لدينا الصيغ التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_35" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">DataEntry</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> name </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> nationalID </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> bearthday </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Date</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> place_of_birth </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
name </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
nationalID </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
bearthday </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
place_of_birth </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	نضيف الآن عمليات ترحيل البيانات إلى صفحة <strong>البيانات</strong> عند الضغط على الزر <strong>إدخال</strong>، ونضيف إلى الشيفرة التعليمات التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_37" style="">
<span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> name
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> nationalID
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> bearthday
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> place_of_birth</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69281" href="https://academy.hsoub.com/uploads/monthly_2021_06/008Example.gif.ce384e1a88c6ea4781b46db6016b05fd.gif" rel=""><img alt="008Example.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69281" data-unique="i8gdj402j" src="https://academy.hsoub.com/uploads/monthly_2021_06/008Example.thumb.gif.1d294e36bc520c90dea6c27ee790c245.gif"></a>
</p>

<p>
	إلى هنا نكون قد أنجزنا الجزء الأول من المطلوب ولكن ينقصه أمر أساسي، وهو أنه عند إضافة بيانات جديدة يجب أن تعمل الشيفرة أولًا على إضافة صف جديد، ثم تُرحّل البيانات إلى صفحة البيانات كي لا تُستبدل البيانات القديمة بالبيانات الجديدة، ولهذا سنحتاج إلى التعليمة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_39" style="">
<span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"2:2"</span><span class="pun">).</span><span class="typ">Insert</span></pre>

<p>
	يعمل الأمر <code>insert</code> على إضافة خلايا ضمن النطاق المحدد في العنصر <code>Range</code>، وقد وضعنا المجال 2:2 لأننا نريد إضافة صف كامل.
</p>

<p>
	بعد إضافة الصف وترحيل البيانات إليه، فلابد من تفريغ خلايا الإدخال عن طريق الإجراء وذلك عن طريق التعليمات التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_41" style="">
<span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A3"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال "</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A4"</span><span class="pun">).</span><span class="typ">ClearContents</span></pre>

<p>
	حيث يعمل الأمر <code>ClearContents</code> على تفريغ محتوى الخلية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69282" href="https://academy.hsoub.com/uploads/monthly_2021_06/009Example.gif.b70105356b988f4586fa308e38eb8391.gif" rel=""><img alt="009Example.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69282" data-unique="5zzowkolv" src="https://academy.hsoub.com/uploads/monthly_2021_06/009Example.thumb.gif.216d65dc1720cbecf927e206391eaf34.gif"></a>
</p>

<p>
	بقي لدينا إضافة شرط فحص قيم الخلايا قبل ترحيل البيانات، ويجب ألّا تكون أي خلية من خلايا الإدخال فارغة، لذا نستعمل التعليمة <code>OR</code> مع التعليمة <code>IF</code> لفحص جميع الخلايا بشرط واحد، إذ يجب الانتباه إلى أن الخلايا النصية تُوازَن بالفراغ، أما الخلايا الرقمية فنوازنها بالقيمة 0 للتأكد أنها ليست فارغة، بحيث تكون الصيغة كالتالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_43" style="">
<span class="typ">If</span><span class="pln"> name </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> nationalID </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> bearthday </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> place_of_birth </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"البيانات غير كاملة"</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		نفحص الخلايا الرقمية بالقيمة 0، لأننا إذا فحصناها بالفراغ فإن المحرر سيفهم عملية الفحص بأنها موازنة رقم لنص، وهذا يُعَد خاطئًا برمجيًا، ونحن هنا نوازن قيمة خلية رقمية وليست نصية، فالرقم 0 يُعبّر عن القيمة الفارغة في الخلايا الرقمية في إكسل. عند وجود خلية واحدة على الأقل فارغة، فستُظهر لنا التعليمة <code>MsgBox</code> رسالةً تُخبرنا بوجود خلايا فارغة.
	</p>
</blockquote>

<p>
	بهذا تكون الشيفرة قد أصبحت جاهزةً لإجراء عملية الإدخال كما هو مطلوب والإجراء كاملًا هو التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_7404_45" style="">
<span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">DataEntry</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> name </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> nationalID </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> bearthday </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Date</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> place_of_birth </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">

name </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
nationalID </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
bearthday </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B3"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">
place_of_birth </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B4"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln">

</span><span class="typ">If</span><span class="pln"> name </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> nationalID </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> bearthday </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="typ">Or</span><span class="pln"> place_of_birth </span><span class="pun">=</span><span class="pln"> </span><span class="str">""</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
</span><span class="typ">MsgBox</span><span class="pln"> </span><span class="str">"البيانات غير كاملة"</span><span class="pln">

</span><span class="typ">Else</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"2:2"</span><span class="pun">).</span><span class="typ">Insert</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> name
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> nationalID
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> bearthday
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"البيانات"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"D2"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> place_of_birth

</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B2"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B3"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"صفحة الإدخال"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B4"</span><span class="pun">).</span><span class="typ">ClearContents</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69283" href="https://academy.hsoub.com/uploads/monthly_2021_06/010Example.gif.f304fdc8308cbbfffd7bd9047cb14df4.gif" rel=""><img alt="010Example.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69283" data-unique="6em2754se" src="https://academy.hsoub.com/uploads/monthly_2021_06/010Example.thumb.gif.39d402d73c5c9f623713403b1ea6d6ca.gif"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	توفر لنا الشروط ضبطًا كبيرًا للعمليات بجميع أنواعها فهي تُجبر الشيفرة على تنفيذ العمليات وفق مسار معين كما أنها توفر الوقت اللازم لمعالجة العمليات التي لا تحقّق الشرط ضمن الشيفرة، لذلك يصبح تنفيذ الشيفرة أسرع، وتصبح العمليات أكثر دقة، مما يضمن لنا الحصول على بيانات تخدم هدفنا والتخلّص من أخطاء الإدخال.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA-%D9%88%D8%A3%D9%87%D9%85-%D8%A7%D9%84%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D9%81%D9%8A-%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r451/" rel="">المتغيرات وأهم العناصر في برمجة VBA في مايكروسوفت إكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>.
	</li>
</ul>
]]></description><guid isPermaLink="false">452</guid><pubDate>Sat, 26 Jun 2021 12:08:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x645;&#x62A;&#x63A;&#x64A;&#x631;&#x627;&#x62A; &#x648;&#x623;&#x647;&#x645; &#x627;&#x644;&#x643;&#x627;&#x626;&#x646;&#x627;&#x62A; &#x641;&#x64A; &#x628;&#x631;&#x645;&#x62C;&#x629;  VBA &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA-%D9%88%D8%A3%D9%87%D9%85-%D8%A7%D9%84%D9%83%D8%A7%D8%A6%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r451/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c5ddd3cdea3_------VBA.png.c9a61e867b365f0c6463e9abb8983505.png" /></p>

<p>
	تحدثنا سابقًا عن منهجية كتابة الشيفرات وتعلمنا أن كل شيء في إكسل هو كائن Object، فالملف كائن والصفحة كائن والخلية كائن، قد يكون الكائن مفردًا أو مجموعةً من الكائنات، بحيث يُحدَّد الكائن فيها بذكر اسمه بين إشارتي تنصيص داخل أقواس كائن المجموعة.
</p>

<p>
	نستدعي الكائنات من أجل الحصول على خصائصها، إما للإرجاع معلومة أو لتغيير قيمتها، كما لدينا الأمر المباشر <code>Method</code> الذي يعمل على تنفيذ أمر على هذا الكائن بدون إرجاع قيمة.
</p>

<h2>
	أسماء أهم الكائنات في إكسل
</h2>

<p>
	لدينا العديد من الكائنات الأساسية التي سنتعامل معها دومًا في إكسل، وهذه الأسماء معرّفة في فيجوال بيسك Visual Basic، لذا يجب كتابتها بدون أخطاء حتى يتعرّف محرّر اللغة على الكائن بطريقة صحيحة. وتُعَد الكائنات التالية من أهم هذه الكائنات:
</p>

<ul>
<li>
		Application: هو كائن البرنامج ويعمل مع كل تطبيقات مايكروسوفت أوفيس.
	</li>
	<li>
		("workbooks("name: هو كائن ملف الإكسل وهو مجموعة نحدد فيها الملف الذي سنتعامل معه عن طريق الاسم.
	</li>
	<li>
		("worksheets("name: هو كائن مجموعة يضم كل الصفحات الموجودة في ملف الإكسل نفسه، وسنتعامل معه عن طريق الاسم.
	</li>
	<li>
		("Range("name: هو كائن مجموعة يضم كل الخلايا الموجودة في صفحة الإكسل، وسنتعامل معه عن طريق موقع الخلية.
	</li>
	<li>
		ThiseWorkbook: هو كائن الملف الحالي الذي نعمل عليه.
	</li>
	<li>
		Activesheet: هو كائن الصفحة الحالية ضمن الملف المفتوح.
	</li>
	<li>
		Activecell: هو كائن الخلية الحالية ضمن الصفحة المفتوحة.
	</li>
	<li>
		Selection: هو كائن الخلايا المحددة.
	</li>
</ul>
<h3>
	مثال تطبيقي
</h3>

<p>
	لدينا البيانات التالية ونريد ترجمة النصوص في عناوين الأعمدة من اللغة العربية إلى اللغة الإنكليزية وبالعكس:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69190" href="https://academy.hsoub.com/uploads/monthly_2021_06/001Translate.PNG.d2295546afacfa6408794b3780a31d9a.PNG" rel=""><img alt="001Translate.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69190" data-unique="rqlz1brg8" src="https://academy.hsoub.com/uploads/monthly_2021_06/001Translate.PNG.d2295546afacfa6408794b3780a31d9a.PNG"></a>
</p>

<p>
	نفتح برنامج محرّر الشيفرات VBE ونُنشئ نموذج module من القائمة <strong>insert</strong> أو من شريط الأدوات، ثم نكتب الإجراء التالي لتحويل النصوص إلى اللغة الإنكليزية بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_6" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Translate_EN</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Section"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Project code"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Number of zones"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	نلاحظ من الاستعلامات أننا استعلمنا عن اسم الخلية من الكائن <code>Range</code> مباشرةً لأننا نُشغّل الشيفرة من نفس الصفحة التي نُنفّذ عليها الإجراء السابق، ونُجري الاستعلام عن قيمتها من الخاصية <code>value</code> ونُغيّر قيمتها إلى القيمة الجديدة.
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		إن محرّر الشيفرات لا يتحسس حالة الأحرف بالنسبة للكائنات لذا يمكننا كتابتها بحروف صغيرة أو كبيرة، أما بالنسبة لاسم الكائن عندما يكون في مجموعة فيجب كتابة اسمه كما هو في الملف.
	</p>
</blockquote>

<p>
	نكتب كل استعلام بسطرٍ منفصلٍ عن الآخر، وعند تشغيل الشيفرة من شريط الأدوات نلاحظ تغيير قيم الخلايا التي تحوي البيانات إلى القيم التي وضعناها في استعلامات الإجراء السابق.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69191" href="https://academy.hsoub.com/uploads/monthly_2021_06/002Translate.gif.083a0594dbd896efad99102c1d867ac1.gif" rel=""><img alt="002Translate.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69191" data-unique="tfbestpe6" src="https://academy.hsoub.com/uploads/monthly_2021_06/002Translate.thumb.gif.cf9df8aa0f2497dbea9920e8a9ffc8da.gif"></a>
</p>

<p>
	وعند تطبيق العكس، أي تحويل النصوص السابقة إلى اللغة العربية نكتب الصيغة السابقة ولكن مع تغيير القيم التي ستُعدل في الخلايا بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_8" style="">
<span class="typ">Sub</span><span class="pln"> translate_AR</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"القسم"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"كود المشروع"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"عدد المناطق"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	عند تشغيل الإجراء السابق من الممكن أن تواجهنا مشكلة عدم فهم المحرّر للغة العربية ويظهرها بشكل رموز غير مفهومة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69192" href="https://academy.hsoub.com/uploads/monthly_2021_06/003Translate.gif.36d39b7abf80f7b9fd82e8607ff8e3ed.gif" rel=""><img alt="003Translate.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69192" data-unique="q7rwa113i" src="https://academy.hsoub.com/uploads/monthly_2021_06/003Translate.thumb.gif.acede231914b93891765be65bc72f402.gif"></a>
</p>

<p>
	وأسباب هذه المشكلة هي إمّا من نظام التشغيل ويندوز لدينا أو من محرّر الشيفرات نفسه ولحل هذه المشكلة من محرّر الشيفرات، نذهب للقائمة <strong>Tools</strong> ثم نختار الأمر <strong>Options</strong>، فتظهر لنا نافذة جديدة. نختار التبويب <strong>Editor Format</strong> ونتأكد أن نوع الخط المحدد هو أحد الخطوط العربية، مثلًا (Courier New (Arabic ثم نضغط موافق.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69193" href="https://academy.hsoub.com/uploads/monthly_2021_06/004Translate.PNG.bab76ed3132f0313cbc4ce07ac260560.PNG" rel=""><img alt="004Translate.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69193" data-unique="qk5wmc8kj" src="https://academy.hsoub.com/uploads/monthly_2021_06/004Translate.thumb.PNG.a029f4da64220f02e7191af48830e7eb.PNG"></a>
</p>

<p>
	إذا لم تُحل المشكلة سننتقل إلى لوحة التحكم من قائمة ابدأ، ونختار من القائمة اللغة والوقت، ثم نختار تبويب <strong>اللغة</strong>، بعدها <strong>إعدادات اللغة الإدارية</strong>، تظهر لنا نافذة جديدة نختار منها تبويب <strong>التنسيقات</strong> ونتأكد أن تنسيق اللغة من ضمن خيارات اللغة العربية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69194" href="https://academy.hsoub.com/uploads/monthly_2021_06/005Lang.PNG.05bb3b1936cd2014b30c2cd299ed64bf.PNG" rel=""><img alt="005Lang.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69194" data-unique="in9iia1vf" src="https://academy.hsoub.com/uploads/monthly_2021_06/005Lang.thumb.PNG.b27eac5281973f4e6f39a5814eddfa19.PNG"></a>
</p>

<p>
	ثم من نفس النافذة ننتقل إلى التبويب <strong>إداري</strong>، نضغط على زر <strong>تغيير الإعدادات المحلية للنظام</strong> ونتأكد من أن اللغة المخصصة للإعدادات المحلية للنظام هي العربية أيضًا. سيطلب النظام إعادة التشغيل بعد هذا التغيير.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69195" href="https://academy.hsoub.com/uploads/monthly_2021_06/006Lang.PNG.4567c84f6642df390191b7cff495fed5.PNG" rel=""><img alt="006Lang.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69195" data-unique="nz8pqn76e" src="https://academy.hsoub.com/uploads/monthly_2021_06/006Lang.thumb.PNG.28bec52543e06fae7ee9a6e512dadc82.PNG"></a>
</p>

<p>
	بعد أن حللنا مشكلة اللغة نُعيد تشغيل الإجراء السابق لنجد أنه يعمل بطريقة صحيحة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69196" href="https://academy.hsoub.com/uploads/monthly_2021_06/007Translate.gif.9e03d3c57c846c250ecf467faf811611.gif" rel=""><img alt="007Translate.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69196" data-unique="yfexgiczx" src="https://academy.hsoub.com/uploads/monthly_2021_06/007Translate.thumb.gif.3807881f8f53137a79df5aff49f19da8.gif"></a>
</p>

<p>
	لإضافة أزرار تُنفِّذ عملية الترجمة بدون تشغيل المحرّر نتبع الخطوات التالية:
</p>

<p>
	من قائمة <strong>المطور</strong> في برنامج إكسل، نضغط على الأداة <strong>إدراج</strong> ونختار منها <strong>إدراج زر</strong> فتظهر لنا نافذة جديدة نختار منها اسم الإجراء الذي نريد من الزر أن يعمل على تنفيذه، ثم نضغط <strong>موافق</strong>، بعدها ننقر نقرةً مزدوجةً على اسم الزر لنكتب له اسمًا مناسبًا يعبِّر عنه.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69197" href="https://academy.hsoub.com/uploads/monthly_2021_06/008Translate.gif.85bc5e2082aed257f5b381612b6dac6e.gif" rel=""><img alt="008Translate.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69197" data-unique="brbjzof6m" src="https://academy.hsoub.com/uploads/monthly_2021_06/008Translate.gif.85bc5e2082aed257f5b381612b6dac6e.gif"></a>
</p>

<p>
	نكرر العملية السابقة لإضافة زر خاص بالإجراء الثاني.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69198" href="https://academy.hsoub.com/uploads/monthly_2021_06/009Translate.gif.57fbdb8a1036f232ade3cbe0aefc2d33.gif" rel=""><img alt="009Translate.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69198" data-unique="wpytqb3p7" src="https://academy.hsoub.com/uploads/monthly_2021_06/009Translate.gif.57fbdb8a1036f232ade3cbe0aefc2d33.gif"></a>
</p>

<p>
	الآن لنُجرب تطبيق استعلامًا يعمل على إخفاء الزر غير المُفعّل، أي عند الضغط على الزر <strong>عربي</strong> يختفي الزر الآخر وبالعكس.
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		إذا أردنا استدعاء كائن مضاف إلى الصفحة مثل (زر، مخطط بياني)، فيجب استدعاء الصفحة الموجود فيها ثم استدعاء الكائن؛ إلا إذا كان هذا الكائن مفعلًا.
	</p>
</blockquote>

<p>
	هنا يمكننا كتابة الاستدعاء أو الاستعلام بإحدى الصيغتين التاليتين ولنا حرية الاختيار:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_11" style="">
<span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Buttons</span><span class="pun">(</span><span class="str">"Button1"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">False</span></pre>

<p>
	أو الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_13" style="">
<span class="typ">Worksheets</span><span class="pun">(</span><span class="str">"VBA"</span><span class="pun">).</span><span class="typ">Buttons</span><span class="pun">(</span><span class="str">"Button1"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">False</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		إن الخاصية <code>Visible</code> هي خاصية مسؤولة عن إظهار أو إخفاء الكائنات، حيث تأخذ القيمة <code>True</code> لإظهار الكائن والقيمة <code>False</code> لإخفائه، ويمكن الحصول على الاسم البرمجي للزر من شريط الاستعلام، كما يمكننا تغيير الاسم البرمجي بالنقر نقرةً مزدوجةً عليه ونضع التسمية المناسبة له.
	</p>
</blockquote>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69199" href="https://academy.hsoub.com/uploads/monthly_2021_06/010Button.PNG.c22fcb059a9a2b48bb07bdde8d1ab4d8.PNG" rel=""><img alt="010Button.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69199" data-unique="36n8ikwod" src="https://academy.hsoub.com/uploads/monthly_2021_06/010Button.PNG.c22fcb059a9a2b48bb07bdde8d1ab4d8.PNG"></a>
</p>

<p>
	وبتطبيق الصيغة السابقة على الإجراءين السابقين نحصل على الصيغ التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_15" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Translate_EN</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Section"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Project code"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Number of zones"</span><span class="pln">

</span><span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Buttons</span><span class="pun">(</span><span class="str">"button1"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln">
</span><span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Buttons</span><span class="pun">(</span><span class="str">"button2"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">False</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> translate_AR</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"القسم"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"B1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"كود المشروع"</span><span class="pln">
</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C1"</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"عدد المناطق"</span><span class="pln">

</span><span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Buttons</span><span class="pun">(</span><span class="str">"button1"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">False</span><span class="pln">
</span><span class="typ">ActiveSheet</span><span class="pun">.</span><span class="typ">Buttons</span><span class="pun">(</span><span class="str">"button2"</span><span class="pun">).</span><span class="typ">Visible</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	الآن عند الضغط على أي زر ستُنفّذ عملية الترجمة ويختفي الزر الآخر تلقائيًا.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69200" href="https://academy.hsoub.com/uploads/monthly_2021_06/011Translate.gif.84b6ca47a93ed53fc2081e63fe8cf968.gif" rel=""><img alt="011Translate.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69200" data-unique="h8s5bg8lf" src="https://academy.hsoub.com/uploads/monthly_2021_06/011Translate.gif.84b6ca47a93ed53fc2081e63fe8cf968.gif"></a>
</p>

<h2>
	المتغيرات
</h2>

<p>
	يُعرِّف مفهوم الخوارزميات المتغيّر على أنه مخزن للبيانات تكون قيمته ثابتة أو متغيّرة، وذلك حسب الغرض من استعماله في الشيفرة.
</p>

<p>
	لدينا مثال من الحياة لتوضيح الفكرة أكثر:
</p>

<p>
	لدينا موظف توصيل طلبات طعام في أحد المطاعم، وإجمالي الدخل اليومي لهذا الموظف يعتمد على قيمتين، إحداهما ثابتة وهي الراتب، والثانية متغيّرة وهي الإكراميّة (البقشيش) التي يتقاضاها من الزبائن ولكن هذه القيمة غير محددة فمثلًا أحد الزبائن يدفع 20 وآخر يدفع 50 وآخر لا يدفع أبدًا لذا أصبح إجمالي الراتب اليومي هنا يعادل مرتبه اليومي مضافًا إليه مجموع الإكراميّات خلال اليوم، وهنا الإكراميّة تمثل المتغيّر أي أن المتغيّر قيمته ليست مشروطة برقم ثابت.
</p>

<h3>
	استخدام المتغيرات
</h3>

<p>
	تُستخدَم المتغيّرات في لغات البرمجة للأسباب التالية:
</p>

<ul>
<li>
		<strong>سهولة كتابة الشيفرات وتعديلها</strong>: وفي مثال على ذلك عندما يكون لدينا شيفرة كبيرة ونريد الاستعلام عن قيمةٍ ما ضمنها في أكثر من موضع وليكن 50 موضعًا، وبعد عدة تطويرات للشيفرة أردنا تعديل هذا الاستعلام فيجب علينا أن نعدّله في جميع المواضع، أي لدينا 50 عملية تعديل؛ أمّا إذا كنّا قد عرّفنا متغيّرًا وأسندنا له قيمة تساوي هذا الاستعلام، فسنحتاج إلى تعديل الشيفرة في موضع واحد فقط وهو مكان إسناد القيمة للمتغيّر.
	</li>
	<li>
		<strong>تسريع عمل الشيفرة</strong>: إن استخدام المتغيّرات يخفف من حجم العمليات ضمن الشيفرة البرمجية وبالتالي تصبح الشيفرة أسرع في عملها.
	</li>
	<li>
		<strong>الاستخدام المتعدد للمتغيّر</strong>: حيث يمكننا استخدامه في أكثر من مكان ضمن الشيفرة.
	</li>
</ul>
<h3>
	تعريف المتغيرات في VBA
</h3>

<p>
	تُعّرف المتغيّرات بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_17" style="">
<span class="typ">Dim</span><span class="pln"> name  </span><span class="typ">As</span><span class="pln">  type</span></pre>

<ul>
<li>
		<strong>Dim</strong> هي اختصار لكلمة <code>Dimension</code> والتي تعني حجز جزء من الذاكرة، ويقصد بها هنا أن الاسم التالي يُعبّر عن متغيّر.
	</li>
	<li>
		<strong>name</strong>: هو اسم اختياري ولكن له عدة شروط:
		<ul>
<li>
				يبدأ بحرف ولا يبدأ برقم أو رمز.
			</li>
			<li>
				لا يحتوي على الرموز التالية (#,$;%;&amp;;!).
			</li>
			<li>
				لا يُسمى بأسماء معرفة في اللغة مثل (IF;SUM).
			</li>
			<li>
				لا يحتوي على فراغات أو نقط.
			</li>
		</ul>
</li>
	<li>
		<strong>type</strong>: يُعبر عن نوع البيانات التي سيكون عليها المتغيّر الذي نعرّفه، مثل: نصي، ورقمي، ومنطقي.
	</li>
</ul>
<p>
	فيما يلي جدول يضم جميع أنواع البيانات لدينا والقيم التي يمكن أن تأخذها:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69201" href="https://academy.hsoub.com/uploads/monthly_2021_06/012DataType.PNG.07bc19fc6498498e63f013ad573a614d.PNG" rel=""><img alt="012DataType.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69201" data-unique="lcmlbkpq2" src="https://academy.hsoub.com/uploads/monthly_2021_06/012DataType.thumb.PNG.4ef58c48ee3b3f1cfca72e72f23da11d.PNG"></a>
</p>

<h3>
	حالات تعريف المتغيّرات واستدعائها
</h3>

<p>
	يُستدعى المتغيّر في الشيفرة عن طريق كتابة اسمه فقط ولكن هنا لدينا حالتان:
</p>

<ul>
<li>
		<strong>تعريف متغيّر ضمن الإجراء</strong>: يمكننا هنا استدعاء المتغيّر داخل الإجراء فقط ولا يمكن التعرّف عليه ضمن إجراء آخر.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_19" style="">
<span class="typ">Sub</span><span class="pln"> test</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
</span><span class="typ">Code</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span></pre>

<ul>
<li>
		<strong>تعريف متغيّر ضمن الإجراء وجعله عامًا</strong>: أي جعل المتغيّر قابلًا للاستخدام في أكثر من إجراء وذلك عن طريق وضع الكلمة <code>Public</code> قبل صيغة التعريف الخاصة بالمتغيّر.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_22" style="">
<span class="typ">Sub</span><span class="pln"> test</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Public</span><span class="pln"> </span><span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
</span><span class="typ">Code</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span></pre>

<ul>
<li>
		<strong>تعريف المتغيّر خارج الإجراءات</strong>: وذلك في بداية الشيفرات، عندها سيكون المتغيّر معرّفًا ضمن كل الإجراءات في نفس النموذج module.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_24" style="">
<span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> test</span><span class="pun">()</span><span class="pln">
</span><span class="typ">Code</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln"> </span></pre>

<h3>
	حالات تعيين قيمة متغير
</h3>

<ul>
<li>
		إسناد قيمة ثابتة للمتغيّر، مثال:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_26" style="">
<span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
X</span><span class="pun">=</span><span class="lit">5</span></pre>

<ul>
<li>
		إسناد قيمة متغيّرة مثل خلية مرجعية، وفي مثال على ذلك ما يلي:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_28" style="">
<span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
X</span><span class="pun">=</span><span class="typ">Rang</span><span class="pun">(</span><span class="str">"name"</span><span class="pun">).</span><span class="pln">value</span></pre>

<ul>
<li>
		إسناد معادلات للمتغيّر، مثال:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3606_30" style="">
<span class="typ">Dim</span><span class="pln"> x </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Single</span><span class="pln">
X</span><span class="pun">=</span><span class="lit">15</span><span class="pun">*</span><span class="lit">260</span><span class="pun">/</span><span class="lit">42</span></pre>

<h2>
	خاتمة
</h2>

<p>
	إن إتقاننا للتعليمات في لغات البرمجة يجعل منّا مبرمجين، ولكن إتقان التعامل مع المتغيّرات يجعلنا مبرمجين محترفين لما للمتغيّرات من أهمية كبيرة في صناعة الشيفرات البرمجية، ولأثرها الكبير على تحسين عمل الشيفرة وتسريعها وسهولة تعديلها، إضافةً إلى تخفيف كمية الاستعلامات في الشيفرة.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/" rel="">مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%83%D8%B1%D8%A7%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r453/" rel="">الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%81%D8%A7%D8%B9%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r454/" rel="">التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA</a>.
	</li>
</ul>
]]></description><guid isPermaLink="false">451</guid><pubDate>Tue, 22 Jun 2021 12:07:00 +0000</pubDate></item><item><title>&#x645;&#x62F;&#x62E;&#x644; &#x625;&#x644;&#x649; &#x627;&#x644;&#x628;&#x631;&#x645;&#x62C;&#x629; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; VBA &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r450/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c5dbc104dea_----VBA---.png.a95970fd572d2cd5b28d36ecfe2067d0.png" /></p>

<p>
	تستخدِم برامج مايكروسوفت أوفيس لغة البرمجة فيجوال بيسك Visual Basic لإجراء عمليات البرمجة وكتابة الشيفرات، حيث دمجت شركة مايكروسوفت هذه اللغة مع تطبيقات مايكروسوفت أوفيس عام 1994، وكان برنامج مايكروسوفت إكسل أول برنامج تُدمج اللغة معه، حيث دُمج إصدار اللغة الموجهة للتطبيقات فقط Visual Basic for Application ليلائم بيئة عمل تطبيقات الأوفيس ومن هنا جاءت التسمية VBA.
</p>

<p>
	يمكننا التعامل مع هذه اللغة والشيفرات البرمجية باستخدام المحرر Visual Basic Editor، وهو برنامج صغير مدمج مع مايكروسوفت أوفيس. حيث نستطيع من خلاله كتابة الشيفرات وتحريرها وتعديلها وتشغيلها، ونستطيع الدخول إليه من خلال قائمة المطوّر Developer إذ يوجد زر محرر الشيفرات، أو من خلال الضغط على الاختصار <code>Ctrl+F11</code>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69174" href="https://academy.hsoub.com/uploads/monthly_2021_06/001VBA.PNG.05c7ddf60f6d64724e3261ff38caa799.PNG" rel=""><img alt="001VBA.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69174" data-unique="kikz6gqkr" src="https://academy.hsoub.com/uploads/monthly_2021_06/001VBA.thumb.PNG.96554047f857278e9916eee859357f20.PNG"></a>
</p>

<p>
	عند فتح محرر الشيفرات VBE سنجد أنه يعمل من خلال نافذة مستقلة تمامًا عن صفحة الإكسل التي نعمل عليها، أي أننا نستطيع العمل على النافذتين وإجراء التعديلات عليهما في آنٍ واحد.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69175" href="https://academy.hsoub.com/uploads/monthly_2021_06/002VBE.PNG.fdeeae18a89b1d9592f13ff1fa11a8c4.PNG" rel=""><img alt="002VBE.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69175" data-unique="4tuyoqagl" src="https://academy.hsoub.com/uploads/monthly_2021_06/002VBE.thumb.PNG.0892c836f23334f71afc7b7006c91392.PNG"></a>
</p>

<h2>
	التعرف على الواجهة الرئيسية لمحرر VBE
</h2>

<p>
	يحتوي المحرر مثل أي تطبيق آخر على العديد من القوائم وأشرطة الأدوات:
</p>

<ul>
<li>
		شريط القوائم الاعتيادي.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69176" href="https://academy.hsoub.com/uploads/monthly_2021_06/003VBE.PNG.66f4f5c2016483b93d7252efe110def4.PNG" rel=""><img alt="003VBE.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69176" data-unique="tcuuprg39" src="https://academy.hsoub.com/uploads/monthly_2021_06/003VBE.thumb.PNG.1a67a9f4a7bccd9e4140039c0df73ce7.PNG"></a>
</p>

<ul>
<li>
		<p>
			شريط الأدوات الأساسي، الذي يحتوي على العديد من الأدوات، مثل: أوامر تشغيل وإيقاف الشيفرة، والحفظ، والانتقال إلى إكسل.
		</p>
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69177" href="https://academy.hsoub.com/uploads/monthly_2021_06/004VBE.PNG.117af80699f788235bfab6a1f897e1ec.PNG" rel=""><img alt="004VBE.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69177" data-unique="p3x8qnt5g" src="https://academy.hsoub.com/uploads/monthly_2021_06/004VBE.PNG.117af80699f788235bfab6a1f897e1ec.PNG"></a>
</p>

<ul>
<li>
		<p>
			القائمة <strong>project</strong> التي يٌعرض من خلالها جميع ملفات الإكسل قيد العمل (المفتوحة) وضمن كل ملف تُعرَض جميع الصفحات التي يحتويها الملف.
		</p>
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69178" href="https://academy.hsoub.com/uploads/monthly_2021_06/005VBE.PNG.16f3d5c86ad5e6894c06a866ef26a81c.PNG" rel=""><img alt="005VBE.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69178" data-unique="ibl4ifago" src="https://academy.hsoub.com/uploads/monthly_2021_06/005VBE.PNG.16f3d5c86ad5e6894c06a866ef26a81c.PNG"></a>
</p>

<p>
	كما يمكن أن يحتوي على ملف اسمه PERSONAL.XLSB وهو ملف يحتوي على تسجيلات الماكرو التي أضفناها إلى برنامج الإكسل، فإذا أردنا إضافة شيفرات قابلة للتطبيق على كافة ملفات الإكسل على حاسوبنا، فعلينا أن إضافتها على المحرر مباشرةً.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69179" href="https://academy.hsoub.com/uploads/monthly_2021_06/006VBE.PNG.5b6d5f646ea882439ab7c0bf0519c752.PNG" rel=""><img alt="006VBE.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69179" data-unique="9rgjmozah" src="https://academy.hsoub.com/uploads/monthly_2021_06/006VBE.PNG.5b6d5f646ea882439ab7c0bf0519c752.PNG"></a>
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		<strong>ملاحظة</strong>: إذا لم تظهر هذه القائمة في المحرر لدينا، نستطيع إظهارها من القائمة <strong>view</strong> بالضغط على الأمر <strong>Project Explorer</strong> أو من خلال الاختصار <code>Ctrl+R</code>.
	</p>
</blockquote>

<ul>
<li>
		القائمة <strong>properties</strong>: تُظهر خصائص الصفحة المحددة في القائمة project، ويمكننا من خلالها تعديل خصائص الصفحة المحددة، مثل: إخفاء أو إظهار الصفحة من الخاصية <code>visible</code> في نهاية القائمة، وتغيير اسم الصفحة من الخاصية <code>name</code>.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69180" href="https://academy.hsoub.com/uploads/monthly_2021_06/007VBE.PNG.763152416095c3c85ca4def1c50564f5.PNG" rel=""><img alt="007VBE.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69180" data-unique="4ai27jkyg" src="https://academy.hsoub.com/uploads/monthly_2021_06/007VBE.PNG.763152416095c3c85ca4def1c50564f5.PNG"></a>
</p>

<p>
	وتُعَد هاتان القائمتان من أهم القوائم في المحرر حيث سنتعامل معهما دائمًا.
</p>

<h2>
	الشيفرة البرمجية وطرق كتابتها في VBA
</h2>

<p>
	<strong>الشيفرة المصدرية Source Code</strong> هي قائمة من النصوص التي يمكن قراءتها من قِبل الإنسان، فهي مكتوبة بلغة معينة تُعبّر عن سلسلة من الأوامر بترتيب معين يَسهُل على الحاسوب فهمها وترجمتها، بحيث تؤدي هذه الأوامر إلى تنفيذ غرض محدد، مثل: إجراء عمليات على البيانات، أو إعادة قيم محددة. وتُكتَب الشيفرة البرمجية في إكسل بطريقتين:
</p>

<ul>
<li>
		عن طريق تسجيل ماكرو وهو ما درسناه في الدرس <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%84%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%A7%D9%84%D9%85%D9%87%D8%A7%D9%85-%D8%A7%D9%84%D9%85%D8%AA%D9%83%D8%B1%D8%B1%D8%A9-%D9%81%D9%8A-microsoft-excel-r204/" rel="">كيفية استخدام الماكرو Macro لأتمتة المهام المتكررة في Microsoft Excel</a>.
	</li>
	<li>
		عن طريق كتابة الشيفرة في المحرر، من خلال إنشاء شيفرة جديدة عن طريق الضغط على "إنشاء نموذج insert model" من شريط الأدوات، ليُفتَح نموذج جديد في القائمة <strong>project</strong> نكتب فيه الشيفرات، ثم نضغط على زر تشغيل من شريط الأدوات ليعمل المحرر على عرض الإجراءات المسجلة ضمن الشيفرة، ثم نختار الإجراء الذي نريد تشغيله ونضغط الأمر <strong>Run</strong> الذي يعمل على تشغيل الشيفرة وتنفيذ المهام المكتوبة فيها. كما يمكن تنفيذ الشيفرة السابقة من خلال الضغط على الزر <code>F5</code> واختيار الإجراء الذي نريد تشغيله.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69181" href="https://academy.hsoub.com/uploads/monthly_2021_06/008NewModel.gif.5f0da15825e85ebd9328f70a84cd9f28.gif" rel=""><img alt="008NewModel.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69181" data-unique="8jirskgh4" src="https://academy.hsoub.com/uploads/monthly_2021_06/008NewModel.thumb.gif.2875b455f1e18dd1808a59c779de334e.gif"></a>
</p>

<p>
	لدينا المثال التالي الذي يوضح تشغيل الشيفرة البرمجية التي تُظهر لنا رسالة تحتوي على نصٍ معيّن:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_6" style="">
<span class="typ">Sub</span><span class="pln"> test</span><span class="pun">()</span><span class="pln">
 </span><span class="typ">Msgbox</span><span class="pln"> </span><span class="str">"hello world”
End sub</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69182" href="https://academy.hsoub.com/uploads/monthly_2021_06/009RunModel.gif.66d66d6ac7ff7d6d57f6a1c044e2dcd1.gif" rel=""><img alt="009RunModel.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="69182" data-unique="81fihnro8" src="https://academy.hsoub.com/uploads/monthly_2021_06/009RunModel.thumb.gif.0006073698288eb6bd548ca313f51e78.gif"></a>
</p>

<h2>
	الإجراءات Procedures
</h2>

<p>
	الإجراء هو مجموعة من الأوامر تهدف مجتمعةً إلى تنفيذ عملية أو مجموعة من العمليات على البيانات، ويقسم إلى نوعين:
</p>

<ul>
<li>
		<strong>sub_routine</strong>: يقصد به الأعمال الاعتيادية أو الأوامر الاعتيادية، مثل: إضافة سطر، وتغيير قيمة خلية.
	</li>
	<li>
		<strong>Function</strong>: المعادلات التي نريد تطبيقها مثل معادلات ودوال الإكسل.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69183" href="https://academy.hsoub.com/uploads/monthly_2021_06/010Procedure.PNG.4c5387613b280372cfdba69663e9fb28.PNG" rel=""><img alt="010Procedure.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69183" data-unique="65y3nuy2j" src="https://academy.hsoub.com/uploads/monthly_2021_06/010Procedure.thumb.PNG.0d0a1720b98a3ce4c74e14d661d46b9e.PNG"></a>
</p>

<h3>
	الفرق الجوهري بين Function وsub_routine
</h3>

<ol>
<li>
		<strong>sub_routine</strong>
	</li>
</ol>
<ul>
<li>
		يُنفذ مجموعة من المهام ولكن لا يعرض القيمة.
	</li>
	<li>
		يمكن استدعاءه من أي مكان داخل البرنامج بعد إنشائه.
	</li>
	<li>
		الصيغة العامة لبنائه:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_8" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Name</span><span class="pun">()</span><span class="pln">
 </span><span class="typ">Our</span><span class="pln"> code 
</span><span class="typ">End</span><span class="pln"> </span><span class="kwd">sub</span></pre>

<ol start="2">
<li>
		<strong>Function</strong>
	</li>
</ol>
<ul>
<li>
		تعمل على إجراء المعادلات أو العمليات وتعيد لنا قيمة ضمن أي خلية نحتاج تطبيق الإجراء عليها.
	</li>
	<li>
		يمكن استخدام الشيفرة فيها مثل دالة متعارف عليها في برنامج إكسل ونستطيع تنفيذها ضمن الخلايا.
	</li>
	<li>
		الصيغة العامة لبنائه:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_10" style="">
<span class="typ">Function</span><span class="pln"> </span><span class="typ">Name</span><span class="pun">()</span><span class="pln">
 </span><span class="typ">Our</span><span class="pln"> code 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	حيث أن:
</p>

<ul>
<li>
		<strong>name</strong>: هو الاسم الذي اخترناه للإجراء ويفضل أن يكون الاسم معبرًا عن عمل الإجراء.
	</li>
	<li>
		<strong>our code</strong>: هي مجموعة الأوامر والتعليمات البرمجية التي تُشكل جسم الإجراء.
	</li>
	<li>
		<strong>End sub</strong>: دلالة على نهاية الإجراء.
	</li>
</ul>
<h3>
	مثال
</h3>

<p>
	ضمن النموذج model السابق نكتب الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_13" style="">
<span class="typ">Function</span><span class="pln"> square</span><span class="pun">(</span><span class="pln">A </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Integer</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Double</span><span class="pln">
     </span><span class="typ">Square</span><span class="pun">=</span><span class="pln">A</span><span class="pun">*</span><span class="pln">A
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Function</span></pre>

<p>
	لسنا بحاجة إلى تشغيل الشيفرة هنا، لأن برنامج إكسل سيتعرف عليه تلقائيًا ويضيفه إلى مجموعة الأوامر لديه على شكل دالة معرفة ضمنه أساسًا، لتوضيح الفكرة لدينا البيانات التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69184" href="https://academy.hsoub.com/uploads/monthly_2021_06/011Function.PNG.6279df74669c3c6fb203e0fd068c5f92.PNG" rel=""><img alt="011Function.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69184" data-unique="rvpxqdudd" src="https://academy.hsoub.com/uploads/monthly_2021_06/011Function.PNG.6279df74669c3c6fb203e0fd068c5f92.PNG"></a>
</p>

<p>
	لتنفيذ الدالة (الإجراء) السابقة في الخلية B2 نكتب الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_15" style="">
<span class="pun">=</span><span class="pln">square</span><span class="pun">(</span><span class="pln">A2</span><span class="pun">)</span></pre>

<p>
	نلاحظ أننا حصلنا على دالة جديدة تعطينا مربع الرقم.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69185" href="https://academy.hsoub.com/uploads/monthly_2021_06/012Function.PNG.0207b3d04445bc6552191983c7f436b6.PNG" rel=""><img alt="012Function.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69185" data-unique="5lg6mex08" src="https://academy.hsoub.com/uploads/monthly_2021_06/012Function.PNG.0207b3d04445bc6552191983c7f436b6.PNG"></a>
</p>

<h2>
	منهجية كتابة الشيفرات
</h2>

<p>
	تتشابه منهجية كتابة الشيفرات بشكل كبير في جميع لغات البرمجة، فالشيفرات تُكتب بنفس المبدأ وتختلف عن بعضها بالمسميات وبعض الأمور البسيطة. في البداية لدينا بعض المصطلحات التي علينا معرفتها:
</p>

<ul>
<li>
		<strong>Object</strong>: يعبر عن الكائنات بمفهومها العام، مثل: سيارة، حاسوب، كتاب. حيث قد يكون كائنًا رئيسيًا وتتفرع منه كائنات فرعية.
	</li>
	<li>
		<strong>Property</strong>: مجموعة من الخصائص التي يملكها الكائن.
	</li>
	<li>
		<strong>Collection</strong>: مجموعة من الكائنات الفرعية تتشارك بمجموعة من الخصائص الرئيسية، وتختلف بخصائص بسيطة تميزها عن بعضها مثل (اسم الكائن).
	</li>
	<li>
		<strong>Method</strong>: تعبِّر عن عمل يُطبق على الكائن مباشرةً دون إرجاع القيمة.
	</li>
</ul>
<p>
	تعتمد منهجية كتابة الشيفرات على التسلسل الهرمي، ولفهم ذلك نأخذ سيارةً لتكون مثالًا كائن <code>Object</code> نريد تطبيق الشيفرة عليه:
</p>

<p>
	تمثل السيارة الكائن الرئيسي وله عدة خصائص <code>Property</code>، مثل: اللون، والوزن، والنوع، وتمثل الأبواب كائنًا فرعيًّا وتُشكِّل مع بعضها مجموعة <code>Collection</code> ولها عدة خصائص أيضًا. للاستعلام عن قيمة خاصية أو التعديل بأسلوب التسلسل الهرمي لدينا عدة طرق:
</p>

<ul>
<li>
		استعلام عن خاصية في الكائن مباشرةً يكون بالصيغة التالية:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_18" style="">
<span class="typ">Object</span><span class="pun">.</span><span class="typ">Property</span><span class="pun">=</span><span class="pln">value</span></pre>

<p>
	بالتطبيق على مثالنا:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_22" style="">
<span class="typ">Car</span><span class="pun">.</span><span class="pln">color</span><span class="pun">=</span><span class="pln">red</span></pre>

<p>
	حيث تمثِّل<code>car</code> الكائن الرئيسي، في حين النقطة تُعبر عن الاستعلام، و<code>color</code> تعبر عن الخاصية، أمّا <code>red</code> فتُعبِّر عن القيمة الناتجة من الاستعلام.
</p>

<ul>
<li>
		استعلام عن خاصية كائن فرعي من الكائن الرئيسي يكون بالصيغة التالية:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_20" style="">
<span class="typ">Object</span><span class="pun">.</span><span class="typ">Object</span><span class="pun">.</span><span class="typ">Property</span><span class="pun">=</span><span class="pln">value</span></pre>

<p>
	وبالتطبيق على مثالنا:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_24" style="">
<span class="typ">Car</span><span class="pun">.</span><span class="pln">engine</span><span class="pun">.</span><span class="pln">power</span><span class="pun">=</span><span class="lit">400</span></pre>

<p>
	تُمثل الاستعلام عن قوة المحرك ضمن السيارة، حيث السيارة كائن رئيسي، والمحرك كائن فرعي، وقوة المحرك خاصية للكائن الفرعي.
</p>

<ul>
<li>
		استعلام عن خاصية كائن ضمن مجموعة ضمن الكائن الرئيسي يكون بالصيغة التالية:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6590_7" style="">
<span class="typ">Object</span><span class="pun">.</span><span class="typ">Collection</span><span class="pun">(</span><span class="str">'تحديد الكائن عن طريق اسمه '</span><span class="pun">).</span><span class="typ">Property</span><span class="pun">=</span><span class="pln">value</span></pre>

<p>
	وبالتطبيق على مثالنا:
</p>

<pre class="ipsCode">
Car.wheel("fr").color=black
</pre>

<p>
	يُمثل الاستعلام عن لون العجلة الأمامية اليمنى ضمن السيارة، حيث السيارة كائن رئيسي والعجلات مجموعة تابعة للكائن الرئيسي واللون خاصية للمجموعة.
</p>

<ul>
<li>
		الأمر المباشر، حيث تُنفَذ العملية أو الدالة مباشرةً على الكائن ولا يُرجع أي قيم كما سبق في الطرق السابقة، ويكون بالصيغة التالية:
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_28" style="">
<span class="typ">Object</span><span class="pun">.</span><span class="typ">Method</span></pre>

<p>
	وبالتطبيق على مثالنا:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_30" style="">
<span class="typ">Car</span><span class="pun">.</span><span class="pln">stop</span></pre>

<p>
	حيث أن العملية <code>stop</code> تمثل أمرًا مباشرًا يعمل على إيقاف السيارة.
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		تختلف هرمية تنفيذ تسلسل العمليات بحسب موقعنا من الملف أي (في أي صفحة؟ ضمن أي خلية؟ وهكذا)
	</p>
</blockquote>

<p>
	لتوضيح ذلك لدينا ملف الإكسل التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69186" href="https://academy.hsoub.com/uploads/monthly_2021_06/013Procedure.PNG.6400030cd2a823adc67fd75429eb2b62.PNG" rel=""><img alt="013Procedure.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69186" data-unique="z528sofmn" src="https://academy.hsoub.com/uploads/monthly_2021_06/013Procedure.thumb.PNG.8043f4dd9f191c6c0d9b3091de6e2487.PNG"></a>
</p>

<p>
	يحتوي الملف على العديد من الصفحات، ونريد إدخال القيمة 45 ضمن الخلية C2 في الصفحة CODE.
</p>

<p>
	لدينا الاستعلام التالي لتنفيذ العملية وهو على الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_32" style="">
<span class="typ">Application</span><span class="pun">.</span><span class="pln">workbook</span><span class="pun">(</span><span class="str">"test"</span><span class="pun">).</span><span class="pln">worksheets</span><span class="pun">(</span><span class="str">"CODE"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C2"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="lit">45</span></pre>

<p>
	<strong>تفسير ال</strong>كائنات<strong> في الصيغة</strong>:
</p>

<ul>
<li>
		<strong>Application</strong>: تمثل الكائن الرئيسي وهو برنامج الإكسل.
	</li>
	<li>
		<strong>("workbook("test</strong>: تمثل كائنًا فرعيًّا وهو ملف الإكسل واسم الملف test.
	</li>
	<li>
		<strong>("worksheets("CODE</strong>: تمثل كائنًا فرعيًّا من الملف test وهو كائن الصفحة CODE.
	</li>
	<li>
		<strong>("Range("C2</strong>: تمثل كائنًا فرعيًّا من الصفحة CODE وهو كائن الخلية C2.
	</li>
	<li>
		<strong>value</strong>: تمثل الخاصية التابعة للخلية والتي تمثل قيمة محتواها حيث سنعطيها القيمة 45.
	</li>
</ul>
<p>
	يُعَد الاستعلام السابق هو الطريقة الأشمل، ولكنّنا نستطيع أن نختار تسلسلًا آخر وذلك حسب موقعنا من الملف، أي إذا كنا نعمل على الملف السابق وكانت الصفحة الفعّالة لدينا هي الصفحة CODE فإننا نحتاج الجزء التالي من الهرمية السابقة وهو:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_34" style="">
<span class="typ">Range</span><span class="pun">(</span><span class="str">"C2"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="lit">45</span></pre>

<p>
	أما إذا كانت الصفحة الفعّالة لدينا هي الصفحة CHAR ونفذّنا عليها الاستعلام السابق فإن النتيجة ستكون إسناد القيمة 45 في الخلية C2 في الصفحة CHAR، وللوصول إلى ناتج صحيح علينا العودة بالهرمية السابقة خطوةً إلى الوراء بحيث تصبح الصيغة كالآتي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1271_36" style="">
<span class="pln">worksheets</span><span class="pun">(</span><span class="str">"CODE"</span><span class="pun">).</span><span class="typ">Range</span><span class="pun">(</span><span class="str">"C2"</span><span class="pun">).</span><span class="pln">value</span><span class="pun">=</span><span class="lit">45</span></pre>

<h2>
	خاتمة
</h2>

<p>
	قد يبدو الأمر معقدًا بعض الشيء في البداية لكن كل ما علينا فعله هو التركيز ومعرفة التسلسل الصحيح للاستعلامات، وهو ما سنتقنه من خلال التمارين لاحقًا. سنتعرّف في الدروس القادمة على المزيد من الأوامر والشيفرات البرمجية في VBA ضمن مايكروسوفت إكسل.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA-%D9%88%D8%A3%D9%87%D9%85-%D8%A7%D9%84%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D9%81%D9%8A-%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-vba-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r451/" rel="">المتغيرات وأهم العناصر في برمجة VBA في مايكروسوفت إكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-vba-r452/" rel="">العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%A3%D8%AE%D8%B7%D8%A7%D8%A1-%D9%81%D9%8A-vba-%D8%B6%D9%85%D9%86-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r455/" rel="">التعامل مع الأخطاء في VBA ضمن مايكروسوفت إكسل</a>.
	</li>
</ul>
]]></description><guid isPermaLink="false">450</guid><pubDate>Sat, 19 Jun 2021 12:02:00 +0000</pubDate></item><item><title>&#x623;&#x643;&#x62B;&#x631; &#x627;&#x644;&#x62F;&#x648;&#x627;&#x644; &#x627;&#x644;&#x631;&#x64A;&#x627;&#x636;&#x64A;&#x629; &#x634;&#x64A;&#x648;&#x639;&#x627; &#x641;&#x64A; &#x645;&#x627;&#x64A;&#x643;&#x631;&#x648;&#x633;&#x648;&#x641;&#x62A; &#x625;&#x643;&#x633;&#x644;</title><link>https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A3%D9%83%D8%AB%D8%B1-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A9-%D8%B4%D9%8A%D9%88%D8%B9%D8%A7-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r449/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_06/60c5d4455abce_------.png.ce9e46422554dca85d71acd755248d61.png" /></p>

<p>
	يُعَد إجراء العمليات الحسابية البسيطة والمعقدة، وإعطاء النتائج بدقةٍ وسرعة؛ من أهم استخدامات برنامج الإكسل، ويوجد العديد من الدوال التي تقوم بهذه العمليات الحسابية، سنتعرف فيما يلي على أهمها وأكثرها استخدامًا، وهي:
</p>

<ul>
<li>
		المجموعة المرتبطة بدالة العد <code>COUNT</code>، والتي تتألف من خمس دوالٍ أساسية:
	</li>
	<li>
		<code>COUNT</code>
	</li>
	<li>
		<code>COUNTA</code>
	</li>
	<li>
		<code>COUNTBLANK</code>
	</li>
	<li>
		<code>COUNTIF</code>
	</li>
	<li>
		<code>COUNTIFS</code>
	</li>
	<li>
		دالة جمع الجداء <code>SUMPRODUCT</code>
	</li>
	<li>
		دوال التقريب <code>ROUND</code>، و<code>ROUNDUP</code>، و<code>ROUNDDOWN</code>
	</li>
	<li>
		دوال القيم العشوائية <code>RAND</code>، و<code>RANDBETWEEN</code>
	</li>
</ul>
<h2>
	دوال العد COUNT
</h2>

<p>
	تعمل هذه الدوال على فحص الخلايا وإرجاع عددها بناءًا على الدالة المُستخدمة.
</p>

<h3>
	الدالة COUNT
</h3>

<p>
	تعمل هذه الدالة على حساب عدد الخلايا الرقمية فقط وذلك ضمن نطاقٍ محدد.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_6" style="">
<span class="pln">COUNT</span><span class="pun">(</span><span class="typ">Value1</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Value2</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Value3</span><span class="pun">,</span><span class="pln"> </span><span class="pun">...)</span></pre>

<p>
	تحتاج الدالة إلى المعطيات التالية:
</p>

<ul>
<li>
		<strong>Value1</strong>: وهي العنصر أو مرجع الخلية، أو النطاق الأول الذي تريد حساب الأرقام الموجودة بداخله، وهذا المُعطى مطلوب.
	</li>
	<li>
		<strong>….,Value2, Value3</strong>: وهي العناصر الإضافية أو مراجع الخلايا أو النطاقات التي تريد حساب الأرقام الموجودة بداخلها، ويصل عددها إلى 255، وهذا المُعطى اختياري.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	يُوَضح الجدول التالي جزءًا من بيانات العملاء لدى أحد البنوك.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69151" href="https://academy.hsoub.com/uploads/monthly_2021_06/001COUNT.PNG.fbf121a8d5109e12078fc5cd4d6a74f5.PNG" rel=""><img alt="001COUNT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69151" data-unique="xqv234q5q" src="https://academy.hsoub.com/uploads/monthly_2021_06/001COUNT.PNG.fbf121a8d5109e12078fc5cd4d6a74f5.PNG"></a>
</p>

<p>
	نطبّق الدالة السابقة في إحدى الخلايا الفارغة، ولتكن الخلية C18، بعدها نختار الخلايا التي سنطبِّق الدالة عليها، مثل: C1، وC5، وD2، وE9، وF14.
</p>

<p>
	نكتب الصيغة التالية:
</p>

<pre class="ipsCode">
=COUNT(C2,C5,D2,E9,F14)
</pre>

<p>
	نرى أنّ الناتج لدينا هو 4 أي أنّ الدالة لم تعمل على حساب الخلية D2 لأن محتواها نص وليس رقم.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69152" href="https://academy.hsoub.com/uploads/monthly_2021_06/002COUNT.PNG.21ea5586e53ce2bc0d00af15b65778b9.PNG" rel=""><img alt="002COUNT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69152" data-unique="llpkrvukp" src="https://academy.hsoub.com/uploads/monthly_2021_06/002COUNT.PNG.21ea5586e53ce2bc0d00af15b65778b9.PNG"></a>
</p>

<p>
	يمكننا هنا استبدال المعطيات بنطاقٍ محددٍ حسب الحاجة، فإذا أردنا إحصاء عدد الخانات الرقمية في المجال من E2 إلى F16 مثلًا، فسنكتب الدالة بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_8" style="">
<span class="pun">=</span><span class="pln">COUNT</span><span class="pun">(</span><span class="pln">E2</span><span class="pun">:</span><span class="pln">F16</span><span class="pun">)</span></pre>

<p>
	ويكون الناتج هنا عدد جميع الخانات الرقمية ضمن هذا المجال وهو 30 خلية رقمية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69153" href="https://academy.hsoub.com/uploads/monthly_2021_06/003COUNT.PNG.3a844ee108e84202a99ced638702c96b.PNG" rel=""><img alt="003COUNT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69153" data-unique="svv4y29hm" src="https://academy.hsoub.com/uploads/monthly_2021_06/003COUNT.PNG.3a844ee108e84202a99ced638702c96b.PNG"></a>
</p>

<h3>
	الدالة COUNTA
</h3>

<p>
	تعمل هذه الدالة على حساب عدد الخلايا غير الفارغة ضمن نطاقٍ محددٍ، بغضّ النظر عن نوعية البيانات فيها بما في ذلك الخلايا التي تحوي نصًا فارغًا " "، والخلايا التي تحوي القيم الخاطئة مثل #N/A.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_10" style="">
<span class="pln">COUNTA</span><span class="pun">(</span><span class="typ">Value1</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Value2</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Value3</span><span class="pun">…)</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		تحتاج الدالة إلى المعطيات نفسها المذكورة في الدالة COUNT.
	</p>
</blockquote>

<p>
	نُطبق الدالة على المثال السابق لنحصل على الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_12" style="">
<span class="pun">=</span><span class="pln">COUNTA</span><span class="pun">(</span><span class="pln">C2</span><span class="pun">,</span><span class="pln">C5</span><span class="pun">,</span><span class="pln">D2</span><span class="pun">,</span><span class="pln">E9</span><span class="pun">,</span><span class="pln">F14</span><span class="pun">)</span></pre>

<p>
	فيكون الناتج لدينا هو 5، أي أن الدالة عملت على حساب جميع الخلايا النصية والرقمية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69154" href="https://academy.hsoub.com/uploads/monthly_2021_06/004COUNTA.PNG.09599359ccf61170eaa1d7d0033b9c04.PNG" rel=""><img alt="004COUNTA.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69154" data-unique="qjikvwwrl" src="https://academy.hsoub.com/uploads/monthly_2021_06/004COUNTA.PNG.09599359ccf61170eaa1d7d0033b9c04.PNG"></a>
</p>

<p>
	نستبدل الآن المعطيات بنطاقٍ أوسع من النطاق المذكور في المثال السابق، وليكن النطاق B2:E16، نكتب الدالة بالصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_14" style="">
<span class="pun">=</span><span class="pln">COUNT</span><span class="pun">(</span><span class="pln">E2</span><span class="pun">:</span><span class="pln">F15</span><span class="pun">)</span></pre>

<p>
	فيكون الناتج هنا عدد جميع الخانات الرقميّة والنصيّة ضمن هذا المجال، وهو 56 خلية غير فارغة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69155" href="https://academy.hsoub.com/uploads/monthly_2021_06/005.COUNTA.PNG.57fe35bb36fc3ad1c9e9cd015360ee04.PNG" rel=""><img alt="005.COUNTA.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69155" data-unique="rzozin64h" src="https://academy.hsoub.com/uploads/monthly_2021_06/005.COUNTA.PNG.57fe35bb36fc3ad1c9e9cd015360ee04.PNG"></a>
</p>

<h3>
	الدالة COUNTBLANK
</h3>

<p>
	تعمل هذه الدالة على حساب عدد الخلايا الفارغة فقط ضمن نطاقٍ محدد.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_16" style="">
<span class="pln">COUNTBLANK</span><span class="pun">(</span><span class="typ">Value1</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Value2</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Value3</span><span class="pun">,…)</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		تحتاج الدالة إلى المعطيات نفسها المذكورة في الدالة COUNT.
	</p>
</blockquote>

<p>
	نُطبّق الدالة على المثال التالي ضمن المجال B2:B16.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69156" href="https://academy.hsoub.com/uploads/monthly_2021_06/006COUNTBLANK.PNG.578931cf7fb53d3c87e6841c8ffb9a3f.PNG" rel=""><img alt="006COUNTBLANK.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69156" data-unique="v484zvq8h" src="https://academy.hsoub.com/uploads/monthly_2021_06/006COUNTBLANK.PNG.578931cf7fb53d3c87e6841c8ffb9a3f.PNG"></a>
</p>

<p>
	نكتب الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_18" style="">
<span class="pun">=</span><span class="pln">COUNTBLANK</span><span class="pun">(</span><span class="pln">B2</span><span class="pun">:</span><span class="pln">B16</span><span class="pun">)</span></pre>

<p>
	فيكون الناتج لدينا هو 3، أي أن الدالة قد عملت على حساب جميع الخلايا الفارغة فقط.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69157" href="https://academy.hsoub.com/uploads/monthly_2021_06/007COUNTBLANK.PNG.4b045a8f8cf4d50baee363c1ccbe8f6a.PNG" rel=""><img alt="007COUNTBLANK.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69157" data-unique="w8zhg0sdf" src="https://academy.hsoub.com/uploads/monthly_2021_06/007COUNTBLANK.PNG.4b045a8f8cf4d50baee363c1ccbe8f6a.PNG"></a>
</p>

<h3>
	الدالة COUNTIF
</h3>

<p>
	تعمل هذه الدالة على حساب عدد الخلايا التي تحقق شرطًا معينًا.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_20" style="">
<span class="pln">COUNTIF</span><span class="pun">(</span><span class="pln">range</span><span class="pun">,</span><span class="pln">criteria</span><span class="pun">)</span></pre>

<p>
	تحتاج الدالة إلى المعطيات التالية:
</p>

<ul>
<li>
		النطاق <strong>range</strong>: وهو النطاق الذي نريد تطبيق الدالة على محتويات الخلايا فيه، والتأكد من مُطَابقتها للشرط أم لا، وهذا المُعطى مطلوب.
	</li>
	<li>
		المعيار <strong>criteria</strong>: وهو المعيار أو الشرط الذي يجب أن يتحقق في خلية من النطاق <code>range</code> لتُحتَسب، وهذا المُعطى مطلوب.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	لِنُطبق الدالة على العمود D من جدول البيانات السابق، فيكون المجال لدينا هو D2:D16، والشرط هو أن يكون نوع التسديد (شهري)، فتكون صيغة الدالة كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_22" style="">
<span class="pun">=</span><span class="pln">COUNTIF</span><span class="pun">(</span><span class="pln">D2</span><span class="pun">:</span><span class="pln">D16</span><span class="pun">,</span><span class="str">"شهري"</span><span class="pun">)</span></pre>

<p>
	ويكون الناتج لدينا هو 4 خلايا، وهو ما يُحَقق الشرط السابق.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69158" href="https://academy.hsoub.com/uploads/monthly_2021_06/008COUNTIF.PNG.cd7280ea0d821a402e8dd189b8902d83.PNG" rel=""><img alt="008COUNTIF.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69158" data-unique="rj7i9vnu8" src="https://academy.hsoub.com/uploads/monthly_2021_06/008COUNTIF.PNG.cd7280ea0d821a402e8dd189b8902d83.PNG"></a>
</p>

<h3>
	الدالة COUNTIFS
</h3>

<p>
	تعمل هذه الدالة على حساب عدد الخلايا التي تُحَقق شروطًا معينةً على أكثر من نطاق، وقد شرحنا كيفيّة عملها في الدرس <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%AF%D8%A7%D9%84%D8%A9-if-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A%D8%A9-%D9%81%D9%8A-microsoft-excel-r45/" rel="">كيفية استخدام دالة IF الشرطية في Microsoft Excel</a>
</p>

<h2>
	الدالة SUMPRODUCT
</h2>

<p>
	تُستخدم هذه الدالة لحساب ناتج مجموع جداء عمودين أو أكثر. وتفيدنا هذه الدالة في حساب إجمالي مبيعات مجموعة من المنتجات على سبيل المثال.
</p>

<h3>
	البناء العام لصيغة الدالة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_24" style="">
<span class="pln">SUMPRODUCT</span><span class="pun">(</span><span class="pln">array1</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[</span><span class="pln">array2</span><span class="pun">],</span><span class="pln"> </span><span class="pun">[</span><span class="pln">array3</span><span class="pun">],</span><span class="pln"> </span><span class="pun">...)</span></pre>

<p>
	تحتاج الدالة إلى المعطيات التالية:
</p>

<ul>
<li>
		<strong>array1</strong>: هو النطاق الذي يحتوي العمود المراد جدائه بعمود آخر، وهذا المُعطى مطلوب.
	</li>
	<li>
		<strong>…,[array2], [array3]</strong>: هي النطاقات التي ستُضرب محتوياتها بالعمود السابق، وهذا المُعطى اختياري.
	</li>
</ul>
<h3>
	مثال
</h3>

<p>
	لدينا جدول البيانات التالي، والذي يحوي بياناتٍ خاصة بمبيعات بعض المنتجات لدى إحدى شركات الهواتف.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69159" href="https://academy.hsoub.com/uploads/monthly_2021_06/009SUMPRODUCT.PNG.74a0d67c59cdd6a7e877cb51dccb8ec3.PNG" rel=""><img alt="009SUMPRODUCT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69159" data-unique="st41k55qw" src="https://academy.hsoub.com/uploads/monthly_2021_06/009SUMPRODUCT.PNG.74a0d67c59cdd6a7e877cb51dccb8ec3.PNG"></a>
</p>

<p>
	نريد إيجاد مبلغ إجمالي المبيعات لديها، ولهذا نطبق الدالة في الخلية D17 وتكون لدينا الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_27" style="">
<span class="pun">=</span><span class="pln">SUMPRODUCT</span><span class="pun">(</span><span class="pln">E2</span><span class="pun">:</span><span class="pln">E15</span><span class="pun">,</span><span class="pln">D2</span><span class="pun">:</span><span class="pln">D15</span><span class="pun">)</span></pre>

<p>
	<strong>تفسير عمل الدالة</strong>:
</p>

<p>
	تعمل الدالة على ضرب الخلية E2 بالخلية D2، والخلية E3 بالخلية D3، وهكذا إلى نهاية النطاقين، ثم تجمع نواتج الضرب لِما سبق، فيكون الناتج هنا هو 167923، وهو نفس الناتج الذي سنحصل عليه لو أضفنا عمودًا يحوي عملية الجداء بالطريقة التقليدية أو عن طريق الدالة <code>PRODUCT</code> ثم طبّقنا الدالة <code>SUM</code> على النواتج الحاصلة فيه.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69160" href="https://academy.hsoub.com/uploads/monthly_2021_06/010SUMPRODUCT.PNG.2ef83d4a15453e45b4e7661c9c751d33.PNG" rel=""><img alt="010SUMPRODUCT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69160" data-unique="5p5miholi" src="https://academy.hsoub.com/uploads/monthly_2021_06/010SUMPRODUCT.PNG.2ef83d4a15453e45b4e7661c9c751d33.PNG"></a>
</p>

<p>
	<strong>ملاحظات هامة</strong>: يجب أن تكون نطاقات المعطيات ذات الأبعاد نفسها. فإذا كانت الأبعاد مختلفة، فسيكون الناتج هو الخطأ #VALUE!. على سبيل المثال لو أدخلنا النطاقين كالتالي <code>(SUMPRODUCT(E2:E15,D2:D15</code>، فسينتج لدينا الخطأ #VALUE! لأن النطاقين غير متساويين في الأبعاد.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69161" href="https://academy.hsoub.com/uploads/monthly_2021_06/011SUMPRODUCT.PNG.852db22e78d2b48df8b40d6862c310a8.PNG" rel=""><img alt="011SUMPRODUCT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69161" data-unique="8rimrrnd1" src="https://academy.hsoub.com/uploads/monthly_2021_06/011SUMPRODUCT.PNG.852db22e78d2b48df8b40d6862c310a8.PNG"></a>
</p>

<p>
	تتعامل <code>SUMPRODUCT</code> مع إدخالات النطاق غير الرقمي كما لو كانت أصفارًا.
</p>

<p>
	لنجرب تحديد النطاق في المُعطى الثاني C2:C15 بدلًا من D2:D15 سينتج لدينا هنا القيمة 0.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69162" href="https://academy.hsoub.com/uploads/monthly_2021_06/012SUMPRODUCT.PNG.2f679ccf79673471338d19f8bda32535.PNG" rel=""><img alt="012SUMPRODUCT.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69162" data-unique="jw0g4y29z" src="https://academy.hsoub.com/uploads/monthly_2021_06/012SUMPRODUCT.PNG.2f679ccf79673471338d19f8bda32535.PNG"></a>
</p>

<h2>
	دوال التقريب ROUND وROUNDUP وROUNDDOWN
</h2>

<p>
	تعمل هذه الدوال على تقريب الأرقام العشرية بحسب المنزلة التي نختارها إما للأعلى أو للأسفل، وذلك وفقًا للدالة التي نستخدمها.
</p>

<h3>
	الدالة ROUND
</h3>

<p>
	تقرّب هذه الدالة الأرقام العشرية إلى المنزلة العشرية التي نختارها.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_29" style="">
<span class="pln">ROUND</span><span class="pun">(</span><span class="pln">number</span><span class="pun">,</span><span class="pln"> num_digits</span><span class="pun">)‎</span></pre>

<p>
	تحتاج الدالة إلى المعطيات التالية:
</p>

<ul>
<li>
		<strong>number</strong>: وهو العدد العشري الذي نُريد تقريبه، وهذا المُعطى مطلوب.
	</li>
	<li>
		<strong>num_digits</strong>: وهي المنزلة التي نُريد تقريب العدد العشري إليها، وهذا المُعطى مطلوب.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	لدينا بيانات التعديلات على رواتب موظفي إحدى المنظمات.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69163" href="https://academy.hsoub.com/uploads/monthly_2021_06/013ROUND.PNG.2a9b0b8cb3d9bf96769c69cd1db28b18.PNG" rel=""><img alt="013ROUND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69163" data-unique="t1mbplaio" src="https://academy.hsoub.com/uploads/monthly_2021_06/013ROUND.PNG.2a9b0b8cb3d9bf96769c69cd1db28b18.PNG"></a>
</p>

<p>
	نلاحظ أن الرواتب بعد الزيادة تحوي الكثير من الفواصل العشرية، ويَصعُب قراءتها بهذه الطريقة، ولتقريب الأرقام إلى منزلتين عشريتين فقط، نطّبق الدالة <code>ROUND</code> على الخلايا في عمود الراتب بعد الزيادة، ونكتب الصيغة التالية في الخلية G2:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_32" style="">
<span class="pun">=</span><span class="pln">ROUND</span><span class="pun">(</span><span class="pln">F2</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span></pre>

<p>
	فنحصل على مبلغ الراتب بمنزلتين عشريتين فقط.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69164" href="https://academy.hsoub.com/uploads/monthly_2021_06/014ROUND.PNG.634c21a6ac553832e1fd84cb2094a59f.PNG" rel=""><img alt="014ROUND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69164" data-unique="uani5k391" src="https://academy.hsoub.com/uploads/monthly_2021_06/014ROUND.PNG.634c21a6ac553832e1fd84cb2094a59f.PNG"></a>
</p>

<p>
	باستخدام مقبض التعبئة نسحب لأسفل العمود لتطبيق العملية على كامل عمود المرتبات الجديدة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69165" href="https://academy.hsoub.com/uploads/monthly_2021_06/015ROUND.PNG.627ba843d42f2fcb9c304bab6a8355fe.PNG" rel=""><img alt="015ROUND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69165" data-unique="s6v0tdgd3" src="https://academy.hsoub.com/uploads/monthly_2021_06/015ROUND.PNG.627ba843d42f2fcb9c304bab6a8355fe.PNG"></a>
</p>

<p>
	<strong>تفسير عمل الدالة</strong>:
</p>

<p>
	تعمل الدالة على الوصول إلى المنزلة المذكورة في المُعطى الثاني وتفحص المنزلة التي تليها مباشرةً، فإذا كان الرقم أقل من 5، فستُهمِله بالكامل بعد المنزلة التي اخترناها؛ أما إذا كان أكبر من 5، فستعمل على إضافة 1 إلى قيمة المنزلة في المُعطى الثاني، أي إذا كان الرقم الذي نريد تقريبه هو 7.346 وأردنا تقريبه إلى منزلتين عشريتين فقط، فإن الرقم سيصبح 7.35، أما إذا كان 5.754 فسيصبح 5.75 فقط ويُهمَل الرقم 4.
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		<strong>تنويه</strong>: إذا وضعنا في المُعطى الثاني قيمة منزلة التقريب تساوي 0 ،فسيتم تقريب الرقم إلى أقرب رقمٍ صحيحٍ دون فواصل عشرية.
	</p>
</blockquote>

<h3>
	الدالتين ROUNDUP وROUNDDOWN
</h3>

<p>
	تعمل هاتين الدالتين عكس بعضهما، حيث تعملان على التقريب إما للرقم الأعلى بحسب عدد المنازل التي نريد في الدالة <code>ROUNDUP</code>، أو للرقم نفسه وتُهمِل كل ما هو بعد المنزلة التي أدخلناها في الدالة <code>ROUNDDOWN</code>.
</p>

<p>
	سندرس البناء العام لإحداهما فهما تملكان نفس الصفات.
</p>

<h4>
	البناء العام لصيغة الدالتين
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_34" style="">
<span class="pln">ROUNDUP</span><span class="pun">(</span><span class="pln">number</span><span class="pun">,</span><span class="pln"> num_digits</span><span class="pun">)‎</span><span class="pln">
ROUNDDOWN </span><span class="pun">(</span><span class="pln">number</span><span class="pun">,</span><span class="pln"> num_digits</span><span class="pun">)‎</span></pre>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		اقتباس
	</div>

	<p>
		تحتاج الدالتين إلى المعطيات نفسها التي ذُكِرَت في الدالة السابقة.
	</p>
</blockquote>

<h4>
	مثال
</h4>

<p>
	عند تطبيق الدالة <code>ROUNDUP</code>، و<code>ROUNDDOWN</code> على المثال السابق، فسنلاحظ أنّ الدالة <code>ROUNDUP</code> قد عملت على تقريب العدد في المنزلة الثانية إلى العدد الأعلى مباشرةً بغض النظر إن كان العدد في المنزلة الثالثة أكبر من 5 أو أصغر؛ أما الدالة <code>ROUNDDOWN</code> فقد أهملت كل ما هو موجود بعد المنزلة الثانية بغض النظر عمّا كان العدد أكبر من 5 أو أصغر.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69166" href="https://academy.hsoub.com/uploads/monthly_2021_06/016ROUNDUP_ROUNDDOUWN.PNG.66638cb1de72a04abf4d5f0b5bc0fce7.PNG" rel=""><img alt="016ROUNDUP_ROUNDDOUWN.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69166" data-unique="wb6rnsgvb" src="https://academy.hsoub.com/uploads/monthly_2021_06/016ROUNDUP_ROUNDDOUWN.PNG.66638cb1de72a04abf4d5f0b5bc0fce7.PNG"></a>
</p>

<h2>
	دوال القيم العشوائية RAND RANDBETWEEN
</h2>

<p>
	تعطينا هذه الدوال قيمًا عشوائيةً (مثل الأرقام التي نحصل عليها عند شراء رقم هاتفٍ جديدٍ)، وتتميّز بأن نسبة تكرارها تكون شبه معدومة بالنسبة للأرقام العشرية أو للأرقام الصحيحة ذات المنزلة الكبيرة (ألفيّة، مليونيّة).
</p>

<h3>
	الدالة RAND
</h3>

<p>
	تُنتِج هذه الدالة قيمًا عشوائيةً بين 0 و1 وهي دالة لا تحوي أي معطيات.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_36" style="">
<span class="pln">RAND</span><span class="pun">()‎</span></pre>

<p>
	عند تطبيق الدالة على مجموعةٍ من الخلايا سنحصل على أرقامٍ عشريةٍ أكبر من أو تساوي 0، وأصغر من 1.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69167" href="https://academy.hsoub.com/uploads/monthly_2021_06/017RAND.PNG.46d36049a23f41eced3929df68f4a35a.PNG" rel=""><img alt="017RAND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69167" data-unique="el7j65qs3" src="https://academy.hsoub.com/uploads/monthly_2021_06/017RAND.PNG.46d36049a23f41eced3929df68f4a35a.PNG"></a>
</p>

<p>
	تفيد هذه الدالة العاملين في المجال الإحصائي خصوصًا من أجل الحصول على عينةٍ عشوائيةٍ لتحليلها من كتلة البيانات المرتبة ترتيبًا منتظمًا.
</p>

<h4>
	مثال
</h4>

<p>
	لدينا البيانات المنتظمة التالية (البيانات المذكورة لفهم الفكرة بحيث أن الدالة تطبّق بهذه الطريقة على البيانات الضخمة).
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69168" href="https://academy.hsoub.com/uploads/monthly_2021_06/018RAND.PNG.1eaa7e504c0ce60228720bb613328b5f.PNG" rel=""><img alt="018RAND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69168" data-unique="mrrf3h9yo" src="https://academy.hsoub.com/uploads/monthly_2021_06/018RAND.PNG.1eaa7e504c0ce60228720bb613328b5f.PNG"></a>
</p>

<p>
	لا نستطيع أن نحصل على عينةٍ عشوائيةٍ من البيانات المنتظمة إلا عند تَغيير ترتيب السجلات، أي عندما تصبح البيانات موزعةً توزيعًا عشوائيًا، ولنحصل على ذلك نُضيف عمودًا جديدًا يحوي القيم العشوائية الناتجة من الدالة <code>RAND</code>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69169" href="https://academy.hsoub.com/uploads/monthly_2021_06/019RAND.PNG.e7f041078612cd67d140352ebbeca723.PNG" rel=""><img alt="019RAND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69169" data-unique="e8i29ksg5" src="https://academy.hsoub.com/uploads/monthly_2021_06/019RAND.PNG.e7f041078612cd67d140352ebbeca723.PNG"></a>
</p>

<p>
	ثم نرتّب البيانات في عمود القيم العشوائية تصاعديًا أو تنازليًا، وعندها سيتغير الترتيب لكافة سجلات الجدول (الصفوف)، وذلك بحسب ترتيب القيم العشوائية. عندها نستطيع الحصول على العينة التي نُريد لدراستها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69170" href="https://academy.hsoub.com/uploads/monthly_2021_06/020RAND.PNG.668c42023440b6ecfb675d6fe84e6357.PNG" rel=""><img alt="020RAND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69170" data-unique="1gquv103d" src="https://academy.hsoub.com/uploads/monthly_2021_06/020RAND.PNG.668c42023440b6ecfb675d6fe84e6357.PNG"></a>
</p>

<h3>
	الدالة RANDBETWEEN
</h3>

<p>
	تعمل هذه الدالة بنفس الآلية للدالة <code>RAND</code>، ولكن بفرق أننا هنا نستطيع أن نحدد مجال القيم العشوائية التي نُريدها.
</p>

<h4>
	البناء العام لصيغة الدالة
</h4>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_8512_38" style="">
<span class="pln">RANDBETWEEN</span><span class="pun">(</span><span class="pln">bottom</span><span class="pun">,</span><span class="pln"> top</span><span class="pun">)‎</span></pre>

<p>
	تحتاج الدالة إلى المعطيات التالية:
</p>

<ul>
<li>
		<strong>bottom</strong>: وهو أصغر عددٍ صحيح تُرجعه الدالة، وهذا المُعطى مطلوب.
	</li>
	<li>
		<strong>top</strong>: وهو أكبر عددٍ صحيح تُرجعه الدالة، وهذا المُعطى مطلوب.
	</li>
</ul>
<h4>
	مثال
</h4>

<p>
	لِنَعُد إلى مثالنا السابق ونضع العدد الأكبر 10 والعدد الأصغر 1، سينتج لدينا أرقامًا عشوائيةً صحيحةً بين الرقم 1 والرقم 10.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="69171" href="https://academy.hsoub.com/uploads/monthly_2021_06/021RAND.PNG.84101ad42eb1c09a6dbb6c6ff6762d48.PNG" rel=""><img alt="021RAND.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="69171" data-unique="mj07fk1wl" src="https://academy.hsoub.com/uploads/monthly_2021_06/021RAND.PNG.84101ad42eb1c09a6dbb6c6ff6762d48.PNG"></a>
</p>

<h2>
	خاتمة
</h2>

<p>
	تعرّفنا على مجموعةٍ من أكثر الدوال الرياضية شيوعًا والتي تفيدنا في إجراء الكثير من المهام، كما تختصر الكثير من الوقت والجهد. وما يَزال هناك العديد من الدوال الرياضية الأخرى والتي سنتعرّف عليها في دروسٍ لاحقةِ.
</p>

<h2>
	اقرأ أيضًا
</h2>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%A8%D8%AD%D8%AB-%D8%A7%D9%84%D9%85%D8%AA%D9%82%D8%AF%D9%85-index-%D9%88match-%D9%88dget-%D9%81%D9%8A-%D9%85%D8%A7%D9%8A%D9%83%D8%B1%D9%88%D8%B3%D9%88%D9%81%D8%AA-%D8%A5%D9%83%D8%B3%D9%84-r448/" rel="">دوال البحث المتقدم INDEX وMATCH وDGET في مايكروسوفت إكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r224/" rel="">دوال التاريخ الأساسية في اكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D8%B3%D8%AA%D8%AE%D8%B1%D8%A7%D8%AC-%D8%A3%D8%AC%D8%B2%D8%A7%D8%A1-%D9%85%D9%86-%D8%A7%D9%84%D9%86%D8%B5%D9%88%D8%B5-%D8%A3%D9%88-%D8%AF%D9%85%D8%AC%D9%87%D8%A7-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D8%A7%D9%84%D9%86%D8%B5%D9%8A%D9%91%D8%A9-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r230/" rel="">كيفية استخراج أجزاء من النصوص أو دمجها باستخدام الدوال النصيّة في اكسل</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/7-%D8%AF%D9%88%D8%A7%D9%84-%D9%84%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D8%A5%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA-%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D9%86%D8%B5%D9%88%D8%B5-%D9%81%D9%8A-%D8%A7%D9%83%D8%B3%D9%84-r232/" rel="">7 دوال لتطبيق إجراءات مختلفة على النصوص في اكسل</a>.
	</li>
</ul>
]]></description><guid isPermaLink="false">449</guid><pubDate>Wed, 16 Jun 2021 12:05:00 +0000</pubDate></item></channel></rss>
