<?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;: LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/?d=8</link><description>&#x627;&#x644;&#x628;&#x631;&#x627;&#x645;&#x62C; &#x648;&#x627;&#x644;&#x62A;&#x637;&#x628;&#x64A;&#x642;&#x627;&#x62A;: LibreOffice Calc</description><language>ar</language><item><title>&#x627;&#x644;&#x645;&#x62E;&#x637;&#x637;&#x627;&#x62A; &#x627;&#x644;&#x645;&#x62D;&#x648;&#x631;&#x64A;&#x629; &#x648;&#x627;&#x644;&#x645;&#x62E;&#x637;&#x637;&#x627;&#x62A; &#x627;&#x644;&#x645;&#x646;&#x633;&#x642;&#x629; &#x634;&#x631;&#x637;&#x64A;&#x627; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%86%D8%B3%D9%82%D8%A9-%D8%B4%D8%B1%D8%B7%D9%8A%D8%A7-%D9%81%D9%8A-libreoffice-calc-r595/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2022_01/61dc5fdc0dd87_------LibreOffice-Calc.png.f6f183b7af182463fd5ea5a9da3c8b18.png" /></p>

<p>
	تُعَد المخططات و<a href="https://academy.hsoub.com/design/illustration/%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-r553/" rel="">الرسوم البيانيّة</a> أدواتٍ فعالةً للتعبير عن البيانات، pde تَختصر المخططات الوقت اللازم لقراءة البيانات واستيعابها، وتُقدّم فهمًا سريعًا لكمياتٍ ضخمةٍ من البيانات خلال وقتٍ وجيزٍ، قد تحتاج عملية قراءتها وفهمها بشكلها الخام وقتًا طويلًا، ويُوفر <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">برنامج Calc</a> أدواتٍ متعددةٍ لعرض <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-%D9%81%D9%8A-libreoffice-calc-r592/" rel="">مخططات البيانات</a>، وتقديم شكلٍ أوضح وأكثر فهمًا.
</p>

<h2>
	المخططات البيانية المحورية
</h2>

<p>
	تعرفنا سابقًا على <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%86%D8%B3%D9%82%D8%A9-%D8%B4%D8%B1%D8%B7%D9%8A%D8%A7-%D9%81%D9%8A-libreoffice-calc-r595/?do=edit&amp;d=8&amp;id=595&amp;csrfKey=3422d1dc3a2c0b1e5664c71d3674aec3" rel="">الجداول المحورية</a> وهي أداة فعالة لإعادة تنظيم البيانات ومعالجتها وتلخيصها. حين نود تمثيل بيانات الجداول المحورية تمثيلًا مرئيًا، يُمكننا إدراج المخطّطات المحوريّة، والتي يُمكن إنشاؤها بمجرّد إنشاء جدولٍ محوريٍ، وستنعكس جميع التغييرات التي تطرأ على الجدول المحوري على المخطّطات المحوريّة بالتزامن، وتُعَد المخططات المحورية حالةً خاصّةً من مخطّطات Calc، بينما الاختلافات الجوهريّة بين المخططات المحوريّة والرسوم البيانيّة الأخرى في Calc، هي كما يلي:
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88596" href="https://academy.hsoub.com/uploads/monthly_2022_01/001Pchart.png.2eec75f09e5e973d89747e8885f77344.png" rel=""><img alt="001Pchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88596" data-unique="7l8v2cse4" src="https://academy.hsoub.com/uploads/monthly_2022_01/001Pchart.thumb.png.5be29b52bebcf678d135835bc0a8618d.png" style="width: 650px; height: auto;"></a>
</p>

<p>
	وأيّ عملية تصفيةٍ للبيانات ضمن المخطّط المحوري تتزامن على الجدول المحوري.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88597" href="https://academy.hsoub.com/uploads/monthly_2022_01/002filterchart.gif.f96e89b9601e2c9b57320e3c5984d1db.gif" rel=""><img alt="002filterchart.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88597" data-unique="z8uvydb3w" src="https://academy.hsoub.com/uploads/monthly_2022_01/002filterchart.thumb.gif.1dcd8394b76588aa044111f6c246d3ce.gif" style="width: 500px; height: auto;"></a>
</p>

<h3>
	إنشاء المخطط البياني المحوري
</h3>

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

<p>
	في المثال التالي، لدينا جدول بياناتٍ لشركة تغليف وتوزيع موادَ غذائيّة، يحوي الجدول اسم المنطقة وكمية <a href="https://academy.hsoub.com/marketing/sales/%D8%A7%D9%84%D9%85%D8%A8%D9%8A%D8%B9%D8%A7%D8%AA-%D9%88%D8%AE%D8%AF%D9%85%D8%A9-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D8%A7%D8%A1-%D9%88%D8%B9%D9%84%D8%A7%D9%82%D8%AA%D9%87%D9%85%D8%A7-%D8%A8%D8%B1%D9%8A%D8%A7%D8%AF%D8%A9-%D8%A7%D9%84%D8%A3%D8%B9%D9%85%D8%A7%D9%84-r445/" rel="">المبيعات</a>، لكل مادةٍ تمّت والشهر الذي تمّت خلاله، ونود الحصول على مخططٍ بيانيٍ يُلخص لنا البيانات.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88598" href="https://academy.hsoub.com/uploads/monthly_2022_01/003SALETABLEEXAMPLE.png.9ab5035fa1e6bc35ba5490e0dfeb8d72.png" rel=""><img alt="003SALETABLEEXAMPLE.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88598" data-unique="fnk0ho0ad" src="https://academy.hsoub.com/uploads/monthly_2022_01/003SALETABLEEXAMPLE.png.9ab5035fa1e6bc35ba5490e0dfeb8d72.png"></a>
</p>

<p>
	نُنشئ في البداية جدولًا محوريًا يُمثل البيانات المطلوبة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88599" href="https://academy.hsoub.com/uploads/monthly_2022_01/004PTsaleexample.png.e37412924923fef6aa86fa1b82bc6f6b.png" rel=""><img alt="004PTsaleexample.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88599" data-unique="oew0cabrx" src="https://academy.hsoub.com/uploads/monthly_2022_01/004PTsaleexample.png.e37412924923fef6aa86fa1b82bc6f6b.png"></a>
</p>

<p>
	ثم نُنشئ المخطط المحوري، حيث يرتبط هذا المخطط ارتباطًا مباشرًا بالجدول المحوري، أي أنّ أي تغييرٍ نُجريه على الجدول سيحدّث ذاته على المخطّط بناءً عليه، وبالمثل، أيّ تغييرٍ يجري على المخطط سيحدّث الجدول ليعكس هذا التغيير.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88600" href="https://academy.hsoub.com/uploads/monthly_2022_01/005ptchartsales.gif.cbe664feca7948b82449e9b16724e8b2.gif" rel=""><img alt="005ptchartsales.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88600" data-unique="nplg0aj7z" src="https://academy.hsoub.com/uploads/monthly_2022_01/005ptchartsales.thumb.gif.ed89b754f14747cca31db7fd873f6005.gif" style="width: 600px; height: auto;"></a>
</p>

<p>
	نُلاحظ حين أجرينا مثلًا عملية تصفيةٍ لعرض قِيَم الشهر الرابع نيسان وكانون الثاني فقط في المخطط، أنه طُبّقت نفس العملية على المخطّط تلقائيًا، ولتعديل المخطط البياني المحوري، فإنه يُمكن إجراء جميع التعديلات والتنسيقات المتاحة للمخططات العادية على المخططات المحورية، باتباع نفس أساليب <a href="https://academy.hsoub.com/apps/productivity/google-drive/google-slides/%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D8%A7%D9%84%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9-%D9%88%D8%AA%D8%B1%D8%AA%D9%8A%D8%A8%D9%87%D8%A7-%D9%81%D9%8A-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D8%B9%D8%B1%D9%88%D8%B6-%D8%AC%D9%88%D8%AC%D9%84-%D8%A7%D9%84%D8%AA%D9%82%D8%AF%D9%8A%D9%85%D9%8A%D8%A9-r318/" rel="">الإدراج</a> أو الحذف أو التنسيق أو النقل والتحجيم، عدا أنه لا يمكن إجراء أي تعديلٍ على أزرار التصفية.
</p>

<h2>
	المخططات البيانية المنسقة شرطيا
</h2>

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

<h3>
	إنشاء المخططات البيانية المنسقة شرطيا
</h3>

<p>
	تعرفنا في المقالات السابقة على <strong>مرشد الرسم البياني</strong> الذي يُتيح لنا خياراتٍ واسعةٍ لبناء العديد من أنواع المخططات البيانيّة وتنسيقها وضبط النطاق والسلاسل والفئات. يُتيح <strong>مرشد الرسم البياني</strong> ضمن تبويب <strong>سلسلة البيانات</strong> إمكانية تعديل إعدادات كل سلسلةٍ على حدة، ويُوفّر ضمن هذا التبويب حقل <strong>لون التعبئة</strong> لتخصيص لونٍ محدّدٍ يُمكن كتابة قيمته للسلسلة أو تخصيص نطاقٍ من القِيَم اللونيّة مقابل لقيم السلسلة، وبالتالي لو تمكنّا من إعطاء كل قيمةٍ أو مجالٍ من القِيَم ضمن السلسلة قيمةً لونيّةً تقابله وإدخال هذه القِيَم إلى حقل <strong>لون التعبئة</strong>؛ فسنتمكّن من إنشاء مخططٍ بيانيٍ منسقٍ شرطيًا، كما سنحتاج إلى دالة <code>Color</code> التي يُتيحها لنا Calc للحصول على القِيَم اللونيّة، حيث تتعامل هذه الدالة مع نظام RGBA مثل قِيَمٍ للوسائط وترجع قيمًا لونيّةً عدديّةً، تتألّف دالة Color من 4 وسائط، وبنيتها كالتالي:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_9928_33" style="">
<span class="pln">color</span><span class="pun">(</span><span class="pln">red</span><span class="pun">;</span><span class="pln">green</span><span class="pun">;</span><span class="pln">blue</span><span class="pun">;</span><span class="typ">Alpha</span><span class="pun">)</span></pre>

<p>
	تنتمي مجالات قِيَم جميع الوسائط من 0 حتى 255، وتُعبّر الوسيطة الاختياريّة Alpha عن درجة الشفافيّة حيث القيمة 0 تعطي شفافيةً تامةً، والقيمة 255 تعطي تعبئةً تامةً؛ على سبيل المثال الصيغة التالية: ‎<code>=color(255,0,0)</code> ستُعيد القيمة اللونيّة 16384000 المُعبّرة عن اللون الأحمر، والآن يُمكن تحديد خطوات بناء مخططٍ منسّقٍ شرطيًا كما يلي:
</p>

<ol>
<li>
		إضافة حقلٍ مساعدٍ إلى جانب جدول البيانات <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/" rel="">لإدخال القِيَم</a> اللونيّة المُقابلة لقِيَم كل سلسلةٍ.
	</li>
	<li>
		استخدام الدالة <code>IF</code> في الحقل المساعد لاختبار قِيَم السلسلة، بحيث ترجع قيمةً لونيّةً محدّدةً من خلال الدالة <code>Color</code> في حال كانت نتيجة الاختبار <strong>True</strong> وقيمة مُغايرة في حال نتيجة الاختبار <strong>False</strong>، ويُمكن استخدام <code>IF</code> المتداخلة للمزيد من الاشتراطات والقِيَم اللونيّة.
	</li>
	<li>
		إنشاء مخططٍ بيانيٍ باستخدام <strong>مرشد الرسم البياني</strong>، وضمن تبويب <strong>سلسلة البيانات</strong> نُحدّد اسم السلسلة المناسبة، ثم نذهب إلى قائمة <strong>نطاقات البيانات</strong> ونُحدّد <strong>لون التعبئة</strong>. وفي الحقل المخصّص، نُحدّد نطاق القِيَم اللونيةّ التي أدخلناها في الحقل المساعد بمساعدة دالة <code>IF</code> ودالة <code>Color</code>، وبذلك نكون قد انتهينا من [التنسيق الشرطي](رابط مقال التنسيق الشرطي في LibreOffice Calc من نفس المشروع) للمخطّط، نضغط <strong>Finish</strong> للخروج من نافذة <strong>مرشد الرسم البياني</strong>.
	</li>
</ol>
<p>
	وبذلك نكون قد حصلنا على مخططٍ بيانيٍ، ستتغير تنسيقاته اللونيّة وفقًا لتغيُّر قِيَم جدول البيانات.
</p>

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

	<p>
		<strong>ملاحظة</strong>: يُمكن تحديد نطاقات البيانات الخاصّة بلون الحدود ولون التعبئة فقط للمخططات من الأنواع (عمود وشريط وفطيرة وفقاعة وعمود وخط).
	</p>
</blockquote>

<p>
	لدينا مثلًا جدول أرصادٍ جويّةٍ لشهر كانون الثاني القادم ونود تمييز الأيام معتدلة الحرارة باللون الأخضر وشديدة البرودة باللون الأزرق بهدف المساعدة في تخطيط وجدولة أعمالٍ هندسيّةٍ في موقع العمل:
</p>

<p style="text-align: center;">
	<img alt="006tempTable.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88608" data-unique="zyamfcg6a" src="https://academy.hsoub.com/uploads/monthly_2022_01/006tempTable.png.e0547cb662bb13a78a044f30854a6099.png"></p>

<p>
	أضفنا له حقلًا مساعدًا يستخدم الصيغة التالية:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_9928_21" style="">
<span class="pun">=</span><span class="pln">IF</span><span class="pun">(</span><span class="pln">B2</span><span class="pun">&lt;</span><span class="lit">15</span><span class="pun">;</span><span class="pln">COLOR</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">250</span><span class="pun">);</span><span class="pln">COLOR</span><span class="pun">(</span><span class="lit">0</span><span class="pun">;</span><span class="lit">250</span><span class="pun">;</span><span class="lit">0</span><span class="pun">))</span></pre>

<p>
	حيث ستُلون أعمدة درجات الحرارة ذات القِيَم الأقل من 15 درجة باللون الأزرق وباقي الأعمدة باللون الأخضر وباتباع خطوات إنشاء المخطّط المنسّق شرطيًا سينتج المخطّط التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88601" href="https://academy.hsoub.com/uploads/monthly_2022_01/007tempchart.png.b83e1aeada8e9c5d9f679f666690347f.png" rel=""><img alt="007tempchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88601" data-unique="u33sskrl5" src="https://academy.hsoub.com/uploads/monthly_2022_01/007tempchart.png.b83e1aeada8e9c5d9f679f666690347f.png"></a>
</p>

<p>
	بإلقاء نظرةٍ بسيطةٍ على المخطّط، سنستخلص من خلاله الفترات الزمنيّة الباردة التي لا تسمح لورشات العمل بتنفيذ مهامٍ تحتاج لطقسٍ معتدلٍ، بينما لو وددنا استخلاص نفس المعلومات من الجدول سنحتاج إلى الاطلاع على 31 خليّةً، فلن يختلف حجم المخطّط أو تصعب قراءته في حال كان يشمل درجات الحرارة لـ 365 يومًا على مدار العام، لكن سيكون الأمر مربكًا لو أردنا قراءة 365 خليةً حتى لو كانت منسّقةً شرطيًا؛ لدينا مثلًا جدولٌ يحوي قِيَم مبالغ المبيعات الشهريّة للربع الأول لعام 2021م لمجموعةٍ من البضائع، ونود إنشاء مخططٍ بيانيٍ عموديٍ، بحيث تُميّز أعمدة القِيَم الأكبر من المتوسط باللون الأخضر وأعمدة القِيَم الأصغر من المتوسط بنسبةٍ أكبر من 25% باللون الأحمر وأعمدة القِيَم التي تزيد عن 75% من المتوسّط باللون البرتقالي؛ إذ يتألّف المخطّط من سلسلةٍ لكلّ شهرٍ، ومن فئاتٍ بعدد أنواع المواد، وسنستخدم لكل سلسلةٍ حقلًا مساعدًا لتضمين القيمة اللونيّة المقابلة لقيمة المبيعات في السلسلة، تكون الصيغة ضمن الخلايا المساعدة، كالتالي:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_9928_23" style="">
<span class="pun">=</span><span class="pln">IF</span><span class="pun">(</span><span class="pln">B2</span><span class="pun">&gt;=</span><span class="pln">$B$8</span><span class="pun">;</span><span class="pln">COLOR</span><span class="pun">(</span><span class="lit">0</span><span class="pun">;</span><span class="lit">250</span><span class="pun">;</span><span class="lit">0</span><span class="pun">);</span><span class="pln">IF</span><span class="pun">(</span><span class="pln">AND</span><span class="pun">(</span><span class="pln">B2</span><span class="pun">&gt;</span><span class="lit">0</span><span class="pun">٫</span><span class="lit">75</span><span class="pun">*</span><span class="pln">$B$8</span><span class="pun">;</span><span class="pln">B2</span><span class="pun">&lt;</span><span class="pln">$B$8</span><span class="pun">);</span><span class="pln">COLOR</span><span class="pun">(</span><span class="lit">255</span><span class="pun">;</span><span class="lit">125</span><span class="pun">;</span><span class="lit">20</span><span class="pun">);</span><span class="pln">COLOR</span><span class="pun">(</span><span class="lit">250</span><span class="pun">;</span><span class="lit">0</span><span class="pun">;</span><span class="lit">0</span><span class="pun">)))</span></pre>

<p>
	مع مراعاة قواعد نسخ الخلايا والمراجع النسبيّة والمطلقة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88602" href="https://academy.hsoub.com/uploads/monthly_2022_01/008Salestable.png.1c4e51d1155cff9796fe48ce54f135bf.png" rel=""><img alt="008Salestable.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88602" data-unique="80tduhy8p" src="https://academy.hsoub.com/uploads/monthly_2022_01/008Salestable.png.1c4e51d1155cff9796fe48ce54f135bf.png"></a>
</p>

<p>
	استخدمنا الخلية B8 مثل مرجعٍ مطلقٍ ضمن صيغة خلايا الأعمدة المساعدة، وبعد تجهيز جدول البيانات، نُنشئ المخطّط البياني، بحيث يكون نطاق بيانات لون التعبئة لكلّ سلسلةٍ هو النطاق المساعد المقابل لها كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88607" href="https://academy.hsoub.com/uploads/monthly_2022_01/09.png.e2e0bd95ed42698c1986725ee50c7672.png" rel=""><img alt="09.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88607" data-unique="ptvm2irrw" src="https://academy.hsoub.com/uploads/monthly_2022_01/09.thumb.png.a4f72c067d0dd4bb981aea22d7d37fd2.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88603" href="https://academy.hsoub.com/uploads/monthly_2022_01/010datarange.png.4933ac6f47b03f66edb2b9a1506a61f4.png" rel=""><img alt="010datarange.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88603" data-unique="2f2m2ovzs" src="https://academy.hsoub.com/uploads/monthly_2022_01/010datarange.png.4933ac6f47b03f66edb2b9a1506a61f4.png"></a>
</p>

<p>
	سينتج المخطّط التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88604" href="https://academy.hsoub.com/uploads/monthly_2022_01/011saleschart1.png.b09a948e6a7d41e87a8a3abdf76772d3.png" rel=""><img alt="011saleschart1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88604" data-unique="l0emt45ki" src="https://academy.hsoub.com/uploads/monthly_2022_01/011saleschart1.png.b09a948e6a7d41e87a8a3abdf76772d3.png"></a>
</p>

<p>
	في هذه الحالة لن يكون لوسائل الإيضاح أيّ معنًى، وبالتالي سنحذفها وندرج تسميات البيانات من قائمة <strong>إدراج &gt; تسميات البيانات</strong>. ستظهر نافذة <strong>لصائق بيانات كل سلاسل البيانات</strong> نختار منها Series Name، ونُعدل المكان إلى الوسط وفي حقل <strong>دور النص</strong> نُدخل 90، لإظهار النص شاقوليًا.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88605" href="https://academy.hsoub.com/uploads/monthly_2022_01/012seriesname.png.a2893d488b91f13469dc3b0482b38a1b.png" rel=""><img alt="012seriesname.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88605" data-unique="nvs0zxt7r" src="https://academy.hsoub.com/uploads/monthly_2022_01/012seriesname.thumb.png.2c72cd0107ebaa9656e8061a70291a7e.png" style="width: 650px; height: auto;"></a>
</p>

<p>
	سينتج المخطّط بالشكل التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88606" href="https://academy.hsoub.com/uploads/monthly_2022_01/013saleschart2.png.f4ff5142662f2158a1586f39ffab8c11.png" rel=""><img alt="013saleschart2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88606" data-unique="9aj4oy4ew" src="https://academy.hsoub.com/uploads/monthly_2022_01/013saleschart2.png.f4ff5142662f2158a1586f39ffab8c11.png"></a>
</p>

<p>
	نستطيع بمجرّد النظر للمخطّط معرفة المواد التي حقّقت مبالغ مبيعاتٍ أكبر من المتوسط في كلّ شهرٍ، والمواد التي حقّقت مبالغ أقلّ من المتوسّط، والمواد التي حقّقت مبيعاتٍ أقل من 75% من المتوسّط، وهو الأمر الذي يصعب استخلاصه من المخطّطات العادية دون التنسيق الشرطي.
</p>

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

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

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1/" rel="">مقدمة إلى حزمة أدوات المكتب الحر LibreOffice</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">تعلّم أساسيات التعامل مع جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبرأوفيس كالك LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">595</guid><pubDate>Mon, 24 Jan 2022 15:02:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62A;&#x639;&#x627;&#x645;&#x644; &#x645;&#x639; &#x627;&#x644;&#x62C;&#x62F;&#x627;&#x648;&#x644; &#x627;&#x644;&#x645;&#x62D;&#x648;&#x631;&#x64A;&#x629; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-libreoffice-calc-r594/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2022_01/61f151b5641b8_LibreOfficeCalctables.png.6cc9e41c32a3cc67cd7af753f6f7b1c2.png" /></p>

<p>
	تستوعب الجداول كمياتٍ ضخمةٍ من البيانات، حيث قد تكون هذه الجداول سجلًا أو أرشيفًا لهذه البيانات، لكن بالتأكيد إن جَمع هذه <a href="https://academy.hsoub.com/programming/general/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%88%D8%A3%D9%86%D9%88%D8%A7%D8%B9%D9%87%D8%A7-%D8%A3%D9%86%D9%88%D8%A7%D8%B9-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-r1287/" rel="">البيانات</a> وتخزينها ضِمن جداول ليس هدفًا أساسيًا بحد ذاته، الأمر الأهم هو استخلاص المعلومات ذات المغزى، لاتخاذ القرارات بناءً عليها، وقد يكون استخلاص المعلومات من <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">جداول البيانات</a> يدويًا أمرًا صعبًا ومجهدًا ويستغرق وقتًا طويلًا، حيث يُقدم Calc أداة <strong>جدول معالجة البيانات</strong> لتلخيص الجداول واستخلاص معلوماتٍ أكثر قابليّةً للقراءة.
</p>

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

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

<h2>
	مكونات الجدول المحوري
</h2>

<p>
	يتألّف <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-pivot-tables-%D9%81%D9%8A-microsoft-excel-r78/" rel="">الجدول المحوري</a> من مكونين أساسيين، وهما:
</p>

<ul>
<li>
		جدول قاعدة البيانات أو جدول بيانات المصدر: وهو الجدول الذي يستمد الجدول المحوري منه بياناته الملخّصة، أيّ تعديلٍ يطرأ عليه يتبعه تعديلٌ في الجدول المحوري بعد تحديثه.
	</li>
	<li>
		الجدول المحوري وهو الجدول الذي يَعرض البيانات باختصار، ولا يُستعمل <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/" rel="">لإدخال البيانات</a>، إنما لعرضها والاستفادة منها وتسهيل قراءتها.
	</li>
</ul>
<p>
	تُستعمل الجداول المحورية عندما يكون لدينا جداول تحتوي على عددٍ كبيرٍ من الصفوف، ونريد الحصول على بيانات إحصاءاتٍ سريعةٍ، وفي الصورة التالية محاكاة لكيفية إنشاء جدولٍ محوريٍ واستخلاص البيانات من الجدول المصدر. وستتمكّن من خلالها الحصول على فهمٍ عامٍ حول فكرة الجداول المحوريّة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="90535" href="https://academy.hsoub.com/uploads/monthly_2022_01/001ptintroduction.gif.0dfe0430fd3a6333afa01a3f5b01ec63.gif" rel=""><img alt="001ptintroduction.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="90535" data-unique="ss0ir01od" src="https://academy.hsoub.com/uploads/monthly_2022_01/001ptintroduction.thumb.gif.8f6c64104b126bfcae531fafdf65708b.gif" style="width: 900px; height: auto;"></a>
</p>

<h2>
	شكل الجدول المحوري
</h2>

<p>
	يتألّف الجدول المحوري عمومًا من ثلاثة أقسام، هي قسم الأعمدة وقسم الصفوف وقسم البيانات، وتُعَد منطقة القِيَم هي أساس الجدول المحوري ولا يُمكن الاستغناء عنها، بينما تمثل الحقول والصفوف معاييرَ تُصنّف القِيَم على أساسها؛ إذ تُمثل عناوين أعمدة جدول البيانات المصدر الحقول المتاحة Available Fields التي يُمكن سحب كلٍّ منها إلى إحدى مناطق الجدول المحوري، يُعالج الجدول المحوري حقول منطقة الصفوف ويُنشئ صفوفًا بالقِيَم الفريدة لكلّ حقلٍ، وبالمثل، يتعامل مع حقول منطقة الأعمدة ويُمثل كل قيمةٍ فريدةٍ بعمودٍ، وبذلك يكون الجدول المحوري مؤلّفًا من عناوين للصفوف في الجزء الأيمن منه، وعناوين الأعمدة في الجزء العلوي منه، وتُمثل حقول منطقة القِيَم في الخلايا المحصورة بين عناوين الصفوف وعناوين الأعمدة، بعد معالجتها من خلال دوالٍ عديدةٍ، منها SUM و Count و Min و Max وغيرها، حيث يُمكن تحديد واحدةٍ منها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88555" href="https://academy.hsoub.com/uploads/monthly_2022_01/002Ptform.png.e73a0091c9f8da5dd52a448cbb9706a1.png" rel=""><img alt="002Ptform.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88555" data-unique="96g4imi91" src="https://academy.hsoub.com/uploads/monthly_2022_01/002Ptform.thumb.png.f5977ebca1f95f6c43632a7fde984038.png"></a>
</p>

<h2>
	قواعد إنشاء الجدول المحوري
</h2>

<p>
	قبل إنشاء الجدول المحوري يُفضّل إجراء التالي:
</p>

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

<p>
	سنستخدم جدول بياناتٍ بسيطٍ مكوّن من أربعة أعمدةٍ كمثالٍ لتطبيق الخطوات عليه.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88556" href="https://academy.hsoub.com/uploads/monthly_2022_01/003tableexample.png.fecebb585a32752786559632912bb66d.png" rel=""><img alt="003tableexample.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88556" data-unique="bdnykoivk" src="https://academy.hsoub.com/uploads/monthly_2022_01/003tableexample.png.fecebb585a32752786559632912bb66d.png"></a>
</p>

<p>
	لإنشاء جدولٍ محوريٍ، نتّبع الخطوات التالية:
</p>

<ol>
<li>
		تحديد جدول البيانات المصدر، وفي حال كان الجدول مُنظمًا وخاليًا من الصفوف والأعمدة الفارغة، فيُمكن الاكتفاء بتحديد خليةٍ واحدةٍ من الجدول، وسيتعرّف <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">Calc</a> على الجدول تلقائيًا.
	</li>
	<li>
		الانتقال إلى نافذة Pivot Table Layout من قائمة <strong>إدراج &gt; جدول معالجة بيانات</strong>؛ أو من شريط الأدوات &gt; أيقونة جدول <a href="https://academy.hsoub.com/programming/php/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%B7%D9%84%D8%A8%D9%8A%D8%A7%D8%AA-http-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A3%D8%AE%D8%B7%D8%A7%D8%A1-%D8%B1%D9%81%D8%B9-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%81%D9%8A-php-r1129/" rel="">معالجة بيانات</a>؛ أو من قائمة <strong>Data &gt; جدول معالجة بيانات &gt; Insert or Edit</strong>؛ في كل الحالات ستظهر نافذة <strong>تحديد المصدر</strong> نختار منها <strong>التحديد الحالي</strong>، ثم <strong>حسنًا</strong>.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88557" href="https://academy.hsoub.com/uploads/monthly_2022_01/006selectsource.png.7864aeb5cc610eb1d48383c5fe4e7c13.png" rel=""><img alt="006selectsource.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88557" data-unique="yj2g07n6k" src="https://academy.hsoub.com/uploads/monthly_2022_01/006selectsource.png.7864aeb5cc610eb1d48383c5fe4e7c13.png"></a>
</p>

<ol start="3">
<li>
		تتألّف نافذة Pivot Table Layout من خمسة أجزاءٍ، كالتالي:
		<ul>
<li>
				<strong>Available Fields</strong>: وهي قائمةٌ تحوي عناوين أعمدة جدول بيانات المصدر، كلّ عنوانٍ يُمثل حقلًا يُمكن سحبه إلى باقي اﻷجزاء.
			</li>
			<li>
				<strong>Data Fields</strong>: خانة حقول البيانات، تُعالج القِيَم باستخدام دالةٍ حسابيّةٍ، يَدمج Calc اسم الدالة مع اسم الحقل ضمن الخانة.
			</li>
			<li>
				<strong>Row Fields</strong>: خانة حقول الصفوف.
			</li>
			<li>
				<strong>Columns Fields</strong>: خانة حقول الأعمدة.
			</li>
			<li>
				<strong>Filters Fields</strong>: خانة حقول المرشحات، تُمثَل هذه الخانة في مرشحٍ مرفقٍ مع الجدول، وتُفرز البيانات ضمن الجدول المحوري على أساس قِيَم حقل المرشح.
			</li>
		</ul>
</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88558" href="https://academy.hsoub.com/uploads/monthly_2022_01/007pagetablelayout.png.3703f7a63c1cc218a0b28c6bcff295a3.png" rel=""><img alt="007pagetablelayout.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88558" data-unique="nzcnsqd1f" src="https://academy.hsoub.com/uploads/monthly_2022_01/007pagetablelayout.png.3703f7a63c1cc218a0b28c6bcff295a3.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88559" href="https://academy.hsoub.com/uploads/monthly_2022_01/008ptexample.gif.3efbffff3fd3eb00ba28c1baba71266f.gif" rel=""><img alt="008ptexample.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88559" data-unique="kdut9dlol" src="https://academy.hsoub.com/uploads/monthly_2022_01/008ptexample.thumb.gif.ca2644e23d9259d5d782e4c0d84bf9ce.gif" style="width: 500px; height: auto;"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88560" href="https://academy.hsoub.com/uploads/monthly_2022_01/009ptexample2level.png.da3ea0b23be620ddcab0f6425b19e178.png" rel=""><img alt="009ptexample2level.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88560" data-unique="fvlbkjw3m" src="https://academy.hsoub.com/uploads/monthly_2022_01/009ptexample2level.png.da3ea0b23be620ddcab0f6425b19e178.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88561" href="https://academy.hsoub.com/uploads/monthly_2022_01/010filter2.gif.8d0629ec70df4f404d99553ea6321e5d.gif" rel=""><img alt="010filter2.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88561" data-unique="2csrjhk2q" src="https://academy.hsoub.com/uploads/monthly_2022_01/010filter2.thumb.gif.3b539ff46ff883ab605db10400a55c7f.gif" style="width: 371px; height: auto;"></a>
</p>

<p>
	يُتيح Calc مرونةً عاليةً في التعامل ضمن نافذة Pivot Table Layout، مثلًا لنقل حقلٍ من خانةٍ لأخرى ما علينا سوى سحبه إلى خانةٍ جديدةٍ، ولإزالة حقلٍ من خانات عوامل التصفية أو حقول الأعمدة أو حقول الصفوف أو حقول البيانات، يُمكن سحبه إلى ناحية الحقول المتوفّرة.
</p>

<h3>
	خيارات إضافية
</h3>

<p>
	يُمكن توسيع نافذة Pivot Table Layout وإظهار المزيد من الخيارات، بالنقر فوق رمز التوسيع + المجاور لـ <strong>خيارات</strong> و<strong>Source and Destination</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88562" href="https://academy.hsoub.com/uploads/monthly_2022_01/011addtionoptions.png.6bfbf8d8bd5b8b4691215768e1330a5e.png" rel=""><img alt="011addtionoptions.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88562" data-unique="icc50dhze" src="https://academy.hsoub.com/uploads/monthly_2022_01/011addtionoptions.png.6bfbf8d8bd5b8b4691215768e1330a5e.png"></a>
</p>

<p>
	ضمن كتلة <strong>خيارات</strong> نجد الإعدادات التالية:
</p>

<ul>
<li>
		Ignore empty rows: في حال لم تكن بيانات الجدول المصدر خاليةً من الصفوف الفارغة يُمكن تحديد هذا الخيار لتجاهل الصفوف الفارغة.
	</li>
	<li>
		Identify categories: في حال احتوى جدول بيانات المصدر على خلايا ذات قِيَمٍ غير مُدخلةٍ ضمن أحد الأعمدة.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88563" href="https://academy.hsoub.com/uploads/monthly_2022_01/012identifycategories.png.175c8b2ff5c2cb24cbbb9e86de6f7639.png" rel=""><img alt="012identifycategories.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88563" data-unique="iuy3nhuro" src="https://academy.hsoub.com/uploads/monthly_2022_01/012identifycategories.png.175c8b2ff5c2cb24cbbb9e86de6f7639.png"></a>
</p>

<p>
	يُمكن تحديد هذا الخيار ليعامل الجدول المحوري هذه الخلايا على أن قِيَمها مساويةٌ لقِيَم الخلية المذكورة أعلاها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88564" href="https://academy.hsoub.com/uploads/monthly_2022_01/013identifycategories2.png.dcbf38819e51ef1404e558ca20981ee1.png" rel=""><img alt="013identifycategories2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88564" data-unique="okj72wpbs" src="https://academy.hsoub.com/uploads/monthly_2022_01/013identifycategories2.thumb.png.a0d68f82f433d6404d14334943832906.png"></a>
</p>

<p>
	إذا لم يُحدّد هذا الخيار، فسيُدرج بندٌ (فارغ) ضمن الجدول المحوري كالتالي.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88565" href="https://academy.hsoub.com/uploads/monthly_2022_01/014identifycategories3.png.5fa2a784f00dd6b02c9a6e0939f4c52e.png" rel=""><img alt="014identifycategories3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88565" data-unique="7yibt7awh" src="https://academy.hsoub.com/uploads/monthly_2022_01/014identifycategories3.thumb.png.62f614b969ef515872b7519bb9c65ee5.png"></a>
</p>

<ul>
<li>
		مجموع الأعمدة: ﻹضافة صفٍ لإجماليات كل عمودٍ.
	</li>
	<li>
		مجموع الصفوف: ﻹضافة عمودٍ في أقصى يسار الجدول لإجماليات كلّ صفٍ.
	</li>
	<li>
		أضف مرشحًا: يُستخدم هذا الخيار لإضافة أو إخفاء خلية التصفية أعلى نتائج الجدول المحوري، مما سيُوفّر خيارات تصفيةٍ إضافيةٍ داخل الجدول المحوري.
	</li>
	<li>
		Enable drill to details: عند تفعيل هذا الخيار والنقر المزدوج فوق إحدى خلايا خانة القِيَم في الجدول المحوري، بما في ذلك خلايا الإجماليات؛ تُفتح ورقةٌ جديدةٌ تُقدّم جدولًا مفصلًا بالبيانات التي استندت إليها القيمة.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88566" href="https://academy.hsoub.com/uploads/monthly_2022_01/015drilldetils.gif.db66c4136a485bd101de08bee33cbbad.gif" rel=""><img alt="015drilldetils.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88566" data-unique="p9uwlfkwq" src="https://academy.hsoub.com/uploads/monthly_2022_01/015drilldetils.thumb.gif.e49ed2fafcbe797f1d3168e1ba9ae11d.gif" style="width: 500px; height: auto;"></a>
</p>

<p>
	عند النقر المزدوج فوق خليةٍ في خانة الصفوف أو الأعمدة، وتفتح نافذة <strong>إظهار التفاصيل</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88567" href="https://academy.hsoub.com/uploads/monthly_2022_01/016drillrow.gif.1d726a04766ae13c49abf2728f8aed50.gif" rel=""><img alt="016drillrow.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88567" data-unique="6kcg03a76" src="https://academy.hsoub.com/uploads/monthly_2022_01/016drillrow.thumb.gif.acd7008b32299fcc47f9390659901c84.gif" style="width: 500px; height: auto;"></a>
</p>

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

<p>
	تُتيح لنا كتلة <strong>Source and Destination</strong> الإعدادات الخاصّة بتعديل نطاق جدول البيانات المصدر أو تحديد نطاق بياناتٍ مسمًّى مثل جدول بيانات المصدر، كما تُتيح خياراتٍ تسمح بتحديد مكان إنشاء الجدول المحوري ضمن ملف العمل إما في وريقةٍ جديدةٍ أو مكانٍ مخصّصٍ يحدّده المستخدم ضمن وريقة جدول بيانات المصدر، حيث تَصلح الخيارات السابقة للجدول المحوري بالعموم. يُمكن أيضًا تغيير الإعدادات الخاصّة بالحقول المُضمّنة في مناطق الجدول المحوري، من خلال نافذة Pivot Table Layout بالنقر المزدوج فوق أيّ حقلٍ داخل خانات عوامل التصفية أو حقول الأعمدة أو حقول الصفوف أو حقول البيانات. تختلف الإعدادات الخاصّة بحقول منطقة البيانات عن إعدادات حقول باقي المناطق الأخرى.
</p>

<h4>
	خيارات حقول منطقة البيانات
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88568" href="https://academy.hsoub.com/uploads/monthly_2022_01/017datafieldswindow.png.e77291123941e3b97bc02b065da8aa4f.png" rel=""><img alt="017datafieldswindow.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88568" data-unique="09vacjo80" src="https://academy.hsoub.com/uploads/monthly_2022_01/017datafieldswindow.png.e77291123941e3b97bc02b065da8aa4f.png"></a>
</p>

<p>
	يُتيح الخيار Show items without data إمكانية عرض البنود الموجودة في حقول الصفوف والأعمدة وليس لها قِيَمٌ في حقول البيانات في الجدول المصدر، فبتوسيع النافذة من خلال إشارة + بجانب <strong>Displayed value</strong> يُمكن اختيار الإعدادات الإضافيّة للتحليل باستخدام دالة التجميع بناءً على إعداد النوع، على سبيل المثال يُمكن عرض القِيَم كنسبةٍ من الإجمالي بتحديد الخيار <strong>% من المجموع</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88569" href="https://academy.hsoub.com/uploads/monthly_2022_01/018datafieldswindowpercent.png.5d35d82ff89807b1319e1fe58b9fd039.png" rel=""><img alt="018datafieldswindowpercent.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88569" data-unique="qkgvta00e" src="https://academy.hsoub.com/uploads/monthly_2022_01/018datafieldswindowpercent.thumb.png.ae05bbef5abae0e0aba1813d3167f18c.png"></a>
</p>

<p>
	أو يُمكن موازنة الاختلاف بين صفٍ وآخر أو عمودٍ وآخر. في الصورة الموضحة وازنّا نسبة التغيُّر بين قِيَم صف بند الليمون وصفوف البنود الأخرى من خلال خيار النوع "difference from %".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88570" href="https://academy.hsoub.com/uploads/monthly_2022_01/019datafieldswindowdiff.png.4392da0ff5e317af968a34bf93d827d1.png" rel=""><img alt="019datafieldswindowdiff.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88570" data-unique="8fx9yeky6" src="https://academy.hsoub.com/uploads/monthly_2022_01/019datafieldswindowdiff.thumb.png.7465e44822b60a73826c5ce7ee10ef43.png"></a>
</p>

<h4>
	خيارات حقول خانة الصفوف والأعمدة
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88571" href="https://academy.hsoub.com/uploads/monthly_2022_01/020tableexample.png.8eccdd4cd8fe3d9d5e6ebd9c47d34a62.png" rel=""><img alt="020tableexample.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88571" data-unique="7j12ba3u3" src="https://academy.hsoub.com/uploads/monthly_2022_01/020tableexample.png.8eccdd4cd8fe3d9d5e6ebd9c47d34a62.png" style="width: 500px; height: auto;"></a>
</p>

<p>
	عند إنشاء جدولٍ محوريٍ يحتوي على حَقلَي "المشروع" و"بند الأعمال" في خانة الصفوف، ينتج الجدول التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88572" href="https://academy.hsoub.com/uploads/monthly_2022_01/021tableexamplePt.png.af5540b602d8fe802c6fba7d9b90a190.png" rel=""><img alt="021tableexamplePt.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88572" data-unique="vy5ztbhf5" src="https://academy.hsoub.com/uploads/monthly_2022_01/021tableexamplePt.png.af5540b602d8fe802c6fba7d9b90a190.png"></a>
</p>

<p>
	ولمعرفة المجاميع الفرعية لكلّ مشروعٍ حسب المقاول، يمكن تفعيل المجاميع الفرعيّة من نافذة <strong>حقل البيانات</strong> بالنقر المزدوج فوق أيّ حقلٍ في خانات حقول الصفوف أو الأعمدة في نافذة Pivot Table Layout تظهر نافذة <strong>حقل البيانات</strong>، بالشكل التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88573" href="https://academy.hsoub.com/uploads/monthly_2022_01/022datafieldrow.png.53e225ce815239b8c5ee7d37e301d2ba.png" rel=""><img alt="022datafieldrow.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88573" data-unique="dncp61go2" src="https://academy.hsoub.com/uploads/monthly_2022_01/022datafieldrow.png.53e225ce815239b8c5ee7d37e301d2ba.png"></a>
</p>

<p>
	لحساب المجاميع الفرعية لمثالنا، ننقر مزدوجًا على حقل "المشروع" ونحدّد الخيار Automatic.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88574" href="https://academy.hsoub.com/uploads/monthly_2022_01/023tableexamplePtsubtotal.png.4a1307517dfd310b08760aa57816da35.png" rel=""><img alt="023tableexamplePtsubtotal.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88574" data-unique="u95qx71bo" src="https://academy.hsoub.com/uploads/monthly_2022_01/023tableexamplePtsubtotal.thumb.png.5291921427bbd56fed580aba6eced937.png" style="width: 500px; height: auto;"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88575" href="https://academy.hsoub.com/uploads/monthly_2022_01/024tableexamplePtsubtotaltype.png.c88e6ec24a22c1e6e7539a9e844f30d8.png" rel=""><img alt="024tableexamplePtsubtotaltype.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88575" data-unique="x1d1spg5q" src="https://academy.hsoub.com/uploads/monthly_2022_01/024tableexamplePtsubtotaltype.thumb.png.b817a21b88d096ebec06cb91616d2ba8.png" style="width: 500px; height: auto;"></a>
</p>

<h2>
	التعامل مع الجدول المحوري
</h2>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88576" href="https://academy.hsoub.com/uploads/monthly_2022_01/025ptedit.gif.02c2806fcd6413afb39ebd2e454636e6.gif" rel=""><img alt="025ptedit.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88576" data-unique="eaxj5q4ni" src="https://academy.hsoub.com/uploads/monthly_2022_01/025ptedit.thumb.gif.281e3196597c205310d2bd3cb9036ad6.gif" style="width: 700px; height: auto;"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88577" href="https://academy.hsoub.com/uploads/monthly_2022_01/026ptdelete.gif.2ec0f6e48cfa98d07321b8e035ba804c.gif" rel=""><img alt="026ptdelete.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88577" data-unique="rp6egn1u4" src="https://academy.hsoub.com/uploads/monthly_2022_01/026ptdelete.thumb.gif.a3d6d7abc02a30eeda66025aec481bd7.gif" style="width: 600px; height: auto;"></a>
</p>

<p>
	ولا يُمكن استرداد الحقل المحذوف، دون الرجوع إلى نافذة Pivot Table Layout لإعادة إضافته.
</p>

<h3>
	تجميع صفوف وأعمدة الجدول المحوري
</h3>

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

<p>
	لإجراء تجميعٍ لحقول الصفوف أو الأعمدة، يجب تحديد هذه القِيَم ثم الذهاب لقائمة <strong>Data &gt; تجميع وتخطيط &gt; جمع</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88578" href="https://academy.hsoub.com/uploads/monthly_2022_01/027insertgroubedwindow.png.5b3ebb92a57d45857a3f1c5b3f536091.png" rel=""><img alt="027insertgroubedwindow.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88578" data-unique="fgut4qwfx" src="https://academy.hsoub.com/uploads/monthly_2022_01/027insertgroubedwindow.thumb.png.ad0d8a94e41514f9f79c0b18413fcd76.png" style="width: 600px; height: auto;"></a>
</p>

<p>
	مثلًا لدينا جدولٌ بأعمار مجموعةٍ من الموظفين، كالتالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88579" href="https://academy.hsoub.com/uploads/monthly_2022_01/028employertable.png.1913a6df0a988a421bd7853bfe5367a1.png" rel=""><img alt="028employertable.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88579" data-unique="uc1fd45i3" src="https://academy.hsoub.com/uploads/monthly_2022_01/028employertable.png.1913a6df0a988a421bd7853bfe5367a1.png"></a>
</p>

<p>
	نُنشئ الجدول المحوري التالي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88580" href="https://academy.hsoub.com/uploads/monthly_2022_01/029ptgroubednumber.png.6eaf63851d961eda256b9736f1b4fdd7.png" rel=""><img alt="029ptgroubednumber.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88580" data-unique="e6s1sli2y" src="https://academy.hsoub.com/uploads/monthly_2022_01/029ptgroubednumber.png.6eaf63851d961eda256b9736f1b4fdd7.png"></a>
</p>

<p>
	ثم نُحدّد خليةً من قِيَم عمود العمر ونذهب لقائمة <strong>Data &gt; تجميع وتخطيط &gt; جمع</strong>، فتظهر النافذة التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88581" href="https://academy.hsoub.com/uploads/monthly_2022_01/030groubedwindow.png.d2e79bd850283f5cc4bee11397145984.png" rel=""><img alt="030groubedwindow.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88581" data-unique="yq6xanp9q" src="https://academy.hsoub.com/uploads/monthly_2022_01/030groubedwindow.png.d2e79bd850283f5cc4bee11397145984.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88582" href="https://academy.hsoub.com/uploads/monthly_2022_01/031ptgroubednum.png.3c12d6b3ce2a109d1ea3651716b1ad72.png" rel=""><img alt="031ptgroubednum.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88582" data-unique="z9j3l9lw2" src="https://academy.hsoub.com/uploads/monthly_2022_01/031ptgroubednum.png.3c12d6b3ce2a109d1ea3651716b1ad72.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88583" href="https://academy.hsoub.com/uploads/monthly_2022_01/032groubitem.gif.c2f1aa92b7659f613684c9b748007244.gif" rel=""><img alt="032groubitem.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88583" data-unique="fmsyy0uss" src="https://academy.hsoub.com/uploads/monthly_2022_01/032groubitem.thumb.gif.e31be251685bc9dcfa8ade62675cbbd1.gif" style="width: 600px; height: auto;"></a>
</p>

<h3>
	فرز النتائج
</h3>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88584" href="https://academy.hsoub.com/uploads/monthly_2022_01/033filter.gif.ae969c43da120f4bdfa6fe6c21172406.gif" rel=""><img alt="033filter.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88584" data-unique="2u9adhujb" src="https://academy.hsoub.com/uploads/monthly_2022_01/033filter.thumb.gif.86f64c4211c528865a1eee58ff21697c.gif" style="width: 600px; height: auto;"></a>
</p>

<h3>
	تحديث القيم المتغيرة
</h3>

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

<p>
	قد تظهر التغييرات في البيانات المصدر بطريقتين: يُمكن تحديث الجدول المحوري من خلال النقر بزرّ الفأرة الأيسر ضمن الجدول المحوري، ثم قائمة <strong>Data &gt; جدول معالجة بيانات &gt; تحديث</strong>؛ أو النقر بزرّ الفأرة الأيمن ضمن الجدول المحوري ثم اختيار تحديث.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88585" href="https://academy.hsoub.com/uploads/monthly_2022_01/034refresh.gif.f991d6e7f8b5ebac67b045c5b2ba6b20.gif" rel=""><img alt="034refresh.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88585" data-unique="xg3js6mhn" src="https://academy.hsoub.com/uploads/monthly_2022_01/034refresh.thumb.gif.e5b077897c9c9835a9b7cedfb59a470d.gif" style="width: 600px; height: auto;"></a>
</p>

<p>
	في حال إضافة صفوفٍ أو أعمدةٍ جديدةٍ على جدول بيانات المصدر يجب إعادة إنشاء الجدول المحوري من جديد.
</p>

<h3>
	تنسيق الخلية
</h3>

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

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88586" href="https://academy.hsoub.com/uploads/monthly_2022_01/035formatpt.png.ba96ca449685eedb08ab819254cd744a.png" rel=""><img alt="035formatpt.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88586" data-unique="46bjb0oc3" src="https://academy.hsoub.com/uploads/monthly_2022_01/035formatpt.png.ba96ca449685eedb08ab819254cd744a.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88587" href="https://academy.hsoub.com/uploads/monthly_2022_01/036formatpt2.png.edd8c1fbdb4f93d49dcdf6cffb3fb2d2.png" rel=""><img alt="036formatpt2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88587" data-unique="bknik6eug" src="https://academy.hsoub.com/uploads/monthly_2022_01/036formatpt2.png.edd8c1fbdb4f93d49dcdf6cffb3fb2d2.png" style="width: 600px; height: auto;"></a>
</p>

<h3>
	حذف جدول محوري
</h3>

<p>
	لحذف جدولٍ محوريٍ، سننقر بزرّ الفأرة الأيسر فوق أيّ خليةٍ من الجدول المحوري ومن قائمة <strong>Data &gt; جدول معالجة البيانات&gt; حذف</strong>، أو النقر بزرّ الفأرة الأيمن فوق أيّ خليةٍ من الجدول المحوري، ثم تظهر قائمةٌ نختار منها حذف.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88588" href="https://academy.hsoub.com/uploads/monthly_2022_01/037deletept.gif.71da1df94e9cabafc315c474c851e03a.gif" rel=""><img alt="037deletept.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88588" data-unique="3efb0r5ws" src="https://academy.hsoub.com/uploads/monthly_2022_01/037deletept.thumb.gif.4e4d69937c3593fb458ba14ea48cb64c.gif" style="width: 600px; height: auto;"></a>
</p>

<h3>
	استخدام نتائج الجدول المحوري في مكان آخر
</h3>

<p>
	قد نحتاج لاستخدام هذه النتائج في مكانٍ آخر ضمن ملف العمل، بعد الحصول على نتائج الجدول المحوري، ويُمكن إنشاء مرجعٍ إلى قيمةٍ ضمن الجدول المحوري عن طريق إدخال عنوان الخلية التي تحتوي على القيمة، مثلًا الصيغة <code>=C6*2</code> تُنشئ مرجعًا إلى الخلية C6 ثم ترجع القيمة مضاعفة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88589" href="https://academy.hsoub.com/uploads/monthly_2022_01/038getptdata.png.47fcc739aa93ed0186c19a131ad63a27.png" rel=""><img alt="038getptdata.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88589" data-unique="0qz6htvnf" src="https://academy.hsoub.com/uploads/monthly_2022_01/038getptdata.thumb.png.4957f355e4c141f14da2b73fb5878b7b.png" style="width: 600px; height: auto;"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88590" href="https://academy.hsoub.com/uploads/monthly_2022_01/039changecell.gif.e6176caf20ec7a4241ece5db4f3a72ce.gif" rel=""><img alt="039changecell.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88590" data-unique="six61qwqn" src="https://academy.hsoub.com/uploads/monthly_2022_01/039changecell.thumb.gif.16cb586a01b10f41d620ae75cccd66d3.gif" style="width: 600px; height: auto;"></a>
</p>

<p>
	يُتيح لنا Calc حلًا لهذه المشكلة من خلال الدالة <code>GETPIVOTDATA()‎</code> التي تُستخدم للحصول على مرجعٍ إلى قيمةٍ داخل الجدول المحوري باستخدام فئات تعريفٍ معينةٍ لهذه القيمة، وتُكتب الدالة بطريقتين:
</p>

<h4>
	الطريقة اﻷولى
</h4>

<pre class="ipsCode">
=GETPIVOTDATA(الحقل المستهدف; Pivot Table[; Field 1; Item 1][;...[Field 126; Item 126]])
</pre>

<p>
	يُحدّد وسيطٌ (الحقل المستهدف) حقل البيانات في الجدول المحوري الذي سيستخدم داخل الدالة، وفي حال كان الجدول المحوري يحتوي على أكثر من حقل بياناتٍ واحدٍ، فيُمكن إدخال اسم الحقل من مصدر البيانات الأساسي (مثلًا "الكلفة")، حيث تُحدّد الوسيطة Pivot Table الجدول المحوري الذي نود استخدامه.
</p>

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

<pre class="ipsCode">
=GETPIVOTDATA("الكلفة"، A1)
</pre>

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

<pre class="ipsCode">
=2*GETPIVOTDATA("الكلفة";A1;"المشروع";"ترميم مشفى الياسمين";"بند الأعمال";"تمديدات صحية";"مقاول الباطن";"شركة المدى")
</pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88591" href="https://academy.hsoub.com/uploads/monthly_2022_01/040getptdataformula.png.0b7531cb8cd1585b4676b4adeeae5d47.png" rel=""><img alt="040getptdataformula.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88591" data-unique="n633ovwjt" src="https://academy.hsoub.com/uploads/monthly_2022_01/040getptdataformula.thumb.png.e2e8e359728ac53335108ed22d0912a4.png"></a>
</p>

<p>
	نُلاحظ عند إجراء تعديلٍ في الجدول المحوري تبقى نتيجة الصيغة ثابتةً بالموازنة مع الصيغة التي استخدمت خليةً مرجعيّةً.
</p>

<h4>
	الطريقة الثانية
</h4>

<pre class="ipsCode">
=GETPIVOTDATA(Pivot Table; Constraints)
</pre>

<p>
	يُعطى الوسيط Pivot Table بنفس الطريقة السابقة، وبالنسبة للقيود فتدخل كسلسلةٍ نصيّةٍ مفصولةٍ بمسافاتٍ لتحديد القيمة التي نريدها من الجدول المحوري. وتصبح الصيغة بالنسبة لمثالنا.
</p>

<pre class="ipsCode">
=2*GETPIVOTDATA(A1;"الكلفة المشروع[ترميم مشفى الياسمين] بند الأعمال[تمديدات صحية] مقاول الباطن[شركة المدى]")
</pre>

<h2>
	أهمية الجدول المحوري
</h2>

<p>
	يُمكن إنشاء وتخصيص <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-pivot-tables-%D9%81%D9%8A-microsoft-excel-r78/" rel="">الجداول المحوريّة</a> ببساطةٍ فائقةٍ، وليس هناك حاجةٌ لتعلُّم الدوال المعقّدة، ويُمكننا إنشاء تقاريرَ لائقةٍ وجميلةٍ ومفيدةٍ بزمنٍ وجيزٍ، وإن كنت محترفًا في [استخدام الدوال](مقال التعامل مع الصيغ والدوال في LibreOffice من نفس المشروع)، فإن الجداول المحوريّة أسرع في الإنشاء وتتطلّب جهدًا أقلّ، ولا تُقيّدك ضمن منظورٍ ضيقٍ للبيانات. حيث يُمكن ترتيب الجدول المحوري بسرعةٍ ليناسب احتياجاتك، فطالما أنّك أنشأت الجدول المحوري بطريقةٍ صحيحةٍ، فستكون النتائج دقيقةً، كما أن الجداول المحورية تُساعد على إظهار مشاكل البيانات بسرعةٍ أكبر من باقي الأدوات، إذ يُمكن للجداول المحوريّة تطبيق <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">تنسيقٍ لمظهر الجدول</a> ونوع الأعداد وتغييرات البيانات آليًا، وتُحدّث الجداول المحوريّة نفسها باستمرار، كل ما علينا فعله هو الضغط على Refresh، فتتضّمن الجداول المحوريّة عدّة وسائلَ لفرز البيانات، فلو وددت مشاهدة نتائج بنودٍ معينةٍ دون أخرى، فالجداول المحوريّة ستُؤديها بسهولةٍ، وبمجرّد إنشاء الجدول المحوري يُمكن إنشاء مخططٍ بيانيٍ محوريٍ بسهولةٍ فائقةٍ.
</p>

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

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

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1/" rel="">مقدمة إلى حزمة أدوات المكتب الحر LibreOffice</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">تعلّم أساسيات التعامل مع جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-%D9%81%D9%8A-libreoffice-calc-r592/" rel="">الرسوم والمخططات البيانية في LibreOffice Calc </a>
	</li>
</ul>
]]></description><guid isPermaLink="false">594</guid><pubDate>Tue, 18 Jan 2022 15:05:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62A;&#x639;&#x627;&#x645;&#x644; &#x645;&#x639; &#x627;&#x644;&#x635;&#x64A;&#x63A; &#x648;&#x627;&#x644;&#x62F;&#x648;&#x627;&#x644; &#x641;&#x64A; LibreOffice</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%B5%D9%8A%D8%BA-%D9%88%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D9%81%D9%8A-libreoffice-r596/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2022_01/61dd80ed4f225_-----LibreOffice(1).png.4ca0ed16b40d73342e6a64e4af523d3a.png" /></p>

<p>
	يتعامل <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">برنامج كالك</a> مع كميةٍ ضخمةٍ من <a href="https://academy.hsoub.com/programming/general/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%88%D8%A3%D9%86%D9%88%D8%A7%D8%B9%D9%87%D8%A7-%D8%A3%D9%86%D9%88%D8%A7%D8%B9-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-r1287/" rel="">البيانات</a> ويُتيح للمستخدم إمكانية <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/" rel="">إدخال البيانات</a> على شكل نصوصٍ أو أرقامٍ، وإضافةً لذلك، يسمح البرنامج بأن تكون قيمة الخلية معتمدةً على قِيَم الخلايا الأخرى، وذلك عبر استخدام <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%B5%D9%8A%D8%BA-%D9%88%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D9%81%D9%8A-microsoft-excel-r30/" rel="">الصيغ والدوال</a> التي تُمثل معادلاتٍ تحتوي على قِيَمٍ رقميةٍ ومتغيراتٍ ومعاملاتٍ ودوالٍ يُعالجها البرنامج ويُعطي قيمةً للخلية استنادًا عليها، حيث تُسهل هذه العملية إجراء الكثير من الحسابات الروتينيّة والمتكرّرة، كما تسمح للمستخدم بإعداد جداولَ منظمةٍ تُجري حساباتٍ معقّدةٍ وإعطاء نتائجَ دقيقةٍ دون تدخّل المستخدم في كلّ مرةٍ، وقد تتألّف الصيغة من دالةٍ أو أكثر، كما يُمكن أن تكون دالةٌ وسيطًا لدالةٍ أخرى.
</p>

<h2>
	إعداد جدول بيانات
</h2>

<p>
	من المهم عند بناء نظام حساباتٍ ضِمن جداول Calc اتباع بعض الإجراءات التي تُجنّب المستخدم الحصول على نتائجَ خاطئة:
</p>

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

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88692" href="https://academy.hsoub.com/uploads/monthly_2022_01/001calcformulaformat.gif.69a36b505658e9787feb674df96298f0.gif" rel=""><img alt="001calcformulaformat.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88692" data-unique="x27y73gkq" src="https://academy.hsoub.com/uploads/monthly_2022_01/001calcformulaformat.thumb.gif.10e27180b13fd34018aba49ef9e90e5b.gif" style="width: 500px; height: auto;"></a>
</p>

<p>
	وحتى تظهر اﻹدخالات بطريقةٍ منطقيةٍ، يجب تعديل اتجاه النص، وذلك بأن نذهب لقائمة <strong>تنسيق &gt; Page Style</strong>، فتظهر نافذة <strong>نمط الصفحة</strong> نختار تبويب <strong>الصفحة</strong>، ومن القائمة المنسدلة <strong>اتجاه النص</strong> نختار <strong>Left-to-right (Horizontal)</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88693" href="https://academy.hsoub.com/uploads/monthly_2022_01/002textdirection.png.1cb5f8fedc958a48ca4bf19b1ef869a1.png" rel=""><img alt="002textdirection.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88693" data-unique="k4mkt0qkl" src="https://academy.hsoub.com/uploads/monthly_2022_01/002textdirection.thumb.png.41f2162495a0f998ce1e58facbbbd1fe.png" style="width: 500px; height: auto;"></a>
</p>

<p>
	بعد تعديل اتجاه النص، يُصبح شكل الصيغة مناسبًا.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88694" href="https://academy.hsoub.com/uploads/monthly_2022_01/61dd7f2806efa_003calcformulaformat2.gif.d9008292b1dd43d4af9d057308517978.gif" rel=""><img alt="003calcformula format2.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88694" data-unique="49vdd5xvi" src="https://academy.hsoub.com/uploads/monthly_2022_01/61dd7f281127f_003calcformulaformat2.thumb.gif.706f6fc46f9bc8ddea34a0adef6ec030.gif" style="width: 500px; height: auto;"></a>
</p>

<h2>
	إنشاء الصيغ في LibreOffice
</h2>

<p>
	تبدأ الصيغ بالعموم بإشارة يساوي "=" ويُمكن إدخالها بأسلوبين:
</p>

<ul>
<li>
		الأسلوب الأول هو استخدام "مرشد الدوال" أو تبويب الدوال في الشريط الجانبي.
	</li>
	<li>
		الأسلوب الثاني هو الكتابة مباشرةً في الخلية أو في سطر الإدخال.
	</li>
</ul>
<p>
	يجب بدء الصيغة بـ = عند الإدخال المباشر، لكن في حال كانت الصيغة تبدأ بـ + أو - (على سبيل المثال -2* A1)، فإن Calc يُضيف إشارة = تلقائيًا، حيث تتألّف الصيغة من قِيَمٍ مدخلةٍ أو خلايا مرجعيةٍ ومعاملاتٍ، فعند كتابة صيغةٍ ضمن خليةٍ ما، يجب مراعاة مجموعةٍ من القواعد.
</p>

<h2>
	قواعد إنشاء الصيغ
</h2>

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

<h3>
	المعاملات في الصيغة
</h3>

<p>
	المعاملات هي إشاراتٌ ورموزٌ نستعملها للتعامل مع عناصر الصيغة، فعند إنشاء الصيغة الحسابيّة سنتعرّض لعدّة أنواعٍ من المعاملات، مثل المعاملات الحسابيّة والنصيّة والمرجعيّة. إن فهم آلية التعامل مع هذه المعاملات هو أساس إنشاء صيغةٍ متجانسةٍ، وفيما يلي أنواع المعاملات:
</p>

<h4>
	المعاملات الحسابية
</h4>

<p>
	المعاملات الحسابية هي معاملات الجمع "+" والضرب "*" والطرح "-" والقسمة "/" والرفع إلى قوّة "^" والنسبة المئوية "%". تُعيد هذه المعاملات قيمًا رقميةً.
</p>

<h4>
	معاملات الموازنة
</h4>

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

<p style="text-align: center;">
	<img alt="004compareoperators.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88695" data-unique="qc23q8qec" src="https://academy.hsoub.com/uploads/monthly_2022_01/004compareoperators.png.893d62a14890893400b048cc5af83560.png"></p>

<h4>
	المعاملات النصية
</h4>

<p>
	كثيرًا ما تحتوي <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">جداول البيانات</a> على قِيَمِ نصيّةٍ، وقد نحتاج إلى دمج عدّة خلايا ضمن خليةٍ واحدة، حيث يُمكن عمل ذلك باستخدام إشارةٍ &amp; للجمع بين كلّ قيمتين نصيتين، ويُمكن أن تكون النصوص خلايا مرجعيةً ذات قِيَمٍ نصيّةٍ أو قد تكون نصوصًا عاديةً، في هذه الحالة نستخدم علامتي تنصيص في بداية النص ونهايته.
</p>

<p>
	مثلًا لو كانت لدينا ثلاثة أعمدةٍ ويحتوي العمود A على الاسم، والعمود B اسم الأب، والعمود C الشهرة، ونود إنشاء عمودٍ؛ فسيظهر الاسم الثلاثي كاملًا، ونكتب في الخلية D2 الصيغة التالية:
</p>

<pre class="ipsCode">
=A2 &amp; " " &amp; B2 &amp; " " &amp; C2
</pre>

<p style="text-align: center;">
	<img alt="005textoperators.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88696" data-unique="t5rwkhts4" src="https://academy.hsoub.com/uploads/monthly_2022_01/005textoperators.png.0fb3eb7cfdee677105924899672d0822.png"></p>

<h4>
	المعاملات المرجعية
</h4>

<p>
	تُستخدم هذه المعاملات للإشارة إلى خليةٍ ضمن الوريقة، فالصيغة الافتراضيّة لهذه المعاملات هي عنوان العمود ثم رقم الصف A1، ويُمكن أن تُشير هذه المعاملات إلى نطاق، عندها سيكون شكلها الافتراضي هو الخلية المرجعيّة أعلى يمين النطاق، ثم تتبع بإشارة ":" ثم الخلية المرجعيّة أسفل يسار النطاق. قد نود الإشارة إلى نطاقٍ من الخلايا الناتج عن تقاطع نطاقين، ويُمكن استخدام إشارة "!" بين النطاقين في هذه الحالة، مثلًا <strong>A1:C15!B3:F10</strong>.
</p>

<p>
	نُلاحظ في الصورة الآتية أشهر المعاملات المرجعيّة التي نصادفها.
</p>

<p style="text-align: center;">
	<img alt="006refrenceoperator.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88697" data-unique="ah237dw71" src="https://academy.hsoub.com/uploads/monthly_2022_01/006refrenceoperator.png.9b5cb08a1dbf495c12c5c8ca8a707cf9.png"></p>

<h3>
	المراجع النسبية والمطلقة
</h3>

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

<h4>
	المراجع النسبية
</h4>

<p>
	قد نستخدم صيغةً معينةً أحيانًا ضمن مجالٍ واحدٍ، فندخل الدالة في بداية النطاق ثم نستخدم خاصيّة الملْء عن طريق السحب لنسخ الدالة إلى باقي خلايا النطاق، وفي هذه الحالة فإن الخلايا المرجعيّة داخل الدالة سوف تتغيّر آليًا حسب اتجاه الملْء (أفقي/شاقولي)، حيث تُستخدم المراجع النسبيّة عند تكرار صيغةٍ معينةٍ تستند قِيَمها على قِيَم خلايا تقابلها؛ مثلًا، إذا كان لدينا جدولٌ يحتوي على كمية المبيعات الشهرية التي أنجزها كلّ موظفٍ، ونود الحصول على إجمالي المبيعات لكلّ موظفٍ، وإجمالي المبيعات لكلّ شهرٍ؛ فسنستخدم دالة <code>SUM</code> وسنُلاحظ عند نسخ الدالة تغيّر النطاق المرجعي بالتناسب مع اتجاه النسخ.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88698" href="https://academy.hsoub.com/uploads/monthly_2022_01/007REFRENCE.gif.d2ba6b638290733db2157e6685d3f71f.gif" rel=""><img alt="007REFRENCE.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88698" data-unique="h6lt8e2ml" src="https://academy.hsoub.com/uploads/monthly_2022_01/007REFRENCE.thumb.gif.0e50a45ba9e078774bd627fc11380163.gif" style="width: 600px; height: auto;"></a>
</p>

<h4>
	المراجع المطلقة أو الثابتة
</h4>

<p>
	عند وجود مرجعٍ ثابتٍ في الدالة، فإننا سنستخدم إشارة $ قبل المرجع المراد تثبيته (قبل رقم الصف لتثبيت الصف أو قبل عنوان العمود لتثبيت العمود)، إذ تستخدم المراجع المطلقة عند الرغبة بربط الصيغة بقيمةٍ ثابتةٍ ضمن خليةٍ، بحيث لا تتغيّر عند نسخ الصيغة من مكانٍ لآخر، ويُمكن تثبيت مرجع الخلية من خلال إشارة $ توضع قبل عنوان الصف لتثبيت الصف مثل <strong>A$1</strong>، أو تُوضع قبل عنوان العمود لتثبيت العمود <strong>$A1</strong>، كما يُمكن تثبيت عنوان الصف وعنوان العمود من خلال وضع إشارتي $ قبل عنوان الصف وعنوان العمود <strong>$A$1</strong>. لدينا مثلًا جدولٌ يحتوي على اسم السلعة وسعرها، ونود معرفة السعر الجديد الناتج عن تضخّم الأسعار، إذ يُمكن إعداد ذلك من خلال تخصيص خليةٍ تحتوي على نسبة التضخم وإجراء جداءٍ في كلّ صفٍ بين السعر القديم ونسبة التضخُّم للحصول على السعر الجديد.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88713" href="https://academy.hsoub.com/uploads/monthly_2022_01/008ABSOLTEREF.gif.d0942e3b27ad2d795d48e22cdc87192f.gif" rel=""><img alt="008ABSOLTEREF.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88713" data-unique="c9ekaljpw" src="https://academy.hsoub.com/uploads/monthly_2022_01/008ABSOLTEREF.thumb.gif.5ea550dc34b97e740b3082b750aa618f.gif" style="width: 600px; height: auto;"></a>
</p>

<h3>
	النطاقات المسماة
</h3>

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

<h4>
	قواعد تسمية النطاقات
</h4>

<ul>
<li>
		لا يجب أن تحوي تسميات الجداول فراغاتٍ أو رموزٍ، يُمكن استخدام الشرطة السفلية فقط (_).
	</li>
	<li>
		لا يجب أن يبدأ الاسم برقم، أو أن يُماثل مرجع خليةٍ.
	</li>
	<li>
		يُفضل اختصار الاسم قدر الإمكان، بحيث يبقى مُعبرًا عن محتواه.
	</li>
</ul>
<p>
	ولتعريف خليةٍ أو نطاقٍ مسمًى، حدّد الخلية أو النطاق واستخدم قائمة <strong>الورقة &gt; المجالات والتعبيرات المعنونة &gt; تعريف</strong>، حيث تظهر نافذةٌ مع النطاق المحدّد ويُدخل اسمٌ مخصّصٌ للنطاق، ويمكن تحديد حدود استخدام النطاق المسمّى في ملف العمل كله أو في وريقةٍ محدّدةٍ، ثم نضغط <strong>أضف</strong>.
</p>

<p style="text-align: center;">
	<img alt="009namedrangewindow.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88699" data-unique="gspas5arm" src="https://academy.hsoub.com/uploads/monthly_2022_01/009namedrangewindow.png.ee68b30eee615a36a86c837e6a008d8c.png"></p>

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

<p style="text-align: center;">
	<img alt="010NAMEDBOX.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88700" data-unique="59i1sxh4x" src="https://academy.hsoub.com/uploads/monthly_2022_01/010NAMEDBOX.png.3d6c974b141a192bf40d9799393cd8d4.png"></p>

<p>
	للوصول بسرعةٍ إلى نطاقٍ مسمًّى، يُمكن تحديده في القائمة المنسدلة في مربع الاسم، حيث يظهر النطاق المسمّى على الشاشة محددًا. لتعديل نطاقٍ مسمًى، سنستخدم مربع الحوار <strong>إدارة الأسماء</strong>؛ ويُمكن الوصول إلى مربع الحوار هذا عن طريق قائمة <strong>الورقة &gt; المجالات والتعبيرات المعنونة &gt; أدر</strong> أو الضغط على <code>Ctrl+F3</code>.
</p>

<p style="text-align: center;">
	<img alt="011EDITNAMEDRANGE.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88701" data-unique="44ntkc69f" src="https://academy.hsoub.com/uploads/monthly_2022_01/011EDITNAMEDRANGE.png.e1db42732df94c3a471d9757993c545c.png"></p>

<p>
	مثلًا، في جدول كميات المبيعات السنوية للموظفين نود تسمية نطاق الإجمالي السنوي بـ <strong>Annual_sells</strong>، نتّبع الخطوات كما موضّح في الصورة التالية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88702" href="https://academy.hsoub.com/uploads/monthly_2022_01/012namedrange.gif.d4aa802a48c1a01a516962ed692f8c72.gif" rel=""><img alt="012namedrange.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88702" data-unique="mu57h0p1l" src="https://academy.hsoub.com/uploads/monthly_2022_01/012namedrange.thumb.gif.8a332ad65868c2875d6b43136eab5787.gif" style="width: 600px; height: auto;"></a>
</p>

<h3>
	الصيغ المسماة
</h3>

<p>
	من ميّزات برنامج Calc الفريدة هي قدرته على إعطاء تسمياتٍ للصيغ، حيث يُمكن اختصار صيغةٍ طويلةٍ أو معقّدةٍ تحوي العديد من الوسائط باسمٍ مخصّصٍ، كما يُمكن إنشاء تسميةٍ مخصّصةٍ لصيغة، بفتح نافذة تحديد الاسم وإدخال تعبير الصيغة في الحقل <strong>Range or formula expression</strong>، ثم نضع اسمًا للصيغة في حقل الاسم والنقر فوق <strong>أضف</strong>؛ لنفترض مثلًا أننا نحتاج إلى حساب محيط مجموعةٍ من الدوائر في الخلايا C2 إلى C10، حيث يكون نصف قطرها معطى في B2 إلى B10، ويمكننا إضافة صيغةٍ مسماةٍ بـ CIRCUMFER، مع الصيغة ‎<code>= 2* PI()*B2</code>، وعند إدخال ‎<code>=CIRCUMFER</code> في الخلية C2 ستُطبّق الصيغة على الخلية C2، ومن خلال نسخ الخلية C2 ولصقها في الخلايا المُتبقيّة من C2 إلى C10؛ سنحصل على محيط جميع الدوائر، حيث ستتضمّن كافة الخلايا في النطاق C2:C10 الصيغة ‎<code>=CIRCUMFER</code>، ويستخدم التعبير المسمّى نفس قواعد مراجع الخلية إما مطلقةً أو نسبيّةً.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88703" href="https://academy.hsoub.com/uploads/monthly_2022_01/013FURMELANAMED.gif.e44840b35ab9bf82085065281ef78d84.gif" rel=""><img alt="013FURMELANAMED.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88703" data-unique="0z3efz4w4" src="https://academy.hsoub.com/uploads/monthly_2022_01/013FURMELANAMED.thumb.gif.debf2763a20924d9bbbe6eb07ef7684a.gif" style="width: 600px; height: auto;"></a>
</p>

<h3>
	الأولويات الحسابية
</h3>

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

<p>
	في المثال التالي، يُمكن ملاحظة كيف نستطيع تعديل الأولويات الحسابية بمعونة الأقواس.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88704" href="https://academy.hsoub.com/uploads/monthly_2022_01/014ORDEROFCALCULATION.png.2cd614a558168bd38ebf196779552ebe.png" rel=""><img alt="014ORDEROFCALCULATION.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88704" data-unique="vr6qolqyh" src="https://academy.hsoub.com/uploads/monthly_2022_01/014ORDEROFCALCULATION.thumb.png.acf63156e086326f8855ac4ec1ee5a2b.png" style="width: 600px; height: auto;"></a>
</p>

<h3>
	الربط بين الوريقات
</h3>

<p>
	قد نحتاج أحيانًا إلى قِيَمٍ محسوبةٍ موجودةٍ ضِمن خلايا في وريقاتٍ أخرى، ويُمكن استخدام مراجع خلايا ضمن وريقاتٍ أخرى باستخدام اسم الوريقة ثم تتبع بنقطة، ثم النطاق المرجع؛ مثلًا الصيغة <code>Sheet1.k2</code> ستُعيد القيمة الموجودة في الخلية K2 ضمن الوريقة Sheet1.
</p>

<h2>
	التعامل مع الدوال
</h2>

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

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

<h3>
	استخدام الشريط الجانبي
</h3>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88705" href="https://academy.hsoub.com/uploads/monthly_2022_01/015INSERTFUNCSIDEBAR.png.07420f8918af7de2da4f5dca15261754.png" rel=""><img alt="015INSERTFUNCSIDEBAR.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88705" data-unique="qbrzny4bf" src="https://academy.hsoub.com/uploads/monthly_2022_01/015INSERTFUNCSIDEBAR.thumb.png.bec04987917c17ba25d27bcdb4e91ddc.png"></a>
</p>

<h3>
	استخدام مرشد الدوال
</h3>

<p>
	أسلوب الإدخال الأكثر استخدامًا هو مرشد الدوال وهناك عدّة طرقٍ لفتحه:
</p>

<ul>
<li>
		<strong>قائمة إدراج &gt; دالة</strong>.
	</li>
</ul>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88706" href="https://academy.hsoub.com/uploads/monthly_2022_01/016INSERTFUNCTION.png.8304c962948564bcce35fdad7d0e2e3d.png" rel=""><img alt="016INSERTFUNCTION.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88706" data-unique="rvbbhue0x" src="https://academy.hsoub.com/uploads/monthly_2022_01/016INSERTFUNCTION.thumb.png.9aacd119c9cafa743dcb9326dbc34675.png"></a>
</p>

<ul>
<li>
		من خلال أيقونة مرشد الدوال على شريط الصيغة.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="017INSERTFUNCBAR.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88707" data-unique="50g58nxon" src="https://academy.hsoub.com/uploads/monthly_2022_01/017INSERTFUNCBAR.png.87fa8677131e15def2dd31db85249cb8.png"></p>

<ul>
<li>
		الضغط على Ctrl+F2.
	</li>
</ul>
<p>
	يُوفّر "معالج الدالة" نفس ميّزات التعليمات الموجودة في لوحة الدوال ضمن الشريط الجانبي، ولكنّه يُضيف حقولًا يُمكنك من خلالها مشاهدة نتيجة الدالة. لإدخال دالةٍ يُمكن اتباع ثلاثة خطوات.
</p>

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

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

<p style="text-align: center;">
	<img alt="018.1FUNCWIZARDSTRUCTURE.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88708" data-unique="xtax6mln2" src="https://academy.hsoub.com/uploads/monthly_2022_01/018.1FUNCWIZARDSTRUCTURE.png.e49d6d5a437987ae30b7d816e9126dc4.png"></p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88709" href="https://academy.hsoub.com/uploads/monthly_2022_01/018FUNCTIONWIZARD.png.de319544f92b2b4c19304e8d133d60cf.png" rel=""><img alt="018FUNCTIONWIZARD.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88709" data-unique="zni96aqjd" src="https://academy.hsoub.com/uploads/monthly_2022_01/018FUNCTIONWIZARD.thumb.png.7a8c81748212cffbbc17136806592ca2.png" style="width: 600px; height: auto;"></a>
</p>

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

<h3>
	الدوال المصفوفية
</h3>

<p>
	تسمح لك صيغة الصفيف بإجراء عملياتٍ حسابيةٍ متعدّدةٍ في وقتٍ واحدٍ، أو يُمكنها إجراء عمليةٍ حسابيةٍ واحدةٍ أو أكثر عدّة مراتٍ ضمن نطاق خلايا محدّد، حيث يتمثّل الاختلاف بين صيغة الصفيف والصيغة العادية في أن صيغة الصفيف تُعالج عدّة قِيَمٍ بدلًا من واحدةٍ فقط؛ بمعنى آخر، تُقيم صيغة الصفيف في Calc جميع القِيَم الفرديّة في صفيفٍ وإجراء عملياتٍ حسابيةٍ متعدّدةٍ على عنصرٍ واحدٍ أو عدّة عناصرَ وفقًا للشروط المُعبّر عنها في الصيغة، ويمكن أن تظهر القِيَم المُشار إليها في هذه الصيغ مثل قِيَمٍ في صفٍ أو في عمودٍ أو في مصفوفةٍ (صفوف وأعمدة)، ولشرح صيغة الصفيف بشموليّةٍ أكبر، من الأسهل عرض بعض الأمثلة لذلك؛ مثلًا يُمكننا ضرب قائمةٍ بعددٍ محدّدٍ من خلال إدخال صيغةٍ تحوي نطاق القائمة العدديّة، ثم إشارة الضرب × ثم العدد ثم الضغط على <strong>Ctrl+Shift+Enter</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88710" href="https://academy.hsoub.com/uploads/monthly_2022_01/019arrayFUNC.gif.04d4157792073b358235cf37f004a498.gif" rel=""><img alt="019arrayFUNC.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88710" data-unique="jlnldqo72" src="https://academy.hsoub.com/uploads/monthly_2022_01/019arrayFUNC.thumb.gif.c360266e52ef798dec056d7bc4a5717e.gif" style="width: 600px; height: auto;"></a>
</p>

<p>
	تُحاط المجالات التي تُعامل كصفيفٍ بقوسين {}، وعند محاولة تعديل إحدى خلايا الصفيف تظهر رسالة <strong>لا يُمكن تعديل جزءٍ من صفيف</strong>.
</p>

<h3>
	أمثلة عن الدول
</h3>

<p>
	تُصنف الدوال المُتوفّرة في Calc إلى عدّة فئاتٍ، تُعالج كل فئةٍ موضوعًا محددًا.
</p>

<h4>
	الدوال الرياضية
</h4>

<p>
	وتتضمن الدوال الرياضيّة والمثلثيّة معًا بما في ذلك دوال الجمع المتعدّد والجمع الشرطي والضرب، كما تحتوي على الدوال المثلثيّة مثل (TAN &amp; SIN &amp;COS)، ودوال التقريب وFloor التقريب للأدنى وCeiling التقريب للأعلى وODD تقريب الرقم الموجب لأعلى والسالب لأسفل، لأقرب رقمٍ فرديٍ، وEven تقريب الرقم الموجب لأعلى والسالب لأسفل، لأقرب رقمٍ زوجيٍ.
</p>

<h4>
	دوال الوقت والتاريخ
</h4>

<p>
	وهي الدوال التي ترجع الوقت والتاريخ وتجري حساباتٍ عليها، مثل إرجاع سنةٍ من تاريخ وغيرها.
</p>

<ul>
<li>
		TODAY: ترجع هذه الدالة التاريخ الحالي للنظام.
	</li>
	<li>
		WORKDAY: تحسب هذه الدالة تاريخ مستقبلٍ أو ماضٍ بناءً على تاريخ البداية وعدد أيامٍ معيّنة، وتُفيد هذه الدالة مُديري المشاريع من خلال تحديد تاريخ نهاية عملٍ معينٍ انطلاقًا من تاريخ بدايته وعدد الأيام اللازمة لتنفيذ هذا العمل، حيث يَعتمد في الحساب على استثناء أيام العطل الرسميّة والاستثنائيّة وعطل نهاية الأسبوع.
	</li>
	<li>
		DATEDIF: ترجع هذه الدالة عدد الأيام أو الأشهر أو السنوات بين تاريخين.
	</li>
	<li>
		DAYS: ترجع هذه الدالة عدد الأيام بين تاريخين بغض النظر عن الأقدم والأحدث.
	</li>
</ul>
<h4>
	الدوال النصية
</h4>

<p>
	وهي الدوال المرتبطة بتحويل القِيَم إلى نصوصٍ أو تقطيع النصوص أو عدّ محارف النصّ أو البحث فيها، ومن أهم هذه الدوال هي دالة Text ووظيفتها تحويل رقمٍ إلى نصٍ بناءً على تنسيقاتٍ افتراضيّةٍ؛ مثلًا لمعرفة اسم اليوم لتاريخٍ محدّدٍ من خلال الدالة Text يكون الوسيط الأول هو التاريخ والوسيط الآخر هو تنسيق "DDD"؛ كما نُلاحظ في الصورة التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88711" href="https://academy.hsoub.com/uploads/monthly_2022_01/020TEXTFUNC.gif.938dc7095f38641dcf771784fffa2aa5.gif" rel=""><img alt="020TEXTFUNC.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88711" data-unique="rdveth53z" src="https://academy.hsoub.com/uploads/monthly_2022_01/020TEXTFUNC.thumb.gif.01f9851504f6158ada065d6429b4131e.gif" style="width: 600px; height: auto;"></a>
</p>

<h4>
	الدوال المنطقية
</h4>

<p>
	وهي الدوال المرتبطة بالعبارات المنطقيّة، مثل الدالة الشرطيّة ودالة (OR) ودالة (AND) وغيرها.
</p>

<p>
	وظيفة دالة If إجراء اختبارٍ، ثم إرجاع قيمةٍ محدّدةٍ إذا كانت نتيجة الاختبار TRUE، وإذا كانت نتيجة الاختبار FALSE إرجاع قيمةٍ محدّدةٍ أخرى.
</p>

<p>
	مثلًا لو أردنا تقييم أداء كلّ موظفٍ من خلال موازنة كمية مبيعاته مع متوسّط كمية المبيعات لجميع الموظفين، نتّبع الخطوات التالية:
</p>

<ol>
<li>
		تحديد الخلية والذهاب لنافذة مرشد الدوال.
	</li>
	<li>
		البحث عن دالة IF واختيارها.
	</li>
	<li>
		في وسيطة <strong>الاختبار</strong> لدالة IF نضغط على fx لإضافة دالةٍ مثل وسيطة.
	</li>
	<li>
		نختار دالة <strong>Average</strong> على أساس وسيطةٍ، وندخل النطاق المسمى <strong>Annual_sells</strong> مثل وسيطةٍ للدالة Average.
	</li>
	<li>
		نعود لوسائط IF ونكمل وسيطة الاختبار لتصبح Average(Annual_sells)&lt;O2، ثم ندخل "good"، ثم "Bad"، في حقول وسائط IF على التوالي.
	</li>
	<li>
		نضغط حسنًا، ومن مقبض الملْء التلقائي ننسخ محتوى O2 إلى بقيّة الخلايا. وبذلك نكون قد حصلنا على نتيجة أداء كلّ موظفٍ في السنة.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88712" href="https://academy.hsoub.com/uploads/monthly_2022_01/021libreif2.gif.71ea261a2ca1fa4d48e75e9c6f1fa452.gif" rel=""><img alt="021libreif2.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88712" data-unique="6crrvpch8" src="https://academy.hsoub.com/uploads/monthly_2022_01/021libreif2.thumb.gif.5a57a84ad62dfb6e8595813535ec965f.gif" style="width: 600px; height: auto;"></a>
</p>

<p>
	أما دالة And، تجري اختبارًا على شرطين أو متراجحتين وتُرجع القيمة المنطقية TRUE في حال كانت نتيجة الاختبارين معًا TRUE وإلا تُرجع FALSE.
</p>

<p>
	وأما دالة OR، تجري اختبارًا على شرطين أو متراجحتين وتُرجع القيمة المنطقية TRUE في حال كانت نتيجة أحد الاختبارين على الأقل TRUE وإلا تُرجع FALSE.
</p>

<h4>
	الدوال المالية
</h4>

<p>
	وهي الدوال المرتبطة بالمهن المحاسبيّة والدراسات الاقتصاديّة، مثل القيمة الحالية والقيمة المستقبليّة وقيمة الدفعات والعائد على الاستثمار وغيرها.
</p>

<h4>
	الدوال الإحصائية
</h4>

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

<h4>
	دوال المعلومات
</h4>

<p>
	وهي دوال ترجع معلومات حول الخلية المحدّدة، مثل هل هي فارغة؟ أو نوع البيانات داخلها أو <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r280/" rel="">تنسيق اللون</a> أو الموقع.
</p>

<h3>
	أنواع الأخطاء
</h3>

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

<ul>
<li>
		‎#DIV/0!‎ القسمة على صفر: عندما يُقسم مجال من القِيَم على مجالٍ آخر يحوي خلايا فارغةً أو قيمًا صفريةً يظهر الخطأ #DIV/0!.
	</li>
	<li>
		‎#VALUE!‎ لا نتيجة: يظهر هذا الخطأ عندما نُخطئ باختيار نوع الوسيطة ضمن دالة، فمثلًا دالةٌ تطلب وسائطَ رقميةً وأدخل المستخدم وسائطَ نصيّةً سيظهر الخطأ #VALUE!.
	</li>
	<li>
		‎#REF!‎ مراجع غير صحيحة: يظهر هذا الخطأ عندما نستخدم خليةً كمرجعٍ في صيغة ضمن خليةٍ أخرى ثم نحذف هذه الخلية المرجعيّة.
	</li>
</ul>
<h2>
	الخاتمة
</h2>

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

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-%D9%81%D9%8A-libreoffice-calc-r592/" rel="">الرسوم والمخططات البيانية في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-%D9%81%D9%8A-libreoffice-calc-r593/" rel="">التعامل مع الجداول المحورية في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%AD%D9%88%D8%B1%D9%8A%D8%A9-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%86%D8%B3%D9%91%D9%82%D8%A9-%D8%B4%D8%B1%D8%B7%D9%8A%D9%8B%D8%A7-%D9%81%D9%8A-libreoffice-calc-r595/" rel="">المخططات المحورية والمخططات المنسّقة شرطيًا في LibreOffice Calc</a> 
	</li>
</ul>
]]></description><guid isPermaLink="false">596</guid><pubDate>Wed, 12 Jan 2022 15:00:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x631;&#x633;&#x648;&#x645; &#x648;&#x627;&#x644;&#x645;&#x62E;&#x637;&#x637;&#x627;&#x62A; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x64A;&#x629; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D9%88%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-%D9%81%D9%8A-libreoffice-calc-r592/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2022_01/61dc4f61ebc79_----LibreOffice-Calc.png.c02049e0b7d6fad81aeb46b161b23f39.png" /></p>

<p>
	تُعَد المخططات و<a href="https://academy.hsoub.com/design/illustration/%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-r553/" rel="">الرسوم البيانية</a> أدواتٍ فعالةً للتعبير عن البيانات، ولا يستغني عنها أيُّ محلل بياناتٍ أو مُعِدّ تقاريرَ ماليةٍ أو إداريةٍ أو إحصائيةٍ، وتُستخدم <a href="https://academy.hsoub.com/apps/productivity/google-drive/google-sheets/%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D8%A7%D9%84%D9%85%D8%AE%D8%B7%D8%B7%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%AC%D9%88%D8%AC%D9%84-r319/" rel="">المخططات البيانيّة</a> لتوضيح العلاقة بين البيانات ولتسهيل فهمها، حيث يُمكن قراءة المخطط البياني بسرعةٍ أكبر من قراءة البيانات الخام؛ إذ يُوفر <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">برنامج Calc</a> مجموعةً متنوعةً من الطرق لعرض البيانات، ويُمكن تعديلها وتخصيصها بمرونةٍ كبيرةٍ، ممّا يُتيح عرض البيانات بأوضح الطرق.
</p>

<h2>
	إدراج مخطط بياني
</h2>

<p>
	يُتيح Calc أداةً تُدعى <strong>مرشد الرسم البياني Chart Wizard</strong>؛ وظيفتها هي بناء مخططاتٍ تتناسب مع مختلف الحاجات، حيث تُوفّر إمكانية إدراج مخطّطٍ بسيطٍ بخطواتٍ يسيرةٍ، كما تُتيح إمكانية إدراج مخططاتٍ احترافيّةٍ لمحاكاة البيانات المعقّدة بمرونةٍ عاليةٍ بنفس الوقت.
</p>

<h3>
	مرشد الرسم البياني Chart Wizard
</h3>

<p>
	يُستخدَم مرشد الرسم البياني لإنشاء مخطّطٍ مبدئيٍ باستخدام البيانات الموجودة في <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">جدول البيانات</a>، وبمجرّد تحديد البيانات وفتح مرشد الرسم البياني، يُدرج المخطّط على الوريقة ويُمكن تعديل المخطّط من خلال الخيارات المتاحة في المرشد، حيث يُحدَّث الرسم البياني فوريًا بالتزامن مع أيّ تعديلٍ للخيارات.
</p>

<p>
	لتوضيح عملية استخدام مرشد الرسم البياني، سنستخدم الجدول التالي كمثال:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88518" href="https://academy.hsoub.com/uploads/monthly_2022_01/001Table.png.847de4a834c912ed314b9936ead855d0.png" rel=""><img alt="001Table.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88518" data-unique="1wqxmti8p" src="https://academy.hsoub.com/uploads/monthly_2022_01/001Table.png.847de4a834c912ed314b9936ead855d0.png"></a>
</p>

<p>
	لإدراج مخطّطٍ بيانيٍ، نتّبع الخطوات التالية:
</p>

<ol>
<li>
		تحديد الخلايا التي تحتوي على جميع البيانات بالإضافة لعناوين الأعمدة والصفوف لتُضمّن في الرسم البياني.
	</li>
	<li>
		فتح نافذة مرشد الرسم البياني من خلال أحد الخيارين التاليين:
		<ul>
<li>
				الذهاب لقائمة <strong>إدراج &gt; رسم بياني</strong>.
			</li>
			<li>
				انقر فوق رمز "أدرِج رسم بياني" في شريط الأدوات القياسي.
			</li>
		</ul>
</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88519" href="https://academy.hsoub.com/uploads/monthly_2022_01/002insertchart.png.565c61d607551f025fd10f24cdbc2fcd.png" rel=""><img alt="002insertchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88519" data-unique="qk6nl02rn" src="https://academy.hsoub.com/uploads/monthly_2022_01/002insertchart.thumb.png.fe3ea5b137c4be47d466e3956ac80b91.png" style="width: 550px; height: auto;"></a>
</p>

<ol start="3">
<li>
		يُمكننا اختيار نوع الرسم البياني وتخصيص بعض الخيارات المتاحة ثم النقر <strong>Finish</strong>.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88520" href="https://academy.hsoub.com/uploads/monthly_2022_01/003chartwizard.png.2cb20f5bcb67e5d00e6fb8f05682d447.png" rel=""><img alt="003chartwizard.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88520" data-unique="4tq8gj4mg" src="https://academy.hsoub.com/uploads/monthly_2022_01/003chartwizard.png.2cb20f5bcb67e5d00e6fb8f05682d447.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	وبذلك نكون قد أدرجنا مخطّطًا بيانيًا بسيطًا بناءً على الخيارات الافتراضيّة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88521" href="https://academy.hsoub.com/uploads/monthly_2022_01/004chart.png.6d5048d77922013ca2d0b5e13c6e5fd9.png" rel=""><img alt="004chart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88521" data-unique="n9we87un6" src="https://academy.hsoub.com/uploads/monthly_2022_01/004chart.thumb.png.f67a475f6c620cc363883c043c121974.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	من المهم تعريف بعض المصطلحات التي تُحدّد شكل المخطط البياني:
</p>

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

<h4>
	اختيار نوع الرسم البياني
</h4>

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

<p>
	يُنشئ مرشد الرسم البياني في البداية مخطّطًا من النوع عمود 2D، ولتعديل نوع المخطّط وخياراته سنتّبع ما يلي:
</p>

<ul>
<li>
		تحديد نوع المخطّط من القائمة الموجودة أسفل <strong>اختر نوع الرسم البياني</strong>.
	</li>
	<li>
		تحديد شكل تدرُّج المخطّط من صندوق الاستعراض، يختلف الشكل تبعًا للنوع ويُزامن المخطط المُدْرج عند استعراض الأشكال.
	</li>
	<li>
		لكل نوعٍ مجموعةٌ من الخيارات يُمكن التعرّف عليها لكلّ نوعٍ على حدة، حيث يُمكن تحديد <strong>مظهر الثلاثي الأبعاد</strong> لتحويل المخطّط إلى 3D للأنواع (عمود وشريط وفطيرة)، ويتيح هذا الخيار نَوعَي عرض هما واقعيٌ أو بسيطٌ، كما يُمكننا تحديد الشكل وفق الخيارات (شريط وأسطوانة ومخروط وهرم) بالنسبة للأنواع (عمود وشريط).
	</li>
	<li>
		اختيار <strong>التالي</strong> لاستعراض المزيد من الخيارات، أو <strong>Finish</strong> لحفظ التعديلات على المخطّط.
	</li>
</ul>
<h4>
	اختيار مجال البيانات
</h4>

<p>
	يجب أن يشمل مجال البيانات جميع البيانات والتسميات والفئات التي ستُضمّن في المخطّط البياني، كما يجب التأكّد من خلو المجال من الأعمدة أو الصفوف المكرّرة أو الفارغة، حيث يُتيح الحقل <strong>نطاق البيانات</strong> إمكانية <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/" rel="">إدخال أو تعديل مجال البيانات</a> إمّا كتابيًا أو تحديد المجال بالفأرة من خلال الزر <strong>حدّد حدود البيانات</strong>، والخيار <strong>سلسلة البيانات بالصفوف</strong> أي أن كل صفٍ من الجدول يُمثل سلسلةً تتغيّر قيمتها أفقيًا من عمودٍ لآخر.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88522" href="https://academy.hsoub.com/uploads/monthly_2022_01/005rowseries.png.0831db914f6762e0a6da3d8e5a1d5f48.png" rel=""><img alt="005rowseries.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88522" data-unique="u6d010taz" src="https://academy.hsoub.com/uploads/monthly_2022_01/005rowseries.thumb.png.867490690b5bd220b3d7c8adfb78a642.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	الخيار <strong>سلسلة البيانات بالأعمدة</strong> أي أن قِيَم كلّ عمودٍ من الجدول تُمثل سلسلةً تتغيّر شاقوليًا من صفٍ لآخر.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88523" href="https://academy.hsoub.com/uploads/monthly_2022_01/006colseries.png.c7cdc2291037e7d1a51b9c47e7031ad6.png" rel=""><img alt="006colseries.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88523" data-unique="4z8v2lhti" src="https://academy.hsoub.com/uploads/monthly_2022_01/006colseries.thumb.png.2cf5cdfc238e286a7b6b13761bdb7a44.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	يُفيد الخياران السابقان في التبديل بين الفئات والسلاسل
</p>

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

<h4>
	تعديل سلاسل البيانات
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88524" href="https://academy.hsoub.com/uploads/monthly_2022_01/007dataseries.png.5ae627f8b8ae4f3cca7b762e2cf8eaef.png" rel=""><img alt="007dataseries.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88524" data-unique="h9qbwwz1y" src="https://academy.hsoub.com/uploads/monthly_2022_01/007dataseries.png.5ae627f8b8ae4f3cca7b762e2cf8eaef.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	من قائمة نطاق البيانات يُمكن تعديل الخيارات التالية:
</p>

<ol>
<li>
		لون الحد ولون التعبئة: يُمكن تعيين لون حدودٍ ولون تعبئةٍ لكل قيمةٍ من قِيَم سلسلة البيانات باستخدام القِيَم العدديّة لنظام ألوان RGBA، كما يُمكن استخدام <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A-%D9%81%D9%8A-libreoffice-calc-r585/" rel="">التنسيق الشرطي</a> حيث سيختلف لون كل قيمةٍ من قِيَم سلسلة البيانات تبعًا لمطابقتها شرطًا محدّدًا.
	</li>
	<li>
		الاسم: يَفتَرِض Calc تلقائيًا أن الصفّ الأول والعمود الأول من نطاق البيانات أسماءً للسلاسل أو الفئات، وهنا يُمكننا تعديل اسم كل سلسةٍ من خلال تحديد الاسم والذهاب إلى حقل <strong>نطاق الاسم</strong> وكتابة الاسم في الحقل أو اختيار نطاقٍ يحتوي على الاسم المناسب.
	</li>
	<li>
		قِيَم ص: وهي قِيَم رقمية تُمثَل غالبًا على المحور الشاقولي، وتُعبّر عن قِيَم السلسلة، حيث يُمكننا تعديل نطاق هذه القِيَم من حقل <strong>نطاق قِيَم ص</strong>.
	</li>
</ol>
<p>
	من خلال حقل <strong>الفئات</strong> يُمكننا تعديل نطاق الفئات، ويبقى هذا النطاق ثابتًا لجميع السلاسل.
</p>

<h4>
	عناصر الرسم البياني
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88525" href="https://academy.hsoub.com/uploads/monthly_2022_01/008ChartElements.png.d673e264a90ea091f7042f18e6e7b545.png" rel=""><img alt="008ChartElements.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88525" data-unique="znigh3x2j" src="https://academy.hsoub.com/uploads/monthly_2022_01/008ChartElements.thumb.png.158794630b58edb7ec03835b084c228d.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	توضّح الصورة التالية عناصر الرسم البياني للمخططات ثنائيّة وثلاثيّة الأبعاد.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88526" href="https://academy.hsoub.com/uploads/monthly_2022_01/009chartelements3d.png.d720a1d6a480533c44a6b99432570afb.png" rel=""><img alt="009chartelements3d.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88526" data-unique="e0959em1y" src="https://academy.hsoub.com/uploads/monthly_2022_01/009chartelements3d.thumb.png.d3b837e1b3f73d45764b55c464982a00.png" style="width: 550px; height: auto;"></a>
</p>

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

<h2>
	تعديل المخطط البياني
</h2>

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

<h3>
	وضع التحديد
</h3>

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

<h4>
	التعامل المباشر مع المخطط
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88527" href="https://academy.hsoub.com/uploads/monthly_2022_01/010scalechart.gif.fe210ac0cfe4fc6715d7781fd6cc1ba0.gif" rel=""><img alt="010scalechart.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88527" data-unique="anvaogx9o" src="https://academy.hsoub.com/uploads/monthly_2022_01/010scalechart.thumb.gif.13f98a2150760976c4d6b079cf0a0e3d.gif" style="width: 550px; height: auto;"></a>
</p>

<p>
	كما يُمكن أيضًا النقر على المخطط بزّر الفأرة الأيمن، حيث تظهر قائمةٌ تحوي العديد من الخيارات، مثل تصدير المخطّط كصورةٍ، أو إضافة اسمٍ للمخطّط لتسهيل البحث عنه وإيجاده من خلال أداة <strong>الملاح</strong> في حال كانت الوريقة تحوي العديد من <a href="https://academy.hsoub.com/programming/java/%D8%A7%D9%84%D9%83%D8%A7%D8%A6%D9%86%D8%A7%D8%AA-objects-%D9%88%D8%AA%D9%88%D8%A7%D8%A8%D8%B9-%D8%A7%D9%84%D9%86%D8%B3%D8%AE-instance-methods-%D9%88%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA-%D8%A7%D9%84%D9%86%D8%B3%D8%AE-instance-variables-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7-r1108/" rel="">الكائنات</a>، كما يُمكن تعديل ترتيب المخطّط ومحاذاته وتحجيمه أو نقله.
</p>

<h4>
	الشريط الجانبي
</h4>

<p>
	يقع على يسار الشاشة ويظهر عند التحديد على المخطّط، وفي حال لم يظهر، فسيُمكن إظهاره من خلال قائمة <strong>عرض &gt; الشريط الجانبي</strong>، أو من خلال الضغط على المفتاحين <strong>Ctrl+F5</strong>.
</p>

<p>
	يُتيح الشريط الجانبي في وضع التحديد الخيارات التالية:
</p>

<ol>
<li>
		تعديل منطقة الرسم ولون التعبئة والشفافيّة.
	</li>
	<li>
		تعديل ظل المخطّط من حيث الشكل والمسافة والشفافيّة.
	</li>
	<li>
		حدود منطقة الرسم من حيث الشكل واللون والشفافيّة.
	</li>
	<li>
		موقع وقياس المخطّط، والترتيب بالنسبة للكائنات الأخرى (مثل خيارات الإرسال للمقدمة أو للخلفية) وخيارات الاصطفاف (للأعلى أو الأسفل أو اليمين أو اليسار) بالنسبة للكائنات الأخرى أو التجميع وفك التجميع.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88528" href="https://academy.hsoub.com/uploads/monthly_2022_01/011sidebareditmode.png.70d3b4404513c332490ada44d03f0043.png" rel=""><img alt="011sidebareditmode.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88528" data-unique="b7k4p3k8i" src="https://academy.hsoub.com/uploads/monthly_2022_01/011sidebareditmode.thumb.png.02b5639d9a28526b844979d027835f50.png"></a>
</p>

<h4>
	شريط الأدوات
</h4>

<p>
	يظهر هذا الشريط عند تحديد المخطّط في وضع التحديد، ويُتيح خيارات التجميع وفك التجميع والترتيب والتدوير والمحاذاة والحدود والتعبئة.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88529" href="https://academy.hsoub.com/uploads/monthly_2022_01/012selectmodebar.png.de48f62ccf7f36402bfade1b5b08099b.png" rel=""><img alt="012selectmodebar.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88529" data-unique="p0eyiba5n" src="https://academy.hsoub.com/uploads/monthly_2022_01/012selectmodebar.thumb.png.0a3b19adc987dc5476b0be6276630040.png"></a>
</p>

<h3>
	وضع التحرير
</h3>

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

<h4>
	الشريط الجانبي
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88530" href="https://academy.hsoub.com/uploads/monthly_2022_01/013sidebarselectmode.png.93f49f9d806d6bb91f22c4a46b0ce5a1.png" rel=""><img alt="013sidebarselectmode.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88530" data-unique="3lq608g64" src="https://academy.hsoub.com/uploads/monthly_2022_01/013sidebarselectmode.thumb.png.e18e7ef457bfdbd79abc450d27d5c418.png"></a>
</p>

<h4>
	قائمة إدراج
</h4>

<p>
	لإضافة عنصرٍ غير موجودٍ مسبقًا في المخطّط، يُمكن استخدام قائمة "إدراج" التي تُتيح إمكانية <a href="https://academy.hsoub.com/apps/productivity/google-drive/google-slides/%D8%A5%D8%AF%D8%B1%D8%A7%D8%AC-%D8%A7%D9%84%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9-%D9%88%D8%AA%D8%B1%D8%AA%D9%8A%D8%A8%D9%87%D8%A7-%D9%81%D9%8A-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-%D8%B9%D8%B1%D9%88%D8%B6-%D8%AC%D9%88%D8%AC%D9%84-%D8%A7%D9%84%D8%AA%D9%82%D8%AF%D9%8A%D9%85%D9%8A%D8%A9-r318/" rel="">إدراج</a> العناوين ومفاتيح الرسم وتسميات المحاور والشبكات وتسميات البيانات وخطوط الاتجاه وسطور القيمة المتوسطة وأشرطة الأخطاء والرموز الخاصّة.
</p>

<p style="text-align: center;">
	<img alt="014insertmenu.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88531" data-unique="k1pirtmrt" src="https://academy.hsoub.com/uploads/monthly_2022_01/014insertmenu.png.94184098d71f9d7ee12eadba6f2b8baf.png"></p>

<h4>
	قائمة تنسيق
</h4>

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

<p style="text-align: center;">
	<img alt="015formatmenu.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88532" data-unique="2ddlwlr6r" src="https://academy.hsoub.com/uploads/monthly_2022_01/015formatmenu.png.9e8e60da2649ec4ae573dcfd3a21a385.png"></p>

<h4>
	شريط الأدوات
</h4>

<p>
	يُمكن إجراء التعديلات السابقة ذاتها على العناصر من خلال شريط أدوات التنسيق.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88533" href="https://academy.hsoub.com/uploads/monthly_2022_01/016standardbarchart.png.a00404e0c493a947795941be73987e68.png" rel=""><img alt="016standardbarchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88533" data-unique="iepmxe4yc" src="https://academy.hsoub.com/uploads/monthly_2022_01/016standardbarchart.thumb.png.a8bbc0427443b9587af5767fa1f781ae.png"></a>
</p>

<p>
	والذي يحتوي على الأدوات التالية:
</p>

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

<h4>
	التعامل المباشر مع العناصر
</h4>

<p>
	يُمكن تحجيم ونقل عناصر المخطّط ضمن منطقة المخطّط بنفس الطريقة المتّبعة لتحجيم أو نقل المخطّط ضمن وريقة العمل.
</p>

<p style="text-align: center;">
	<img alt="017moveElementchart.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88534" data-unique="5r7u8pq4s" src="https://academy.hsoub.com/uploads/monthly_2022_01/017moveElementchart.gif.c24f75254b65302f796e5bf2229a4947.gif"></p>

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

<h3>
	تطبيقات عملية على تعديل المخططات
</h3>

<p>
	لتوضيح أدوات وطرق التعامل مع المخططات البيانيّة في وضع التحرير، نُرفق لكم الأمثلة التطبيقيّة التالية:
</p>

<h3>
	تعديل نطاق البيانات
</h3>

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

<ol>
<li>
		تحديد المخطط في وضع التحرير، والانتقال إلى نافذة مجالات البيانات وفق إحدى الطرق التالية:
		<ul>
<li>
				الشريط القياسي &gt; أيقونة نطاقات البيانات.
			</li>
			<li>
				النقر على المخطط بزر الفأرة الأيمن &gt; نطاقات البيانات.
			</li>
			<li>
				قائمة تنسيق &gt; نطاقات البيانات.
			</li>
		</ul>
</li>
	<li>
		تظهر نافذة مجالات البيانات، ويمكن كتابة النطاق الجديد في الحقل المخصّص أو تقليص النافذة لتحديد النطاق.
	</li>
	<li>
		النقر على <strong>حسنًا</strong>.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88535" href="https://academy.hsoub.com/uploads/monthly_2022_01/018editrange.gif.897aa06edb0c7538ef178f29c9a86342.gif" rel=""><img alt="018editrange.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88535" data-unique="9kgevxi5v" src="https://academy.hsoub.com/uploads/monthly_2022_01/018editrange.thumb.gif.b0c144b61c36053239d6150be9470849.gif" style="width: 550px; height: auto;"></a>
</p>

<p>
	تُتيح نافذة مجالات البيانات تبويب <strong>سلاسل البيانات</strong> يسمح بنفس الإعدادات الموجودة في مرشد الرسم البياني.
</p>

<p style="text-align: center;">
	<img alt="019Editseries.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88536" data-unique="qn1g7xbx7" src="https://academy.hsoub.com/uploads/monthly_2022_01/019Editseries.png.a8f6ef6bd0c53f3b9ad658518b283fbf.png"></p>

<h4>
	إضافة عناصر للمخطط
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88551" href="https://academy.hsoub.com/uploads/monthly_2022_01/020addheading.gif.04ccbcc1413e1fdc2dbe7401a30301e1.gif" rel=""><img alt="020addheading.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88551" data-unique="642o1w8i6" src="https://academy.hsoub.com/uploads/monthly_2022_01/020addheading.thumb.gif.a4c79212febaf7c3d82c4ffa2361ce8a.gif" style="width: 550px; height: auto;"></a>
</p>

<p>
	قد نحتاج أحيانًا لتقديم فهمٍ أوسع للبيانات من خلال المخطّط، حيث يُمكن استخدام <strong>تسميات البيانات</strong> لهذا الغرض، الذي تُتيح لنا إمكانية إظهار القِيَم الرقمية لعناصر المخطّط واسم السلسلة والفئة عند كل نقطة بيانات؛ مثلًا لإضافة نسبة القيمة في المخطّط وقيمة كل عمودٍ نفتح نافذة تسميات البيانات بالذهاب لقائمة <strong>إدراج &gt; تسميات البيانات</strong>، نحدّد الخيار <strong>value as percentage</strong> أولًا، ثم الخيار <strong>value as number</strong>.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88537" href="https://academy.hsoub.com/uploads/monthly_2022_01/021addlabel.gif.92883100cc91bd83c27f5ef08c83b9de.gif" rel=""><img alt="021addlabel.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88537" data-unique="rdlcqhe6b" src="https://academy.hsoub.com/uploads/monthly_2022_01/021addlabel.thumb.gif.4b803f7b87528b9fa39c0657fb4288ea.gif" style="width: 550px; height: auto;"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88538" href="https://academy.hsoub.com/uploads/monthly_2022_01/022elementlabel.gif.d107f14631e0381f005a00348f23cd78.gif" rel=""><img alt="022elementlabel.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88538" data-unique="n5qb38ycb" src="https://academy.hsoub.com/uploads/monthly_2022_01/022elementlabel.thumb.gif.ccbff5894917bdd3727767377121cc33.gif" style="width: 500px; height: auto;"></a>
</p>

<h4>
	تعديل تنسيقات عناصر المخطط
</h4>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88539" href="https://academy.hsoub.com/uploads/monthly_2022_01/023editelementformat.gif.fb0b131185aac1efe207b09281748d6c.gif" rel=""><img alt="023editelementformat.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88539" data-unique="p49ovucuh" src="https://academy.hsoub.com/uploads/monthly_2022_01/023editelementformat.thumb.gif.60ea3dd916726f3f691ae7e9eb150e7a.gif" style="width: 500px; height: auto;"></a>
</p>

<p>
	يُمكن إجراء جميع التعديلات السابقة من خلال اختيار العنصر، ثم الذهاب لقائمة <strong>تنسيق &gt; تنسيق التحديد</strong>.
</p>

<h4>
	تغيير نوع الرسم البياني
</h4>

<p>
	لتغيير نوع المخطط (شريط وعمود ودائري وخطي، ..)، يُمكن اتباع الخطوات التالية بعد تحديد المخطّط في وضع التحرير ننتقل لنافذة نوع المخطّط باستخدام إحدى الطرق التالية:
</p>

<ul>
<li>
		قائمة تنسيق &gt; نوع المخطّط.
	</li>
	<li>
		النقر فوق رمز "نوع المخطّط" في شريط أدوات التنسيق.
	</li>
</ul>
<p>
	تُتيح هذه النافذة ذات الإعدادات المتاحة ضمن تبويبٍ نوع الرسم البياني في مرشد الرسم البياني.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="88540" href="https://academy.hsoub.com/uploads/monthly_2022_01/024edittypechart.gif.bfa1d9408fa385a66bd45d3ae4d67121.gif" rel=""><img alt="024edittypechart.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="88540" data-unique="n46ik87d2" src="https://academy.hsoub.com/uploads/monthly_2022_01/024edittypechart.thumb.gif.5a36739d480fdd8a8d2e3edb58353d9a.gif" style="width: 500px; height: auto;"></a>
</p>

<h2>
	أنواع المخططات البيانية
</h2>

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

<h3>
	المخطط الخطي
</h3>

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

<p style="text-align: center;">
	<img alt="025linechart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88541" data-unique="i87gbbvdr" src="https://academy.hsoub.com/uploads/monthly_2022_01/025linechart.png.490c73141495886d876c8106098fed7f.png"></p>

<p>
	يُمكن أن نستخلص من المخطّط أن اتجاه <a href="https://academy.hsoub.com/marketing/sales/%D8%A7%D9%84%D9%85%D8%A8%D9%8A%D8%B9%D8%A7%D8%AA-%D9%88%D8%AE%D8%AF%D9%85%D8%A9-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D8%A7%D8%A1-%D9%88%D8%B9%D9%84%D8%A7%D9%82%D8%AA%D9%87%D9%85%D8%A7-%D8%A8%D8%B1%D9%8A%D8%A7%D8%AF%D8%A9-%D8%A7%D9%84%D8%A3%D8%B9%D9%85%D8%A7%D9%84-r445/" rel="">المبيعات</a> في الأشهر الأربعة الأولى من السنة في حالة ارتفاعٍ حتى يصل للذروة في شهر نيسان ليبدأ بالانخفاض حتى شهر آب ليعاود الارتفاع من جديد، حيث يُتيح لنا برنامج Calc إمكانية إدراج خط المتوسّط كما في الصورة الخط الأخضر، وذلك من خلال قائمة <strong>إدراج &gt; سطور القيمة المتوسطة</strong>، ويُعبّر عن المتوسّط الحسابي لقِيَم السلسلة.
</p>

<h3>
	المخطط العمودي
</h3>

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

<p style="text-align: center;">
	<img alt="026coulmnchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88542" data-unique="bnqvuk3ze" src="https://academy.hsoub.com/uploads/monthly_2022_01/026coulmnchart.png.7c35a233604d14dd0ddbc78f4bb00266.png"></p>

<p>
	نستطيع الحصول على المخطّط السابق عندما تكون لدينا سلسلة قِيَمٍ واحدةٍ هي المبيعات، كما يُمكن استخدام المخطّطات الشريطيّة لإظهار ترتيب سلسلةٍ محدّدةٍ من البيانات، مثلًا ترتيب الفروع حسب كمية <a href="https://academy.hsoub.com/marketing/sales/%D8%A7%D9%84%D9%85%D8%A8%D9%8A%D8%B9%D8%A7%D8%AA-%D9%88%D8%AE%D8%AF%D9%85%D8%A9-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D8%A7%D8%A1-%D9%88%D8%B9%D9%84%D8%A7%D9%82%D8%AA%D9%87%D9%85%D8%A7-%D8%A8%D8%B1%D9%8A%D8%A7%D8%AF%D8%A9-%D8%A7%D9%84%D8%A3%D8%B9%D9%85%D8%A7%D9%84-r445/" rel="">المبيعات</a>، أو ترتيب دول العالم حسب كمية الواردات من سلعةٍ معينةٍ، وتعمل المخطّطات العموديّة بطريقةٍ أمثل عندما تكون نقاط البيانات محدودةً، حتى لا تتكدّس الأعمدة والبيانات بشكلٍ غير واضحٍ.
</p>

<h3>
	المخطط العمودي المتفاوت
</h3>

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

<p style="text-align: center;">
	<img alt="027clustercuolmn.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88543" data-unique="oq91ehvuc" src="https://academy.hsoub.com/uploads/monthly_2022_01/027clustercuolmn.png.3d6b7b7ce28d4a385167439289aa773d.png"></p>

<p>
	نستطيع من خلال المخطّط موازنة مبيعات الألبسة الولادي بين المتاجر الأخرى وموازنتها مع الفئات الأخرى في نفس المتجر.
</p>

<h3>
	مخطط عمودي مكدس
</h3>

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

<p style="text-align: center;">
	<img alt="028stackedcoulmn.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88544" data-unique="gwfsvjx2a" src="https://academy.hsoub.com/uploads/monthly_2022_01/028stackedcoulmn.png.a38bc6a55b257cbb19d438ab8eccd250.png"></p>

<h3>
	مخطط دائري
</h3>

<p>
	يُمثل المخطط الدائري التوزيع أو النسبة لكلّ عنصر بياناتٍ على القيمة الإجمالية، أي تهدف المخططات الدائريّة إلى التعبير عن علاقة "جزء من الكل"، حيث تُمثّل كل الأجزاء معًا 100%، حيث تعمل المخططات الدائرية بطريقةٍ أفضل لعرض البيانات بعددٍ صغيرٍ من الفئات (2-5)، مثل أسئلة الاستطلاع بتنسيق نعم/لا، وتقسيم البيانات حسب الجنس (ذكر/أنثى)، والزائرين الجدد والعائدين إلى موقع ويب، إلخ. وفي مثالنا السابق، يُمكن تمثيل نسبة كلّ فئةٍ من إجمالي المبيعات.
</p>

<p style="text-align: center;">
	<img alt="029piechart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88545" data-unique="20njkjbag" src="https://academy.hsoub.com/uploads/monthly_2022_01/029piechart.png.186943496dbc2473dc97a5ee37cc7f1c.png"></p>

<h3>
	المخطط الشريطي
</h3>

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

<p style="text-align: center;">
	<img alt="030barchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88546" data-unique="v7bwxspka" src="https://academy.hsoub.com/uploads/monthly_2022_01/030barchart.png.503e3015d2a29d9323ae6dc6e854d0bf.png"></p>

<h3>
	مخطط المنطقة
</h3>

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

<p style="text-align: center;">
	<img alt="031chartarea.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88547" data-unique="j2dk5tz1l" src="https://academy.hsoub.com/uploads/monthly_2022_01/031chartarea.png.154bd0b85d2d8aa6693511fcab05fedb.png"></p>

<h3>
	المخطط عمود/خط
</h3>

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

<p style="text-align: center;">
	<img alt="032coulmnline.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88548" data-unique="a1b2yfwuf" src="https://academy.hsoub.com/uploads/monthly_2022_01/032coulmnline.png.53a29d207f578fc72c04983873cc9563.png"></p>

<h3>
	مخطط الانتشار (س - ص)
</h3>

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

<p style="text-align: center;">
	<img alt="033scaterchart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88549" data-unique="kntapuhp7" src="https://academy.hsoub.com/uploads/monthly_2022_01/033scaterchart.png.1bd5ca5cec07160121ad17c141076fcd.png"></p>

<h3>
	المخطط الفقاعي
</h3>

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

<p style="text-align: center;">
	<img alt="034bubblehart.png" class="ipsImage ipsImage_thumbnailed" data-fileid="88550" data-unique="exsngln7h" src="https://academy.hsoub.com/uploads/monthly_2022_01/034bubblehart.png.b000c68631801aefaaa0fa18af40b909.png"></p>

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

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

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1/" rel="">مقدمة إلى حزمة أدوات المكتب الحر LibreOffice</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">تعلّم أساسيات التعامل مع جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبرأوفيس كالك LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">592</guid><pubDate>Thu, 06 Jan 2022 15:00:00 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62A;&#x646;&#x633;&#x64A;&#x642; &#x627;&#x644;&#x634;&#x631;&#x637;&#x64A; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A-%D9%81%D9%8A-libreoffice-calc-r585/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2022_01/61d47744387e4_---LibreOffice-Calc.png.c45867da6001b241ff76f46a22779c39.png" /></p>

<p>
	تُعَد القدرة على التعامل مع <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">جداول البيانات</a> ومعالجتها واستخلاص المعلومات منها، من المهارات المهنيّة الأساسيّة في جميع حقول الأعمال المختلفة المالية منها والإداريّة والهندسيّة وغيرها، حيث تتوفّر حزمة LibreOffice <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">على برنامج Calc</a> كأحد البدائل القويّة المتاحة للتعامل مع جداول البيانات ومعالجتها وتحليلها، وتتميّز بأنها مفتوحة المصدر ومجانيةٌ ومتوافقةٌ مع البرمجيات الأكثر شيوعًا مثل حزمة مايكروسوفت أوفيس.
</p>

<h2>
	ما هو تنسيق الخلايا؟
</h2>

<p>
	يُستخدم <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r280/" rel="">تنسيق الخلايا</a> لإبراز المعلومات المهمّة في جدول البيانات بهدف تسريع قراءة البيانات، ومن الأمثلة النمطيّة على ذلك تمييز لون الخلايا باللون الأخضر والأصفر والأحمر، حيث تُميّز القِيَم السالبة على سبيل المثال بالأحمر والموجبة بالأخضر، أما الصفرية فتميز بالأصفر؛ هنا لن يهتم القارئ بقِيَم جميع الخلايا، لأن المؤشر اللوني للخلايا أكثر قابليّةً للقراءة بالنسبة للأشخاص.
</p>

<h3>
	تنسيق الخلايا Cell Format
</h3>

<p>
	هو تخصيص مظهر الخلية، ويُمكننا تنسيق الخلايا من خلال الخيارات التالية:
</p>

<ul>
<li>
		لون خلفية الخلية.
	</li>
	<li>
		شكل ولون ونوع حدود الخلية.
	</li>
	<li>
		خيارات تنسيق النص: المحاذاة الرأسيّة والأفقيّة للنصّ في الخلية، وتدوير النصّ في الخلية، واللون والتأثيرات وتظليل النصّ، ونوع الخط ونمطه (عريض ومائل).
	</li>
	<li>
		تنسيق الأرقام: هناك عدّة تنسيقاتٍ رقميةٍ، تختلف قيمة الخلية باختلاف تنسيقها (الرقم والنسبة المئويّة والعملة والتاريخ والوقت والعلمي والكسر والقيمة المنطقيّة والنصّ).
	</li>
</ul>
<h3>
	نمط الخلية Cell Style
</h3>

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

<h2>
	التعرف على التنسيق الشرطي
</h2>

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

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

	<p>
		<strong>ملاحظة</strong>: ليعمل التنسيق الشرطي بطريقةٍ صحيحةٍ، يجب التأكّد من تفعيل خاصية "AutoCalculate الحساب التلقائي" من خلال الذهاب إلى: <strong>Data &gt; احسب &gt; حساب تلقائي</strong>.
	</p>
</blockquote>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87906" href="https://academy.hsoub.com/uploads/monthly_2022_01/004data.autocalculate.png.c4316ab43197001355f329b3fa34af82.png" rel=""><img alt="004data.autocalculate.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87906" data-unique="vyjplcuu9" src="https://academy.hsoub.com/uploads/monthly_2022_01/004data.autocalculate.thumb.png.885288e7585215c362bfc0e09e24fb24.png" style=""></a>
</p>

<h2>
	كيفية إضافة وتعديل وحذف التنسيق الشرطي
</h2>

<p>
	لإضافة تنسيقٍ شرطي، نتّبع الخطوات التالية:
</p>

<ol>
<li>
		تحديد نطاق الخلايا التي سيتم تطبيق الشرط عليها.
	</li>
	<li>
		افتح مربع حوار التنسيق الشرطي، ويُمكن الوصول إليه إما من خلال شريط أدوات التنسيق نختار أيقونة "شرطي".
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87907" href="https://academy.hsoub.com/uploads/monthly_2022_01/005Toolbar.condtional.png.13cf477675ea9d7a71aa3856096fa8cc.png" rel=""><img alt="005Toolbar.condtional.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87907" data-unique="rxv378r2t" src="https://academy.hsoub.com/uploads/monthly_2022_01/005Toolbar.condtional.thumb.png.ecbeed21e6f96108555634d4d702a47f.png" style=""></a>
</p>

<p>
	أو من خلال قائمة <strong>تنسيق &gt; شرطي</strong>.
</p>

<p>
	بكلتا الحالتين ستظهر القائمة التالية:
</p>

<p style="text-align: center;">
	<img alt="006conditionalmenu.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87908" data-unique="3ywwy3edp" src="https://academy.hsoub.com/uploads/monthly_2022_01/006conditionalmenu.png.dd10d1b694be1874c8d24f033cf9faca.png" style=""></p>

<p>
	نختار منها طريقة التنسيق الشرطي المناسبة، كما يُمكن تخصيص الطريقة من خلال اختيار "أدِر" فتظهر نافذة نختار منها "أضف".
</p>

<ol start="3">
<li>
		<p>
			تظهر نافذة "التنسيق الشرطي لـ"
		</p>

		<p style="text-align: center;">
			<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87909" href="https://academy.hsoub.com/uploads/monthly_2022_01/007Conditionalformatingfor.png.e9bb8055ff51ac3513aaf52df9a8f967.png" rel=""><img alt="007Conditionalformatingfor.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87909" data-unique="34vwrox9a" src="https://academy.hsoub.com/uploads/monthly_2022_01/007Conditionalformatingfor.thumb.png.241cafa29b6bbc682693d2cf244ca811.png" style="width: 500px; height: auto;"></a>
		</p>
	</li>
</ol>
<p>
	ضِمن هذه النافذة يُمكننا إضافة أو حذف شرط أو عدّة شروطٍ على نطاقٍ واحدٍ من الخلايا كما يُمكن تعديل أولوية تطبيق كل شرطٍ بالنسبة لباقي الشروط.
</p>

<ol start="4">
<li>
		نُنشئ الشرط المناسب (سيتم توضيح خيارات إنشاء الشرط من خلال أمثلةٍ فيما يلي)، ثم ننقر على OK.
	</li>
</ol>
<h2>
	فئات وخيارات التنسيق الشرطي
</h2>

<p>
	تُتيح لنا نافذة "التنسيق الشرطي لـ" عدّة فئاتٍ من الخيارات لتخصيص الشرط، حيث سنستعرض فيما يلي هذه الفئات وبعض خياراتها المتاحة:
</p>

<h3>
	قيمة الخلية Cell value
</h3>

<p>
	تتعامل أنواع التنسيق الشرطي لهذه الفئة مع خليةٍ واحدةٍ أو نطاقٍ من الخلايا، وتتطلّب الخيارات المتاحة أحيانًا من المستخدم <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/" rel="">إدخال قيمةٍ</a> (أو صيغةٍ أو ارتباطٍ إلى خلية) في الحقل أو الحقول الخاصّة، حيث تُوازن القيمة المُدخلة بالقِيَم الموجودة ضمن نطاق الخلايا الخاضعة للتنسيق الشرطي؛ إذا تحقّق الشرط، تُنسّق الخلية وفق نمط الخلية المحدّد من قِبل المستخدم.
</p>

<p>
	<strong>مثال على ذلك</strong>: تلوين الخلايا التي قيمتها أكبر من 60 باللون الأزرق، باستخدام الخيار "is greater than"، أو تلوين الخلايا التي قيمتها أصغر من المتوسط باللون الأحمر، باستخدام الخيار "is above average".
</p>

<h4>
	مثال عملي
</h4>

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

<p>
	نود تمييز قِيَم "إجمالي الراتب المستحق" التي تزيد عن قيمة المتوسّط باللون الأخضر. سنتّبع الخطوات التالية كما في الصورة:
</p>

<ol>
<li>
		تحديد نطاق الخلايا G3:G17.
	</li>
	<li>
		فتح نافذة "التنسيق الشرطي لـ G3:G17".
	</li>
	<li>
		إنشاء الشرط المطلوب والنقر على OK.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87903" href="https://academy.hsoub.com/uploads/monthly_2022_01/001Image.example1.gif.2e9333a543096e38ec798c7fadf89572.gif" rel=""><img alt="001Image.example1.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="87903" data-unique="4o7uiao5u" src="https://academy.hsoub.com/uploads/monthly_2022_01/001Image.example1.thumb.gif.60cad85fe964ebeac4fa6c6ba653b124.gif" style="width: 650px; height: auto;"></a>
</p>

<h3>
	كل الخلايا All cells
</h3>

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

<p>
	<strong>مثال على ذلك</strong>: تلوين الخلايا حسب قيمتها، بحيث كلما كان اللون أغمق كانت القيمة أكبر، باستخدام الخيار color scale، أو تعبئة الخلية بشريطٍ متدرجٍ يُعبّر عن نسبة إنجاز المهمة، باستخدام الخيار Data Bar.
</p>

<h4>
	مثال عملي
</h4>

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

<ol>
<li>
		تحديد نطاق الخلايا H3:H17.
	</li>
	<li>
		فتح نافذة "التنسيق الشرطي لـ H3:H17" من خلال "Data Bar".
	</li>
	<li>
		إنشاء الشرط المطلوب، حيث نُدخل في الحقل المخصّص الصيغة التالية "H3&lt;65%" ثم ننقر على حسنًا.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87904" href="https://academy.hsoub.com/uploads/monthly_2022_01/002Image.exmple2.gif.8adfcdabf71445fb83dde58a7141511c.gif" rel=""><img alt="002Image.exmple2.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="87904" data-unique="beudfxyre" src="https://academy.hsoub.com/uploads/monthly_2022_01/002Image.exmple2.thumb.gif.e62642cd63249137faba7e15f0dd7653.gif" style="width: 700px; height: auto;"></a>
</p>

<h3>
	صيغة Formula
</h3>

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

<p>
	<strong>على سبيل المثال</strong>: لو كان لدينا النطاق العددي A1:A10 وأدخلنا في الحقل المخصّص A1=3000، فإن التنسيق سيُطبّق على جميع خلايا النطاق المساوية لـ 3000، كما تُتيح هذه الفئة تطبيق التنسيق الشرطي على نطاقٍ يختلف عن نطاق الشرط، فلو وددنا تلوين اسم الموظّف الذي إجمالي راتبه المستحق أكبر من 35000 باللون الأخضر مثلًا، فسيكون النطاق الخاضع للشرط هو حقل إجمالي الراتب المستحق والنطاق الخاضع للتنسيق هو اسم الموظف.
</p>

<h4>
	مثال عملي
</h4>

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

<ol>
<li>
		تحديد نطاق الخلايا B3:B17 أسماء الموظفين.
	</li>
	<li>
		فتح نافذة "التنسيق الشرطي لـ.. B3:B17"
	</li>
	<li>
		إنشاء الشرط المطلوب، حيث نُدخل في الحقل المخصّص الصيغة التالية "H3&lt;65%"، ثم ننقر على OK.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87905" href="https://academy.hsoub.com/uploads/monthly_2022_01/003Image.Example3.gif.67c3a0019b47e0eb97a9e718ba8d407d.gif" rel=""><img alt="003Image.Example3.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="87905" data-unique="q7kvxdfzx" src="https://academy.hsoub.com/uploads/monthly_2022_01/003Image.Example3.thumb.gif.f9e8cb6ecac21b36a1a1912aa2cde567.gif" style="width: 700px; height: auto;"></a>
</p>

<h3>
	تاريخ Date
</h3>

<p>
	تُتيح لنا هذه الفئة إمكانية تعيين شرطٍ للتحقّق من التاريخ في الخلايا (يجب أن يكون تنسيق الأرقام في الخلية "Date")؛ حيث تُنسّق الخلية وفق التنسيق الشرطي، عند تحقّق الشرط.
</p>

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

	<p>
		<strong>ملاحظة</strong>: يجب أن يكون التاريخ في الخلية بتنسيق التاريخ الكامل كما في 21.8.1998 (DD.MM.YYYY)، وإلا فلن يعمل التنسيق الشرطي.
	</p>
</blockquote>

<p>
	<strong>مثال على ذلك</strong>: جدول بياناتٍ يحوي طلبات شحنٍ للعديد من المواد الغذائية ونود تظليل قِيَم التاريخ في حقل "موعد تسليم الطلب"، وفي حال كان موعد التسليم خلال أسبوع من تاريخ اليوم الحالي، فيُمكن إنجاز ذلك من خلال الخيار "Next week"، أو لدينا برنامجٌ زمنيٌ لإدارة مشروع ونود تظليل قِيَم التواريخ في حقل "تاريخ بداية المهمة" في حال كانت المهمّة ستبدأ خلال الشهر الحالي، يمكن إنجاز هذا من خلال الخيار "This month".
</p>

<h4>
	مثال عملي
</h4>

<p>
	لدينا جدول بيانات ذاتيات الموظفين في الشركة، ويحوي الجدول حقل "تاريخ التوظيف"، كما نود تمييز تواريخ التوظيف التي تمّت خلال السنة الماضية والحالية.
</p>

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

<ol>
<li>
		تحديد نطاق الخلايا F3:F17 تاريخ التوظيف.
	</li>
	<li>
		فتح نافذة "التنسيق الشرطي لـ".
	</li>
	<li>
		إنشاء الشرط الأول المطلوب، حيث الفئة "التاريخ Date" والخيار "السنة الماضية Last Year" واختيار تنسيقٍ مناسبٍ.
	</li>
	<li>
		إنشاء الشرط الثاني المطلوب، حيث الفئة "التاريخ Date" والخيار "هذه السنة This Year" واختيار تنسيقٍ مناسبٍ ومختلفٍ عن تنسيق الشرط الأول.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87909" href="https://academy.hsoub.com/uploads/monthly_2022_01/007Conditionalformatingfor.png.e9bb8055ff51ac3513aaf52df9a8f967.png" rel=""><img alt="007Conditionalformatingfor.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87909" data-unique="11leyr1mw" src="https://academy.hsoub.com/uploads/monthly_2022_01/007Conditionalformatingfor.thumb.png.241cafa29b6bbc682693d2cf244ca811.png" style="width: 500px; height: auto;"></a>
</p>

<h2>
	كيفية تعديل وحذف التنسيق الشرطي
</h2>

<p>
	يُمكن الوصول لنافذة "أدِر التنسيقات الشرطية Mange conditional Formatting" من خلال أيقونة التنسيق الشرطي في شريط أدوات التنسيق، ثم اختيار أدِر.
</p>

<p style="text-align: center;">
	<img alt="008mange.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87910" data-unique="atpvsi152" src="https://academy.hsoub.com/uploads/monthly_2022_01/008mange.png.ccf2343658788879bc05b1b3858c6b3a.png" style=""></p>

<p>
	يُتيح لنا برنامج Calc من خلالها إدارة التنسيقات الشرطيّة التي أُنشِئت، مثل حذفها أو تعديل الشرط أو النطاق أو نمط التنسيق أو إنشاء تنسيقاتٍ جديدة، وفقًا لما يلي:
</p>

<ol>
<li>
		اختيار نطاقٍ من قائمة <strong>نطاق Range</strong> والنقر فوق <strong>حرّر Edit</strong> لتعديل التنسيق الشرطي من خلال نافذة "التنسيق الشرطي لـ".
	</li>
	<li>
		تحديد نطاقٍ من قائمة <strong>نطاق Range</strong> والنقر فوق <strong>إزالة Remove</strong>، لحذف التنسيق الشرطي.
	</li>
	<li>
		النقر فوق <strong>إضافة Add</strong> لإنشاء تنسيقٍ شرطيٍّ جديدٍ.
	</li>
	<li>
		بعد إجراء التعديلات ننقر <strong>حسنًا Ok</strong> لحفظ التغييرات وإغلاق النافذة.
	</li>
</ol>
<p style="text-align: center;">
	<img alt="009mangecondtionalformatting.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87911" data-unique="72zfctk6a" src="https://academy.hsoub.com/uploads/monthly_2022_01/009mangecondtionalformatting.png.03b4e0eabda73aac560ad292df6ee404.png" style="width: 450px; height: auto;"></p>

<h2>
	كيفية نسخ التنسيق الشرطي
</h2>

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

<h3>
	الطريقة اﻷولى
</h3>

<p>
	عن طريق أداة "استنسخ التنسيق Clone Formatting" من خلال الآتي:
</p>

<ol>
<li>
		نُحدّد نطاق الخلايا الذي نرغب باستنساخ التنسيق الشرطي منه.
	</li>
	<li>
		ننقر على أيقونة الأداة في شريط الأدوات نقرًا مزدوجًا لنتمكّن من استنساخ التنسيق إلى عدّة نطاقات.
	</li>
	<li>
		نُحدّد النطاقات المُستهدفة.
	</li>
	<li>
		نضغط Esc للخروج من الأداة.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87912" href="https://academy.hsoub.com/uploads/monthly_2022_01/010clone.gif.d15795276cd33f8abb65c0e941b7737e.gif" rel=""><img alt="010clone.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="87912" data-unique="es5oeadhu" src="https://academy.hsoub.com/uploads/monthly_2022_01/010clone.thumb.gif.56d6616bb55ef1447427535f4f958e54.gif" style="width: 700px; height: auto;"></a>
</p>

<h3>
	الطريقة الثانية
</h3>

<p>
	عن طريق نافذة "النسخ الخاص Paste Special" من خلال الآتي:
</p>

<ol>
<li>
		نُحدّد نطاق الخلايا الذي نرغب باستنساخ التنسيق الشرطي منه ثم ننسخه.
	</li>
	<li>
		نُحدّد النطاق المستهدف وننقر بزرّ الماوس الأيمن فوق التحديد، فتظهر قائمة نختار منها نسخ &gt; نسخ خاص.
	</li>
	<li>
		تظهر نافذة "النسخ الخاص Paste Special"، وحينها نلغي جميع الخيارات باستثناء التنسيقات، ثم ننقر <strong>حسنًا OK</strong>.
	</li>
</ol>
<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87913" href="https://academy.hsoub.com/uploads/monthly_2022_01/011specialpaste.gif.24fbbc547b061db1a36b3b2abdc5321b.gif" rel=""><img alt="011specialpaste.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="87913" data-unique="s02j78lpa" src="https://academy.hsoub.com/uploads/monthly_2022_01/011specialpaste.thumb.gif.694ddca89127b9b639ea30890a3fb8b4.gif" style="width: 750px; height: auto;"></a>
</p>

<h3>
	الطريقة الثالثة
</h3>

<p>
	عن طريق نافذة "أدِر التنسيقات الشرطية" باتباع الآتي:
</p>

<ol>
<li>
		الذهاب لنافذة إدارة التنسيقات الشرطيّة وتحديد التنسيق الذي نود توسيع نطاقه.
	</li>
	<li>
		والنقر فوق "حرّر Edit".
	</li>
	<li>
		تظهر نافذة "التنسيق الشرطي لـ" نذهب لحقل النطاق في الأسفل، حيث نستطيع توسيع النطاق كتابيًا (مثلًا A1:A60 أو A1:B40، وللنطاقات المتعدّدة A1:B30;D1:D20)، أو توسيع النطاق من خلال زر تقليص واختيار النطاقات المطلوبة.
	</li>
	<li>
		بعد الانتهاء، ننقر <strong>حسنًا OK</strong> للنافذة الأولى والثانية.
	</li>
</ol>
<p>
	يمكنك أن تلاحظ فيما سبق أن نافذة التنسيق الشرطي لا تُتيح للمستخدم سوى إمكانية استخدام نمطٍ Style مخصّصٍ محفوظٍ سابقًا من قِبل المستخدم أو مُضمّن بالبرنامج، أي لا يُمكن للمستخدم تحديد لون الخط وشكله وقياسه ولون خلفية الخلية وحدودها أثناء إعداد التنسيقات الشرطية، فكيف يمكن للمستخدم أن يُعِدّ نمطًا مخصّصًا لاستخدامه فيما بعد في التنسيق الشرطي؟
</p>

<p>
	ببساطة، نُحدّد خليةً ونُنسقها بالتنسيقات المناسبة، ثم ننتقل إلى قائمة الأنماط ثم الخيار New Style From selection.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87914" href="https://academy.hsoub.com/uploads/monthly_2022_01/014newstyle.png.33c00127da9ba7b5a92ef0693560f455.png" rel=""><img alt="014newstyle.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87914" data-unique="qzxuj9iqx" src="https://academy.hsoub.com/uploads/monthly_2022_01/014newstyle.thumb.png.e467ae731e779557cde335cb6b7f0a64.png" style=""></a>
</p>

<p>
	تظهر نافذة New Style From selection تطلب إدخال اسم النمط الجديد، عندها نُدخل الاسم المناسب وننقر حسنًا.
</p>

<p style="text-align: center;">
	<img alt="015newstyle.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87915" data-unique="vea4r2jeq" src="https://academy.hsoub.com/uploads/monthly_2022_01/015newstyle.png.0cda6288f7f142698fe5a436a47e0c47.png" style="width: 350px; height: auto;"></p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="87902" href="https://academy.hsoub.com/uploads/monthly_2022_01/0016hsoubstyle.png.5c9cfe5056762aa5ac999a1cb794b5fa.png" rel=""><img alt="0016hsoubstyle.png" class="ipsImage ipsImage_thumbnailed" data-fileid="87902" data-unique="t69iaja7o" src="https://academy.hsoub.com/uploads/monthly_2022_01/0016hsoubstyle.thumb.png.829ec844ab3f0b2b084eacbbdf5d6cbb.png" style="width: 500px; height: auto;"></a>
</p>

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

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

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%8A-%D9%84%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%81%D9%8A-microsoft-excel-r48/" rel="">التنسيق الشرطي للخلايا في Microsoft Excel</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">تعرّف على معالج جداول البيانات LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">585</guid><pubDate>Sun, 02 Jan 2022 15:00:00 +0000</pubDate></item><item><title>&#x623;&#x62A;&#x645;&#x62A;&#x629; &#x62D;&#x641;&#x638; &#x623;&#x648;&#x631;&#x627;&#x642; &#x644;&#x64A;&#x628;&#x631; &#x623;&#x648;&#x641;&#x64A;&#x633; &#x643;&#x627;&#x644;&#x643; &#x628;&#x62A;&#x646;&#x633;&#x64A;&#x642; PDF &#x628;&#x627;&#x633;&#x62A;&#x639;&#x645;&#x627;&#x644; &#x627;&#x644;&#x645;&#x627;&#x643;&#x631;&#x648;</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%AD%D9%81%D8%B8-%D8%A3%D9%88%D8%B1%D8%A7%D9%82-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-pdf-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-r571/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_12/61afb33bb9754_-------PDF.png.14854e3b397fa1ec2463dc60dc2bb087.png" /></p>

<p>
	سنشرح في هذا المقال كيفية التصدير أو الحفظ بتنسيق PDF سواءً لكامل الملف أو لمجال محدَّد من أوراق ليبر أوفيس كالك باستخدام الماكرو.
</p>

<p>
	هذا المقال جزء من سلسلة مقالات حول إنشاء ماكرو في ليبر أوفيس كالك، فهرس السلسلة:
</p>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبر أوفيس كالك LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AD%D8%AA%D9%88%D9%8A%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%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-r567/" rel="">معالجة محتويات خلايا ليبر أوفيس كالك باستخدام الماكرو</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AC%D8%A7%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r568/" rel="">معالجة مجال من الخلايا باستخدام الماكرو في ليبر أوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D9%88%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D9%81%D8%AA%D8%AD-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%85%D9%86-%D8%AE%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-r569/" rel="">استخدام عناصر التحكم بالنماذج ونافذة فتح الملفات من خلال الماكرو في ليبر أوفيس</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D9%85%D8%B1%D8%A8%D8%B9-%D8%A7%D9%84%D8%AD%D9%88%D8%A7%D8%B1-%D9%88%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r570/" rel="">التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبر أوفيس كالك</a>
	</li>
	<li>
		أتمتة حفظ أوراق ليبر أوفيس كالك بتنسيق PDF باستعمال الماكرو
	</li>
</ul>
<h2>
	التصدير أو الحفظ بتنسيق PDF في أوراق ليبر أوفيس كالك باستخدام الماكرو
</h2>

<p>
	سنوضح فيما يلي كيفية حفظ ورقة ليبر أوفيس كالك LibreOffice Calc مباشرة كملف pdf باستخدام الماكرو، إذ تُستخدَم هذه الميزة البسيطة في العديد من مهام الأتمتة.
</p>

<h3>
	كتابة الماكرو
</h3>

<p>
	لنطلق على الدالة التي ستجري هذه العملية الاسم <code>exportToPDF()‎</code>. عرّف أولًا كائنين يحتفظ أحدهما بمستند كالك ويُستخدَم الكائن الآخر لتنفيذ الإجراءات.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_6" style="">
<span class="pln">dim document </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
dim dispatcher </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">

document </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="typ">Frame</span><span class="pln">
dispatcher </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.frame.DispatchHelper"</span><span class="pun">)</span></pre>

<p>
	أنشئ ملفًا فارغًا باستخدام الدالة <code>Open</code>. لاحظ أن المسار هو مسار نظام الملفات، بسبب وجود البادئة <code>file://‎</code>، ثم أغلق الملف بعد إنشائه.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_8" style="">
<span class="pln">path </span><span class="pun">=</span><span class="str">"file:///home/arindam/sheet1.pdf"</span><span class="pln">
</span><span class="typ">Open</span><span class="pln"> path </span><span class="typ">For</span><span class="pln"> </span><span class="typ">Append</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="com">#1</span><span class="pln">
</span><span class="typ">Close</span><span class="pln"> </span><span class="com">#1</span></pre>

<p>
	أنشئ الآن مصفوفة بالحجم 1 للاحتفاظ بقيمة خاصية التصدير بتنسيق pdf، ثم املأ هذه الخاصية بمصفوفة الاسم "URL" مع مسار الملف الذي أنشأناه للتو.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_6284_10" style="">
<span class="pln">dim args1</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> as </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
args1</span><span class="pun">(</span><span class="lit">0</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">"URL"</span><span class="pln">
args1</span><span class="pun">(</span><span class="lit">0</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">"file:///home/arindam/sheet1.pdf"</span></pre>

<p>
	أخيرًا، استدعِ التابع <code>executeDispatch</code> لوضع محتوى الورقة 1 في ملف pdf واحفظه.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_12" style="">
<span class="pln">dispatcher</span><span class="pun">.</span><span class="pln">executeDispatch</span><span class="pun">(</span><span class="pln">document</span><span class="pun">,</span><span class="pln"> </span><span class="str">".uno:ExportDirectToPDF"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> args1</span><span class="pun">())</span></pre>

<p>
	الدالة الكاملة موضَّحة أدناه:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_6284_14" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">ExportToPDF</span><span class="pun">()</span><span class="pln">
   dim document as object
   dim dispatcher as object

   document </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="typ">Frame</span><span class="pln">
   dispatcher </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.frame.DispatchHelper"</span><span class="pun">)</span><span class="pln">
   </span><span class="str">'</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">
   path </span><span class="pun">=</span><span class="str">"file:///home/arindam/sheet1.pdf"</span><span class="pln">
   </span><span class="typ">Open</span><span class="pln"> path </span><span class="typ">For</span><span class="pln"> </span><span class="typ">Append</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="com">#1</span><span class="pln">
   </span><span class="typ">Close</span><span class="pln"> </span><span class="com">#1</span><span class="pln">

   dim args1</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> as </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
   args1</span><span class="pun">(</span><span class="lit">0</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">"URL"</span><span class="pln">
   args1</span><span class="pun">(</span><span class="lit">0</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">"file:///home/arindam/sheet1.pdf"</span><span class="pln">  </span><span class="str">'</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">

   dispatcher</span><span class="pun">.</span><span class="pln">executeDispatch</span><span class="pun">(</span><span class="pln">document</span><span class="pun">,</span><span class="pln"> </span><span class="str">".uno:ExportDirectToPDF"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> args1</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>
	تشغيل دالة الحفظ بتنسيق pdf
</h3>

<p>
	افتح <a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1//" rel="">ليبر أوفيس</a> كالك وأنشئ ماكرو وضَع فيه الدالة السابقة، ثم اكتب أي شيء في الورقة 1 كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84731" href="https://academy.hsoub.com/uploads/monthly_2021_12/11_LibreOffice-CALC-Save-As-PDF-Macro-Sheet.png.02f65eeda248dec6952b978418a2e2a8.png" rel=""><img alt="11_LibreOffice-CALC-Save-As-PDF-Macro-Sheet.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84731" data-unique="73po17qi1" src="https://academy.hsoub.com/uploads/monthly_2021_12/11_LibreOffice-CALC-Save-As-PDF-Macro-Sheet.png.02f65eeda248dec6952b978418a2e2a8.png"></a>
</p>

<h3>
	تشغيل الماكرو
</h3>

<p>
	يمكنك رؤية محتوى الورقة 1 محفوظًا في المجلد المحدَّد المذكور في الماكرو السابق، حيث يوضّح الشكل التالي محتوى ملف pdf الذي أنشأناه باستخدام هذا الماكرو:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84732" href="https://academy.hsoub.com/uploads/monthly_2021_12/12_LibreOffice-Save-As-PDF-Macro.png.380ce5571c8ef2211510bb3bc00786af.png" rel=""><img alt="12_LibreOffice-Save-As-PDF-Macro.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84732" data-unique="qhrc345ex" src="https://academy.hsoub.com/uploads/monthly_2021_12/12_LibreOffice-Save-As-PDF-Macro.png.380ce5571c8ef2211510bb3bc00786af.png" style="width: 750px; height: auto;"></a>
</p>

<h2>
	التصدير أو الحفظ بتنسيق PDF لمجال محدَّد من أوراق ليبر أوفيس كالك باستخدام الماكرو
</h2>

<p>
	يُعَد تصدير محتوى ورقة ليبر أوفيس إلى PDF ضروريًا بسبب الاستخدام الواسع لملفات PDF لتوزيعها ولإعداد التقارير وما إلى ذلك. أوضحنا سابقًا كيفية تصدير محتوى ورقة إلى ملف pdf، وسنوضّح الآن كيفية تصدير مجال معين (مثل A1: B2) إلى ملف pdf.
</p>

<p>
	يجب أن يحتوي ملف pdf على لون وقيم مجال الخلايا من A1 إلى I3 الموضَّحة أدناه، ويجب أن يحتوي اسم ملف pdf على التاريخ الحالي واسم الورقة (أي "mySheet" في هذا المثال) وقيمة ثابتة من خلية (أي الخلية B5 في مثالنا).
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84733" href="https://academy.hsoub.com/uploads/monthly_2021_12/13_Source-LO-Sheet.png.6159a14a582430903ad0fcdf69e78f04.png" rel=""><img alt="13_Source-LO-Sheet.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84733" data-unique="0jyah44i2" src="https://academy.hsoub.com/uploads/monthly_2021_12/13_Source-LO-Sheet.thumb.png.4ed1454887a8f87ab1e69040e32badc8.png" style="width: 800px; height: auto;"></a>
</p>

<h3>
	تفاصيل الماكرو
</h3>

<p>
	يحضّرهذا الماكرو أولًا اسم ملف pdf ديناميكيًا بناءً على قيمة معينة كما هو موضّح أدناه، حيث يتكون اسم ملف pdf من اسم الورقة وقيمة من الخلية B5 والتاريخ.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_19" style="">
<span class="pln">  dim fileName
   fileName </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="typ">Name</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> _
   </span><span class="str">"_ratie_"</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"B5"</span><span class="pun">).</span><span class="typ">String</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">Replace</span><span class="pun">(</span><span class="typ">Date</span><span class="pun">,</span><span class="str">"/"</span><span class="pun">,</span><span class="str">"-"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="str">".pdf"</span></pre>

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

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_23" style="">
<span class="pln">fileName </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">getCurrentController</span><span class="pun">.</span><span class="pln">getActiveSheet</span><span class="pun">.</span><span class="typ">Name</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> _</span></pre>

<p>
	أنشئ كائن <code>Frame</code> والكائن المرسِل dispatcher إلى الخدمة <code>com.sun.star.frame.DispatchHelper</code> التي تساعد في تصدير ملف pdf عبر الدالة.
</p>

<p>
	أنشئ ملفًا فارغًا في أيّ مسار ثم أغلق الملف.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_25" style="">
<span class="pln">  </span><span class="str">' غيّر المسار حسب احتياجاتك
   path ="file:///home/arindam/" &amp; fileName
   Open path For Append As #1
   Close #1</span></pre>

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

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_27" style="">
<span class="pln">  document </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="typ">Frame</span><span class="pln">
   dispatcher </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.frame.DispatchHelper"</span><span class="pun">)</span><span class="pln">

   oSheet </span><span class="pun">=</span><span class="pln">  </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="pln">getActiveSheet</span><span class="pun">()</span><span class="pln">
   oCellRange </span><span class="pun">=</span><span class="pln"> oSheet</span><span class="pun">.</span><span class="pln">getCellRangeByName</span><span class="pun">(</span><span class="str">"A1:I3"</span><span class="pun">)</span><span class="pln">

   dim aFilterData</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
   aFilterData</span><span class="pun">(</span><span class="lit">0</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">"Selection"</span><span class="pln">
   aFilterData</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> oCellRange

   dim args1</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
   args1</span><span class="pun">(</span><span class="lit">0</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">"URL"</span><span class="pln">
   args1</span><span class="pun">(</span><span class="lit">0</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">"file:///home/arindam/"</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> fileName  </span><span class="str">' غيّر المسار حسب احتياجاتك

   args1(1).Name = "FilterData"
   args1(1).Value = aFilterData()</span></pre>

<p>
	مرّر الآن هذا الوسيط إلى الدالة <code>executeDispatch</code> كوسيط لها كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_29" style="">
<span class="pln">dispatcher</span><span class="pun">.</span><span class="pln">executeDispatch</span><span class="pun">(</span><span class="pln">document</span><span class="pun">,</span><span class="pln"> </span><span class="str">".uno:ExportDirectToPDF"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> args1</span><span class="pun">())</span></pre>

<h3>
	تشغيل الماكرو
</h3>

<p>
	إليك ملف pdf الذي أنشاناه مع محتويات مجال الأوراق:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84734" href="https://academy.hsoub.com/uploads/monthly_2021_12/14_PDF-File-Created-After-Run.png.ed744d8eee70722255955ede8a8fe301.png" rel=""><img alt="14_PDF-File-Created-After-Run.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84734" data-unique="syngd21fa" src="https://academy.hsoub.com/uploads/monthly_2021_12/14_PDF-File-Created-After-Run.png.ed744d8eee70722255955ede8a8fe301.png" style="width: 650px; height: auto;"></a>
</p>

<p style="text-align: center;">
	ملف PDF المُنشَأ بعد التشغيل
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84735" href="https://academy.hsoub.com/uploads/monthly_2021_12/15_Run-pdf-Contents.png.0ffd462d4b4d96b4091ab54e2e83f9f1.png" rel=""><img alt="15_Run-pdf-Contents.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84735" data-unique="27awvcrrz" src="https://academy.hsoub.com/uploads/monthly_2021_12/15_Run-pdf-Contents.png.0ffd462d4b4d96b4091ab54e2e83f9f1.png" style="width: 700px; height: auto;"></a>
</p>

<p style="text-align: center;">
	محتويات ملف pdf
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_6284_34" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">ExportRangeToPDF</span><span class="pun">()</span><span class="pln">
   dim document </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
   dim dispatcher </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
   dim fileName
   fileName </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="typ">Name</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> _
                       </span><span class="str">"_ratie_"</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">  </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"B5"</span><span class="pun">).</span><span class="typ">String</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">Replace</span><span class="pun">(</span><span class="typ">Date</span><span class="pun">,</span><span class="str">"/"</span><span class="pun">,</span><span class="str">"-"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="str">".pdf"</span><span class="pln">
   document </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="typ">Frame</span><span class="pln">
   dispatcher </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.frame.DispatchHelper"</span><span class="pun">)</span><span class="pln">

   oSheet </span><span class="pun">=</span><span class="pln">  </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="pln">getActiveSheet</span><span class="pun">()</span><span class="pln">
   oCellRange </span><span class="pun">=</span><span class="pln"> oSheet</span><span class="pun">.</span><span class="pln">getCellRangeByName</span><span class="pun">(</span><span class="str">"A1:I3"</span><span class="pun">)</span><span class="pln">

   dim aFilterData</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
   aFilterData</span><span class="pun">(</span><span class="lit">0</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">"Selection"</span><span class="pln">
   aFilterData</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> oCellRange

   </span><span class="str">' غيّر المسار حسب احتياجاتك
   path ="file:///home/arindam/" &amp; fileName
   Open path For Append As #1
   Close #1

   dim args1(1) as new com.sun.star.beans.PropertyValue
   args1(0).Name = "URL"
   args1(0).Value = "file:///home/arindam/" &amp; fileName  '</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">

   args1</span><span class="pun">(</span><span class="lit">1</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">"FilterData"</span><span class="pln">
   args1</span><span class="pun">(</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"> aFilterData</span><span class="pun">()</span><span class="pln">

   dispatcher</span><span class="pun">.</span><span class="pln">executeDispatch</span><span class="pun">(</span><span class="pln">document</span><span class="pun">,</span><span class="pln"> </span><span class="str">".uno:ExportDirectToPDF"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> args1</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>
	ترجمة -وبتصرُّف- للمقالان <a href="https://www.debugpoint.com/2014/10/export-or-save-as-pdf-in-libreoffice-calc-sheets-using-macro/" rel="external nofollow">Export or Save As PDF in LibreOffice Calc Sheets using Macro</a> و <a href="https://www.debugpoint.com/2015/08/export-or-save-as-pdf-a-specific-range-in-libreoffice-calc-sheets-using-macro/" rel="external nofollow">Export or Save As PDF A Specific Range in LibreOffice Calc Sheets using Macro</a> لصاحبها Arindam.
</p>

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">تعرّف على معالج جداول البيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية تحرير البيانات في LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">571</guid><pubDate>Tue, 07 Dec 2021 20:06:38 +0000</pubDate></item><item><title>&#x627;&#x644;&#x62A;&#x639;&#x627;&#x645;&#x644; &#x645;&#x639; &#x639;&#x646;&#x627;&#x635;&#x631; &#x627;&#x644;&#x62A;&#x62D;&#x643;&#x645; &#x628;&#x645;&#x631;&#x628;&#x639; &#x627;&#x644;&#x62D;&#x648;&#x627;&#x631; &#x648;&#x645;&#x639;&#x627;&#x644;&#x62C;&#x629; &#x627;&#x644;&#x646;&#x645;&#x627;&#x630;&#x62C; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x627;&#x644;&#x645;&#x627;&#x643;&#x631;&#x648; &#x641;&#x64A; &#x644;&#x64A;&#x628;&#x631; &#x623;&#x648;&#x641;&#x64A;&#x633; &#x643;&#x627;&#x644;&#x643;</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D9%85%D8%B1%D8%A8%D8%B9-%D8%A7%D9%84%D8%AD%D9%88%D8%A7%D8%B1-%D9%88%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r570/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_12/61afa7d6e5d6a_------------.png.2c15af4f32751ef04837c57472bc3bf6.png" /></p>

<p>
	سنوضَح في هذا المقال كيفية إضافة عناصر التحكم بمربع الحوار Dialog في ليبر أوفيس كالك LibreOffice Calc والتعامل مع عناصر التحكم المختلفة في نموذج باستخدام الماكرو Macro.
</p>

<p>
	هذا المقال جزء من سلسلة مقالات حول إنشاء ماكرو في ليبر أوفيس كالك، فهرس السلسلة:
</p>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبر أوفيس كالك LibreOffice Calc</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AD%D8%AA%D9%88%D9%8A%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%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-r567/" rel="">معالجة محتويات خلايا ليبر أوفيس كالك باستخدام الماكرو</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AC%D8%A7%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r568/" rel="">معالجة مجال من الخلايا باستخدام الماكرو في ليبر أوفيس كالك</a>.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D9%88%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D9%81%D8%AA%D8%AD-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%85%D9%86-%D8%AE%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-r569/" rel="">استخدام عناصر التحكم بالنماذج ونافذة فتح الملفات من خلال الماكرو في ليبر أوفيس</a>.
	</li>
	<li>
		التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبر أوفيس كالك.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%AD%D9%81%D8%B8-%D8%A3%D9%88%D8%B1%D8%A7%D9%82-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-pdf-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-r571/" rel="">أتمتة حفظ أوراق ليبر أوفيس كالك بتنسيق PDF باستعمال الماكرو</a>.
	</li>
</ul>
<h2>
	التعامل مع عناصر التحكم بمربع الحوار باستخدام الماكرو
</h2>

<p>
	سنوضّح كيفية إنشاء مربع حوار Dialog في <a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1//" rel="">ليبر أوفيس LibreOffice</a> وإضافة عناصر تحكم متنوعة إليه مثل مربع النص TextBox وقراءة قيم عناصر التحكم باستخدام الماكرو.
</p>

<h3>
	إضافة مربع حوار
</h3>

<p>
	يمكنك إضافة مربع حوار في ليبر أوفيس كالك من قائمة أدوات Tools ثم ماكرو Macros ثم تنظيم المربعات الحوارية Organize Dialogs.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84717" href="https://academy.hsoub.com/uploads/monthly_2021_12/01_CreateDialogFromMenu.png.8d083b49f1c1cbc5caafb83baec38469.png" rel=""><img alt="01_CreateDialogFromMenu.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84717" data-unique="wfiuemgkn" src="https://academy.hsoub.com/uploads/monthly_2021_12/01_CreateDialogFromMenu.thumb.png.e2149a1db650ab281b862d667595fcef.png"></a>
</p>

<p style="text-align: center;">
	إنشاء مربع حوار من القائمة
</p>

<p>
	ستفتح بعد ذلك نافذة منظم الماكروهات الأساسية Basic Macro Organizer الموضَحة أدناه. انقر على زر جديد New في تبويب "الحواريات Dialogs".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84718" href="https://academy.hsoub.com/uploads/monthly_2021_12/02_Create-a-New-Dialog.png.02a488422afa3f8b6f977f6611192a9c.png" rel=""><img alt="02_Create-a-New-Dialog.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84718" data-unique="zvp3avd6o" src="https://academy.hsoub.com/uploads/monthly_2021_12/02_Create-a-New-Dialog.png.02a488422afa3f8b6f977f6611192a9c.png"></a>
</p>

<p style="text-align: center;">
	إنشاء مربع حوار جديد
</p>

<p>
	سمِّ مربع الحوار في نافذة حواري جديد New Dialog المنبثقة. استخدم الاسم الافتراضي Dialog1، ثم اضغط موافق OK.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84719" href="https://academy.hsoub.com/uploads/monthly_2021_12/03_NewDialog.png.ae43b448b240d5e2ff896e022ed9275a.png" rel=""><img alt="03_NewDialog.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84719" data-unique="r20txdxuw" src="https://academy.hsoub.com/uploads/monthly_2021_12/03_NewDialog.png.ae43b448b240d5e2ff896e022ed9275a.png"></a>
</p>

<p style="text-align: center;">
	مربع حوار جديد
</p>

<p>
	يمكنك رؤية مربع الحوار Dialog1 ضمن حواراتي My Dialogs ثم Standard ثم Dialog1.
</p>

<h3>
	إضافة عنصر التحكم بمربع نص TextBox
</h3>

<p>
	انقر على تحرير Edit مع تحديد Dialog1 في نافذة منظم الماكروهات الأساسية.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84720" href="https://academy.hsoub.com/uploads/monthly_2021_12/04_EditDialog.png.d38533225cdebdb88be3388cc466a171.png" rel=""><img alt="04_EditDialog.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84720" data-unique="22k9fgtw9" src="https://academy.hsoub.com/uploads/monthly_2021_12/04_EditDialog.png.d38533225cdebdb88be3388cc466a171.png"></a>
</p>

<p style="text-align: center;">
	تحرير مربع الحوار
</p>

<p>
	سيفتح محرّر مربع الحوار، ثم يجب إضافة بعض عناصر التحكم، حيث سنضيف مربع نص وزر.
</p>

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

<p>
	يجب أن يبدو مربع الحوار كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84721" href="https://academy.hsoub.com/uploads/monthly_2021_12/05_TheDialog.png.51efbc6ca9af03e1b53d461330e1108d.png" rel=""><img alt="05_TheDialog.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84721" data-unique="dur4z6kqz" src="https://academy.hsoub.com/uploads/monthly_2021_12/05_TheDialog.png.51efbc6ca9af03e1b53d461330e1108d.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84722" href="https://academy.hsoub.com/uploads/monthly_2021_12/06_DialogWithProperties.png.288650fba471b12467c9d8d8642f3037.png" rel=""><img alt="06_DialogWithProperties.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84722" data-unique="pmlnrhbvd" src="https://academy.hsoub.com/uploads/monthly_2021_12/06_DialogWithProperties.thumb.png.097feff1a9f8dcfa2e4689c4b13adff7.png"></a>
</p>

<p>
	أصبح مربع الحوار جاهزًا، إذًا لنكتب الماكرو.
</p>

<h3>
	شيفرة الماكرو
</h3>

<p>
	سنعرض كيفية فتح مربع الحوار باستخدام ماكرو ليبر أوفيس كالك، وقراءة محتويات مربع النص ومحتوى خلية من الورقة 1، ثم سنعرض محتوى مربع النص ومحتويات الخلية في مربع رسالة بعد النقر على الزر.
</p>

<p>
	انتقل إلى محرّر الماكرو (انقر على تبويب Module1) وأنشئ دالتين على النحو التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3967_8" style="">
<span class="typ">Dim</span><span class="pln"> oDialog1 </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">StartDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="str">' Code for initiating and showing the dialog
End Sub

Sub readDialog1()
    '</span><span class="pln"> </span><span class="typ">Read</span><span class="pln"> the content 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

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

<p>
	سنحمّل مكتبة الأدوات Tools في الدالة <code>StartDialog1()‎</code>. تُنفَّذ المكتبات كواجهات UNO وليس كخدمات UNO وفقًا لتصميم ليبر أوفيس وأوبن أوفيس الحالي، ولا تُحمَّل جميع المكتبات الأساسية عند بدء تشغيل ليبر أوفيس / أوبن أوفيس لتوفير الوقت. إذا أنشأت مكتبتك الخاصة مثل Library1، فيجب تحميل المكتبة صراحةً لتحديد الدوال التي يعرّفها المستخدم، حيث يمكنك استخدام الخصائص المبنية مسبقًا BasicLibraries.LoadLibrary لتحميل أيّ مكتبة.
</p>

<p>
	سنستخدم مكتبة ليبر أوفيس / أوبن أوفيس المُعرَّفة مسبقًا "Tools" مع الشيفرة الآتية، حيث ستحمِّل الخاصية LoadLibrary مكتبة الأدوات "Tools" ثم سنعرض مربع الحوار المُنشَأ باستخدام الدالة <code>LoadDialog()‎</code> والدالة <code>Execute()‎</code>.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3967_12" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">StartDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
    oDialog1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">LoadDialog</span><span class="pun">(</span><span class="str">"Standard"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Dialog1"</span><span class="pun">)</span><span class="pln">
    oDialog1</span><span class="pun">.</span><span class="typ">Execute</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_3967_14" style="">
<span class="pln">   </span><span class="typ">DialogLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Standard"</span><span class="pun">)</span><span class="pln">
   oDialog </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreateUnoDialog</span><span class="pun">(</span><span class="typ">DialogLibraries</span><span class="pun">.</span><span class="typ">Standard</span><span class="pun">.</span><span class="typ">Dialog1</span><span class="pun">)</span></pre>

<p>
	سنقرأ الآن محتوى مربع نص TextBox ومحتوى الخلية الأولى من الورقة 1 في كالك أي الخلية A1. للحصول على عنصر تحكم. استخدم الدالة <code>(اسم عنصر التحكم) GetControl</code> الخاصة بكائن مربع الحوار، ثم يمكنك استخدام الخاصيات المتاحة المتعددة، مثل استخدام خاصية النص <code>Text()‎</code> الخاصة بعنصر التحكم لإدخال نص في مربع نص Textbox.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3967_18" style="">
<span class="typ">Sub</span><span class="pln"> readDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> cell_val
    oT1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"TextField1"</span><span class="pun">)</span><span class="pln">
    cell_val </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln">
    msgbox cell_val</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">13</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="str">"Value from controls: "</span><span class="pln">  </span><span class="pun">&amp;</span><span class="pln"> oT1</span><span class="pun">.</span><span class="typ">Text</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<p>
	يجب إسناد الدالة <code>readDialog1()‎</code> إلى حدث النقر على الزر قبل تشغيل الماكرو من خلال الرجوع إلى محرّر مربع الحوار وتحديد الزر، ثم حدّد تبويب الأحداث Events في نافذة الخاصيات. أسنِد الدالة <code>readDialog1()‎</code> من خلال النقر على زر "تنفيذ إجراء Execute Action" واختيار الماكرو.
</p>

<h3>
	تشغيل الماكرو
</h3>

<p>
	ضع أيّ نص في الخلية A1 في ورقة كالك وضع النص "Hello World". افتح محرّر الماكرو وشغّل الدالة <code>StartDialog1()‎</code> بحيث يُنفَّذ مربع الحوار، ثم ضع نصًا في مربع النص وانقر على الزر. يجب أن تشاهد النص الموجود في مربع النص من مربع الحوار وكذلك النص الموجود في الخلية A1 من الورقة 1.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84723" href="https://academy.hsoub.com/uploads/monthly_2021_12/07_RunningTheMacro.png.707ade0f9085d11dd191aee2e8ff0224.png" rel=""><img alt="07_RunningTheMacro.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84723" data-unique="uij6d6cm6" src="https://academy.hsoub.com/uploads/monthly_2021_12/07_RunningTheMacro.png.707ade0f9085d11dd191aee2e8ff0224.png"></a>
</p>

<p style="text-align: center;">
	تشغيل الماكرو
</p>

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

<h3>
	شيفرة الماكرو الكاملة
</h3>

<p>
	انسخ والصق الشيفرة التالية في محرّر الماكرو في ليبر أوفيس:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3967_20" style="">
<span class="typ">Dim</span><span class="pln"> oDialog1 </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">StartDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
    oDialog1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">LoadDialog</span><span class="pun">(</span><span class="str">"Standard"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Dialog1"</span><span class="pun">)</span><span class="pln">
    oDialog1</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">()</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"> readDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> cell_val
    oT1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"TextField1"</span><span class="pun">)</span><span class="pln">
    cell_val </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln">
    msgbox cell_val</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">13</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="str">"Value from controls: "</span><span class="pln">  </span><span class="pun">&amp;</span><span class="pln"> oT1</span><span class="pun">.</span><span class="typ">Text</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h2>
	معالجة النماذج باستخدام الماكرو في ليبر أوفيس كالك
</h2>

<p>
	سنشرح فيما يلي كيفية الوصول إلى قيم عناصر تحكم حقل التسمية Label وخانة الاختيار Check Box وزر الخيار Option Box ومربع التحرير والسرد Combo Box ومربع القائمة List Box، وكيفية التعرف على القيم التي يحدّدها المستخدم في عناصر التحكم هذه.
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84724" href="https://academy.hsoub.com/uploads/monthly_2021_12/08_ToolboxInLibreOffice.png.d6236442708f41115d56900fc44a579b.png" rel=""><img alt="08_ToolboxInLibreOffice.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84724" data-unique="nd87ej8bm" src="https://academy.hsoub.com/uploads/monthly_2021_12/08_ToolboxInLibreOffice.thumb.png.9f9c67f7ee085069d7411c76f7925cba.png"></a>
</p>

<p style="text-align: center;">
	مربع الأدوات في ليبر أوفيس
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84725" href="https://academy.hsoub.com/uploads/monthly_2021_12/09_DesignedForm.png.390176a767543c432e76d2a3a0fbb02f.png" rel=""><img alt="09_DesignedForm.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84725" data-unique="q3h6m6tac" src="https://academy.hsoub.com/uploads/monthly_2021_12/09_DesignedForm.png.390176a767543c432e76d2a3a0fbb02f.png"></a>
</p>

<h3>
	مربع الاختيار Checkbox
</h3>

<p>
	مربعات الاختيار هي وسيلة ليختار المستخدم من بين خيارات متعددة. يمكن معرفة ما إذا كان مربع الاختيار محددًا أم لا من خلال استخدام الدالة <code>getState</code>. إذا كان مربع الاختيار محدَّدًا، فستعيد الدالة القيمة 1، وإلّا فستعيد القيمة 0. يمكنك تغيير النص المعروض بجانب كل خانة اختيار أثناء التصميم باستخدام حقل "التسمية Label" في تبويب عام من نافذة الخصائص.
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3967_24" style="">
<span class="pln">    chkBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"CheckBox1"</span><span class="pun">)</span><span class="pln">
    chkBox2 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"CheckBox2"</span><span class="pun">)</span><span class="pln">
    chkBox3 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"CheckBox3"</span><span class="pun">)</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> chkBox1</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> then
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Debian"</span><span class="pln">
    end </span><span class="kwd">if</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> chkBox2</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> then
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Ubuntu"</span><span class="pln">
    end </span><span class="kwd">if</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> chkBox3</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> then
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"elementary"</span><span class="pln">
    end </span><span class="kwd">if</span></pre>

<h3>
	مربع القائمة List Box ومربع التحرير والسرد Combo box
</h3>

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

<p>
	استخدم الدالة <code>getSelectedItem()‎</code> للحصول على تحديد مربع القائمة، واستخدم الدالة <code>SelectedText()‎</code> للحصول على العنصر المحدد من مربع التحرير والسرد.
</p>

<p>
	استخدم الدالة <code>addItem(,)‎</code> أثناء تحميل النموذج لأول مرة لملء مربع القائمة ومربع التحرير السرد مسبقًا.
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3967_26" style="">
<span class="pln">   lstBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"ListBox1"</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> lstBox1</span><span class="pun">.</span><span class="pln">getItemCount </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> then
        lstBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"Mango"</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
        lstBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"Apple"</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
        lstBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"Orange"</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
    end </span><span class="kwd">if</span><span class="pln">

    cmbBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"ComboBox1"</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> cmbBox1</span><span class="pun">.</span><span class="pln">getItemCount </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> then
        cmbBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"500"</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
        cmbBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"1000"</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
        cmbBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"10000"</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
    end </span><span class="kwd">if</span><span class="pln">

    oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">5</span><span class="pun">)</span><span class="pln"> 
    oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> lstBox1</span><span class="pun">.</span><span class="pln">getSelectedItem</span><span class="pun">()</span><span class="pln">                

    oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">6</span><span class="pun">)</span><span class="pln"> 
    oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> cmbBox1</span><span class="pun">.</span><span class="typ">SelectedText</span><span class="pun">()</span><span class="pln">   </span></pre>

<h3>
	زر الخيار Option Box
</h3>

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

<p>
	تعيد الخاصية <code>State()‎</code> الخاصة بزر الخيار القيمة True إذا كان الخيار محدَّدًا، وإلا فإنها تعيد القيمة False.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3967_30" style="">
<span class="pln">    </span><span class="kwd">if</span><span class="pln"> optBtn1</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">7</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"No"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> optBtn2</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">8</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Yes"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span></pre>

<h3>
	تشغيل شيفرة الماكرو
</h3>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84726" href="https://academy.hsoub.com/uploads/monthly_2021_12/10_FormWithValuesSelected.png.94a6988405ef28f38e9caef0b6875953.png" rel=""><img alt="10_FormWithValuesSelected.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84726" data-unique="0rn1tnbdz" src="https://academy.hsoub.com/uploads/monthly_2021_12/10_FormWithValuesSelected.png.94a6988405ef28f38e9caef0b6875953.png"></a>
</p>

<p style="text-align: center;">
	النموذج مع تحديد القيم
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84727" href="https://academy.hsoub.com/uploads/monthly_2021_12/11_Output.png.53bbc049fcc56d6d5df5b1a553ac50d1.png" rel=""><img alt="11_Output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84727" data-unique="bvu7yst4q" src="https://academy.hsoub.com/uploads/monthly_2021_12/11_Output.png.53bbc049fcc56d6d5df5b1a553ac50d1.png"></a>
</p>

<p style="text-align: center;">
	الخرج
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<p>
	انسخ والصق الشيفرة التالية في محرّر الماكرو في ليبر أوفيس:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3967_33" style="">
<span class="typ">Dim</span><span class="pln"> oDialog1 </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">StartDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
    oDialog1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">LoadDialog</span><span class="pun">(</span><span class="str">"Standard"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Dialog1"</span><span class="pun">)</span><span class="pln">

    lstBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"ListBox1"</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> lstBox1</span><span class="pun">.</span><span class="pln">getItemCount </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        lstBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"Mango"</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
        lstBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"Apple"</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
        lstBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"Orange"</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    cmbBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"ComboBox1"</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> cmbBox1</span><span class="pun">.</span><span class="pln">getItemCount </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        cmbBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"500"</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
        cmbBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"1000"</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
        cmbBox1</span><span class="pun">.</span><span class="pln">addItem</span><span class="pun">(</span><span class="str">"10000"</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    oDialog1</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">()</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"> readDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> oCell
    chkBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"CheckBox1"</span><span class="pun">)</span><span class="pln">
    chkBox2 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"CheckBox2"</span><span class="pun">)</span><span class="pln">
    chkBox3 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"CheckBox3"</span><span class="pun">)</span><span class="pln">

    optBtn1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"OptionButton1"</span><span class="pun">)</span><span class="pln">
    optBtn2 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"OptionButton2"</span><span class="pun">)</span><span class="pln">

    lstBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"ListBox1"</span><span class="pun">)</span><span class="pln">

    cmbBox1 </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="typ">GetControl</span><span class="pun">(</span><span class="str">"ComboBox1"</span><span class="pun">)</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> chkBox1</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Debian"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> chkBox2</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Ubuntu"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> chkBox3</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"elementary"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">5</span><span class="pun">)</span><span class="pln"> 
    oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> lstBox1</span><span class="pun">.</span><span class="pln">getSelectedItem</span><span class="pun">()</span><span class="pln">                

    oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">6</span><span class="pun">)</span><span class="pln"> 
    oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> cmbBox1</span><span class="pun">.</span><span class="typ">SelectedText</span><span class="pun">()</span><span class="pln">           

    </span><span class="kwd">if</span><span class="pln"> optBtn1</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">7</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"No"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> optBtn2</span><span class="pun">.</span><span class="typ">State</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">True</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
        oCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">8</span><span class="pun">)</span><span class="pln"> 
        oCell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Yes"</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln"> </span><span class="kwd">if</span><span class="pln">

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

<p>
	ترجمة -وبتصرُّف- للمقالين <a href="https://www.debugpoint.com/2015/01/working-with-dialog-controls-in-libreoffice-calc-using-macro-part-1/" rel="external nofollow">Working with Dialog Controls in LibreOffice Calc using Macro – Part 1</a> و <a href="https://www.debugpoint.com/2015/05/form-processing-with-libreoffice-calc-macro-part-2/" rel="external nofollow">Form Processing with LibreOffice Calc Macro – Part 2</a> لصاحبهما Arindam.
</p>

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية تحرير البيانات في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">تعرّف على معالج جداول البيانات LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">570</guid><pubDate>Tue, 07 Dec 2021 20:07:53 +0000</pubDate></item><item><title>&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x639;&#x646;&#x627;&#x635;&#x631; &#x627;&#x644;&#x62A;&#x62D;&#x643;&#x645; &#x628;&#x627;&#x644;&#x646;&#x645;&#x627;&#x630;&#x62C; &#x648;&#x646;&#x627;&#x641;&#x630;&#x629; &#x641;&#x62A;&#x62D; &#x627;&#x644;&#x645;&#x644;&#x641;&#x627;&#x62A; &#x645;&#x646; &#x62E;&#x644;&#x627;&#x644; &#x627;&#x644;&#x645;&#x627;&#x643;&#x631;&#x648; &#x641;&#x64A; &#x644;&#x64A;&#x628;&#x631; &#x623;&#x648;&#x641;&#x64A;&#x633;</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D9%88%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D9%81%D8%AA%D8%AD-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%85%D9%86-%D8%AE%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-r569/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_12/61af9c0649678_-----------.png.56646b17bfd676832d530d3d10dbb1e0.png" /></p>

<p>
	سنستخدم عناصر تحكم بالنماذج Controls -مثل الأزرار ومربعات النصوص- ونافذة فتح الملفات ضمن جدول بيانات ليبر أوفيس كالك LibreOffice Calc، وسنسند لها <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">ماكرو</a>، حيث سنعطي أمثلة بسيطة توضّح الأساسيات ولكن يمكنك تطويرها لتشمل احتياجاتك المختلفة.
</p>

<p>
	هذا المقال جزء من سلسلة مقالات حول إنشاء ماكرو في ليبر أوفيس كالك، فهرس السلسلة:
</p>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبر أوفيس كالك LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AD%D8%AA%D9%88%D9%8A%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%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-r567/" rel="">معالجة محتويات خلايا ليبر أوفيس كالك باستخدام الماكرو</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AC%D8%A7%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r568/" rel="">معالجة مجال من الخلايا باستخدام الماكرو في ليبر أوفيس كالك</a>
	</li>
	<li>
		استخدام عناصر التحكم بالنماذج ونافذة فتح الملفات من خلال الماكرو في ليبر أوفيس
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D9%85%D8%B1%D8%A8%D8%B9-%D8%A7%D9%84%D8%AD%D9%88%D8%A7%D8%B1-%D9%88%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r570/" rel="">التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبر أوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%AD%D9%81%D8%B8-%D8%A3%D9%88%D8%B1%D8%A7%D9%82-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-pdf-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-r571/" rel="">أتمتة حفظ أوراق ليبر أوفيس كالك بتنسيق PDF باستعمال الماكرو</a>
	</li>
</ul>
<h2>
	إضافة زر إلى جدول بيانات كالك
</h2>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84701" href="https://academy.hsoub.com/uploads/monthly_2021_12/01_LO_Form_Controls_1.png.fe714b12ab6299c2c650f751fd1aa12b.png" rel=""><img alt="01_LO_Form_Controls_1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84701" data-unique="78t6qy1d7" src="https://academy.hsoub.com/uploads/monthly_2021_12/01_LO_Form_Controls_1.png.fe714b12ab6299c2c650f751fd1aa12b.png"></a>
</p>

<p>
	انتقل إلى قائمة عرض View ثم أشرطة الأدوات Toolbars ثم عناصر التحكم بالنموذج Form Controls، حيث يتكون عنصر التحكم بالنموذج من عناصر تحكم متعددة وزر تبديل لوضع التصميم وغير ذلك.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84702" href="https://academy.hsoub.com/uploads/monthly_2021_12/02_LO_Form_Controls_2.png.9d8453d0bd2d629908ac931972d08dea.png" rel=""><img alt="02_LO_Form_Controls_2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84702" data-unique="8snxwrtms" src="https://academy.hsoub.com/uploads/monthly_2021_12/02_LO_Form_Controls_2.png.9d8453d0bd2d629908ac931972d08dea.png"></a>
</p>

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

<p>
	إليك البرنامج المُنفَّذ عند النقر على الزر:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1644_6" style="">
<span class="typ">Sub</span><span class="pln"> hello_world

    </span><span class="typ">Dim</span><span class="pln"> my_doc   as object
    </span><span class="typ">Dim</span><span class="pln"> my_sheets as object
    </span><span class="typ">Dim</span><span class="pln"> my_cell as object

    my_doc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
    my_sheets </span><span class="pun">=</span><span class="pln"> my_doc</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pln"> 

    my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">

    my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"A string populated by a button!"</span><span class="pln">

    </span><span class="typ">Msgbox</span><span class="pln"> </span><span class="str">"~~~ Welcome ~~~"</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">13</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="str">"LibreOffice Form Controls Demo"</span><span class="pun">,,</span><span class="str">"DebugPoint.com"</span><span class="pln">

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

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84703" href="https://academy.hsoub.com/uploads/monthly_2021_12/03_LO_Form_Controls_3.png.8d1055d258b4eb7beaf6d69d997f9f46.png" rel=""><img alt="03_LO_Form_Controls_3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84703" data-unique="kxdvkcebp" src="https://academy.hsoub.com/uploads/monthly_2021_12/03_LO_Form_Controls_3.png.8d1055d258b4eb7beaf6d69d997f9f46.png"></a>
</p>

<h3>
	إسناد ماكرو إلى الزر
</h3>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84704" href="https://academy.hsoub.com/uploads/monthly_2021_12/04_LO_Form_Controls_4.png.80a04bda7fc5fdbcdabc33476fb983c4.png" rel=""><img alt="04_LO_Form_Controls_4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84704" data-unique="cfwp3xsd8" src="https://academy.hsoub.com/uploads/monthly_2021_12/04_LO_Form_Controls_4.png.80a04bda7fc5fdbcdabc33476fb983c4.png"></a>
</p>

<p>
	انقر على الزر الصغير بجوار العنوان "تنفيذ الإجراء Execute action"، حيث ستفتح نافذة جديدة هي "إسناد الإجراء Assign Action". اختر "تنفيذ الإجراء" وانقر على الزر "ماكرو Macro" لتحديد ماكرو.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84705" href="https://academy.hsoub.com/uploads/monthly_2021_12/05_LO_Form_Controls_5.png.ca783c0027bd662e17a982fccd0e1bd9.png" rel=""><img alt="05_LO_Form_Controls_5.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84705" data-unique="xa3jbhpp1" src="https://academy.hsoub.com/uploads/monthly_2021_12/05_LO_Form_Controls_5.png.ca783c0027bd662e17a982fccd0e1bd9.png"></a>
</p>

<p>
	اختر الآن الماكرو الذي تريد تنفيذه (وهو "hello world" في مثالنا) وانقر على "موافق".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84706" href="https://academy.hsoub.com/uploads/monthly_2021_12/06_LO_Form_Controls_6.png.72d13652735d7473a8954fef8c8dd170.png" rel=""><img alt="06_LO_Form_Controls_6.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84706" data-unique="0wvbzjbsg" src="https://academy.hsoub.com/uploads/monthly_2021_12/06_LO_Form_Controls_6.png.72d13652735d7473a8954fef8c8dd170.png"></a>
</p>

<p>
	سيظهر الماكرو المختار في نافذة "إسناد الإجراء" عند تحديده، ثم انقر على "موافق" للعودة إلى <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">جدول البيانات</a>.
</p>

<h3>
	تشغيل الماكرو
</h3>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84707" href="https://academy.hsoub.com/uploads/monthly_2021_12/07_LO_Form_Controls_7.png.d7017be0984f0c59f6a15480caf89bdc.png" rel=""><img alt="07_LO_Form_Controls_7.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84707" data-unique="xse8gks1g" src="https://academy.hsoub.com/uploads/monthly_2021_12/07_LO_Form_Controls_7.png.d7017be0984f0c59f6a15480caf89bdc.png"></a>
</p>

<p>
	حان الوقت الآن لتشغيل شيفرة الماكرو، ولكن يجب قبل ذلك إيقاف تشغيل وضع التصميم Design Mode بالنقر على زر "تشغيل / إيقاف تشغيل وضع التصميم Design Mode On/Off" في شريط أدوات عناصر تحكم النموذج، ثم انقر على الزر وشاهد النتيجة.
</p>

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

<h2>
	إدراج وقراءة النص في عنصر تحكم مربع النص TextField
</h2>

<p>
	سنوضّح كيفية تهيئة سلسلة نصية وإدراجها في وقت التشغيل، وقراءتها من عنصر التحكم TextField باستخدام ماكرو مكتوب بلغة بيسك Basic.
</p>

<h3>
	كيفية إضافة عنصر TextField إلى نافذة
</h3>

<p>
	انقر على الرمز التالي واسحبه إلى نافذة جديدة لإضافة عنصر TextField:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84710" href="https://academy.hsoub.com/uploads/monthly_2021_12/10_TextField.png.24675ab82691a95670c33f9c4d5058b9.png" rel=""><img alt="10_TextField.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84710" data-unique="z9m6p5gqm" src="https://academy.hsoub.com/uploads/monthly_2021_12/10_TextField.png.24675ab82691a95670c33f9c4d5058b9.png"></a>
</p>

<h3>
	كيفية قراءة نص من عنصر TextField
</h3>

<p>
	استخدم الدالة <code>getText()‎</code> لقراءة نص من عنصر TextField، حيث ستعيد هذه الدالة النص المُدخَل كسلسلة نصية من عنصر TextField.
</p>

<p>
	إليك المثال التالي:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1644_9" style="">
<span class="pln">oTextField </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="pln">getControl</span><span class="pun">(</span><span class="str">"TextField1"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Msgbox</span><span class="pln"> oTextField</span><span class="pun">.</span><span class="pln">getText</span><span class="pun">()</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84711" href="https://academy.hsoub.com/uploads/monthly_2021_12/11_read-text-text-field.png.1675b9a559388aa5c79121c9133eddc1.png" rel=""><img alt="11_read-text-text-field.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84711" data-unique="0or2rmilc" src="https://academy.hsoub.com/uploads/monthly_2021_12/11_read-text-text-field.png.1675b9a559388aa5c79121c9133eddc1.png"></a>
</p>

<h3>
	كيفية إدراج أو تحديث نص في عنصر TextField
</h3>

<p>
	استخدم الدالة <code>setText()‎</code> لتحديث محتويات عنصر TextField أثناء وقت التشغيل.
</p>

<p>
	إليك المثال التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_11" style="">
<span class="pln">oTextField </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="pln">getControl</span><span class="pun">(</span><span class="str">"TextField1"</span><span class="pun">)</span><span class="pln">
oTextField</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="str">"Hello World!!!"</span><span class="pun">)</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84712" href="https://academy.hsoub.com/uploads/monthly_2021_12/12_text-field-set-text.png.857f17e8ea4d02cb383c457023751ce0.png" rel=""><img alt="12_text-field-set-text.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84712" data-unique="w9b7qrevs" src="https://academy.hsoub.com/uploads/monthly_2021_12/12_text-field-set-text.png.857f17e8ea4d02cb383c457023751ce0.png"></a>
</p>

<h3>
	كيفية تهيئة نص افتراضيًا في عنصر TextField
</h3>

<p>
	هناك طريقتان يمكنك استخدامهما لتهيئة نص افتراضيًا في عنصر TextField. يمكنك تهيئة أي نص افتراضيًا لعنصر TextField أثناء التصميم باستخدام الخاصية <code>Text</code>، حيث يمكنك كتابة أيّ شيء تريده في الخاصية <code>Text</code> وستُملَأ في TextBox. الخيار الثاني هو استخدام الدالة <code>setText()‎</code> أثناء تحميل النافذة باستخدام عناصر التحكم الخاصة بها.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84713" href="https://academy.hsoub.com/uploads/monthly_2021_12/13_TextField-default-Text-property.png.86d56e7a59ad79de94a0f661a1bcac4f.png" rel=""><img alt="13_TextField-default-Text-property.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84713" data-unique="fvrpootz8" src="https://academy.hsoub.com/uploads/monthly_2021_12/13_TextField-default-Text-property.png.86d56e7a59ad79de94a0f661a1bcac4f.png"></a>
</p>

<p style="text-align: center;">
	خاصية TextField الافتراضية Text
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<p>
	انسخ والصق الشيفرة التالية في محرّر الماكرو ضمن <a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1//" rel="">ليبر أوفيس</a>، وأنشئ نافذة بها زر ومربع نص، ثم أسند الدالة <code>test()‎</code> إلى حدث نقر الزر.
</p>

<p>
	قراءة النص:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1644_13" style="">
<span class="typ">Dim</span><span class="pln"> oDialog1 </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">StartDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
    oDialog1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">LoadDialog</span><span class="pun">(</span><span class="str">"Standard"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Dialog1"</span><span class="pun">)</span><span class="pln">
    oDialog1</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">()</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"> test</span><span class="pun">()</span><span class="pln">
    oTextField </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="pln">getControl</span><span class="pun">(</span><span class="str">"TextField1"</span><span class="pun">)</span><span class="pln">
    </span><span class="typ">Msgbox</span><span class="pln"> oTextField</span><span class="pun">.</span><span class="pln">getText</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-c prettyprinted" id="ips_uid_1644_15" style="">
<span class="typ">Dim</span><span class="pln"> oDialog1 </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">

</span><span class="typ">Sub</span><span class="pln"> </span><span class="typ">StartDialog1</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
    oDialog1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">LoadDialog</span><span class="pun">(</span><span class="str">"Standard"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Dialog1"</span><span class="pun">)</span><span class="pln">
    oDialog1</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">()</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"> test</span><span class="pun">()</span><span class="pln">
    oTextField </span><span class="pun">=</span><span class="pln"> oDialog1</span><span class="pun">.</span><span class="pln">getControl</span><span class="pun">(</span><span class="str">"TextField1"</span><span class="pun">)</span><span class="pln">
    oTextField</span><span class="pun">.</span><span class="pln">setText</span><span class="pun">(</span><span class="str">"Hello World!!!"</span><span class="pun">)</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h2>
	استخدام نافذة فتح ملف من خلال ماكرو
</h2>

<p>
	سنوضّح فيما يلي كيفية فتح نافذة اختيار ملف في ليبر أوفيس LibreOffice وأوبن أوفيس OpenOffice باستخدام ماكرو.
</p>

<p>
	تُستخَدم نافذة اختيار ملف لتحديد ملف أو ملفات في عمليات الأتمتة المختلفة مثل فتح مصنف أوبن أوفيس OpenOffice أو ليبر أوفيس LibreOffice أو مثل استيراد ملف نصي أو ملف csv وما إلى ذلك.
</p>

<h3>
	إنشاء الكائنات
</h3>

<p>
	لنعرّف دالة يمكن أن يستخدمها أيّ ماكرو لفتح نافذة منتقي الملفات.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_19" style="">
<span class="typ">Function</span><span class="pln"> open_file</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="str">' open file picker dialog here and return the path of the chosen file
End Function</span></pre>

<p>
	استخدم خدمة <code>FilePicker</code> الخاصة بوحدة <code>com.sun.star.ui.dialogs</code> وخدمة <code>SimpleFileAccess</code> الخاصة بالوحدة <code>com.sun.star.ucb</code> لفتح نافذة اختيار ملف، حيث ستوفر هاتان الخدمتان المقابض اللازمة لفتحها.
</p>

<p>
	صرّح وأنشئ كائنين لهذه الخدمات كما يلي:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1644_22" style="">
<span class="pln">  </span><span class="typ">Dim</span><span class="pln"> file_dialog as </span><span class="typ">Object</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> ucb as object

   </span><span class="typ">GlobalScope</span><span class="pun">.</span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
   file_dialog </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreateUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.ui.dialogs.FilePicker"</span><span class="pun">)</span><span class="pln">
   ucb </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.ucb.SimpleFileAccess"</span><span class="pun">)</span></pre>

<p>
	يوفر الكائن ucb -اختصارًا إلى Universal Content Broker- طريقة للوصول إلى محتويات متنوعة عبر UCP (مزوّدو المحتوى العالمي Universal Content Providers).
</p>

<h3>
	تنسيق النافذة
</h3>

<p>
	يجب تقديم بعض المعلومات قبل فتح نافذة منتقي الملفات مثل أنواع الملفات أو الامتدادات (‎.jpg و ‎.png وغير ذلك) التي ستكون متاحة بوصفها مرشّحات Filters، ويجب ضبط المجلد الافتراضي لتحديده عند تنفيذ النافذة.
</p>

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

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_24" style="">
<span class="pln">  </span><span class="typ">Dim</span><span class="pln"> filterNames</span><span class="pun">(</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">

   filterNames</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.*"</span><span class="pln">
   filterNames</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.png"</span><span class="pln">
   filterNames</span><span class="pun">(</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.jpg"</span><span class="pln">

   </span><span class="typ">AddFiltersToDialog</span><span class="pun">(</span><span class="typ">FilterNames</span><span class="pun">(),</span><span class="pln"> file_dialog</span><span class="pun">)</span></pre>

<p>
	استخدم الدالة <code>SetDisplayDirectory</code> مع كائن <code>dialog</code> لضبط المجلد الافتراضي الذي ستفتحه النافذة. تحوّل الدالة <code>ConvertToUrl</code> مسار لينكس إلى مسار نظام ملفات مثل المسار <code>‎/usr</code> الذي يُحوَّل إلى <code>file:///usr</code>.
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_1644_30" style="">
<span class="pln">  init_path </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ConvertToUrl</span><span class="pun">(</span><span class="str">"/usr"</span><span class="pun">)</span><span class="pln">

   </span><span class="typ">If</span><span class="pln"> ucb</span><span class="pun">.</span><span class="typ">Exists</span><span class="pun">(</span><span class="pln">init_path</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
      file_dialog</span><span class="pun">.</span><span class="typ">SetDisplayDirectory</span><span class="pun">(</span><span class="pln">init_path</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>
	افتح نافذة اختيار الملف لإعادة اسم الملف، حيث ستفتح نافذة اختيار الملف عند تنفيذ الدالة <code>Execute</code> الخاصة بنافذة الملف، حيث تعيد هذه الدالة قيمتين هما 0 و 1 بناءً على إجراءات المستخدم. إذا اخترتَ ملفًا وضغطت على "موافق OK"، فستُعاد القيمة 1، وإذا ضغطت على "إلغاء CANCEL"، فستُعاد القيمة 0، وإذا حدّد المستخدم ملفًا أو ملفات متعددة، فستُعاد مصفوفة. لنحدّد في مثالنا ملفًا واحدًا ونعيد اسم الملف.
</p>

<p>
	أخيرًا، نفّذ الدالة <code>Dispose</code> لتحرير جميع الموارد.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_32" style="">
<span class="pln">  open_status </span><span class="pun">=</span><span class="pln"> file_dialog</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">If</span><span class="pln"> open_status </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="typ">Then</span><span class="pln">
      file_path </span><span class="pun">=</span><span class="pln"> file_dialog</span><span class="pun">.</span><span class="typ">Files</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln">
      open_file </span><span class="pun">=</span><span class="pln"> file_path
   </span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span><span class="pln">
   file_dialog</span><span class="pun">.</span><span class="typ">Dispose</span><span class="pun">()</span></pre>

<p>
	استدعِ بعد ذلك الدالة <code>open_file()‎</code> من إجراء آخر، ولنعرض مسار الملف الُمحدَّد في مربع رسالة.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_37" style="">
<span class="typ">Sub</span><span class="pln"> pick_a_file</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> fName </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
   fName </span><span class="pun">=</span><span class="pln"> open_file</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">MsgBox</span><span class="pln"> fName </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">10</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="typ">ConvertFromUrl</span><span class="pun">(</span><span class="pln">fName</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>pick_a_file()‎</code>، فيمكنك رؤية النافذة ومربع الرسالة مع مسار الملف المُحدَّد.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84708" href="https://academy.hsoub.com/uploads/monthly_2021_12/08_File-Selection-Dialog-Open-using-Macro.png.3759ec9c21a7aaca51897d3e55c5ba08.png" rel=""><img alt="08_File-Selection-Dialog-Open-using-Macro.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84708" data-unique="pzwpwmgpz" src="https://academy.hsoub.com/uploads/monthly_2021_12/08_File-Selection-Dialog-Open-using-Macro.png.3759ec9c21a7aaca51897d3e55c5ba08.png"></a>
</p>

<p style="text-align: center;">
	فتح نافذة تحديد ملف باستخدام ماكرو
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84709" href="https://academy.hsoub.com/uploads/monthly_2021_12/09_File-Open-Output.png.a6d4bbf4336800c74b6a8310d53d52ee.png" rel=""><img alt="09_File-Open-Output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84709" data-unique="2c1nirb92" src="https://academy.hsoub.com/uploads/monthly_2021_12/09_File-Open-Output.png.a6d4bbf4336800c74b6a8310d53d52ee.png"></a>
</p>

<p style="text-align: center;">
	خرج فتح ملف
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_39" style="">
<span class="typ">Sub</span><span class="pln"> pick_a_file</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> fName </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
   fName </span><span class="pun">=</span><span class="pln"> open_file</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">MsgBox</span><span class="pln"> fName </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">10</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> </span><span class="typ">ConvertFromUrl</span><span class="pun">(</span><span class="pln">fName</span><span class="pun">)</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">Function</span><span class="pln"> open_file</span><span class="pun">()</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">

   </span><span class="typ">Dim</span><span class="pln"> file_dialog </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> status </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> file_path </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> init_path </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> ucb </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> filterNames</span><span class="pun">(</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">

   filterNames</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.*"</span><span class="pln">
   filterNames</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.png"</span><span class="pln">
   filterNames</span><span class="pun">(</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.jpg"</span><span class="pln">

   </span><span class="typ">GlobalScope</span><span class="pun">.</span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
   file_dialog </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreateUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.ui.dialogs.FilePicker"</span><span class="pun">)</span><span class="pln">
   ucb </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.ucb.SimpleFileAccess"</span><span class="pun">)</span><span class="pln">

   </span><span class="typ">AddFiltersToDialog</span><span class="pun">(</span><span class="typ">FilterNames</span><span class="pun">(),</span><span class="pln"> file_dialog</span><span class="pun">)</span><span class="pln">
   </span><span class="str">'Set your initial path here!
   init_path = ConvertToUrl("/usr")

   If ucb.Exists(init_path) Then
      file_dialog.SetDisplayDirectory(init_path)
   End If

   status = file_dialog.Execute()
   If status = 1 Then
      file_path = file_dialog.Files(0)
      open_file = file_path
   End If
   file_dialog.Dispose()

End Function</span></pre>

<h3>
	اختيار ملفات متعددة
</h3>

<p>
	لنعدّل الماكرو السابق قليلًا بحيث يعيد قائمة أسماء الملفات (المسار الكامل) المُحدَّدة. الاختلاف الوحيد هو أن الدالة معرَّفة بوصفها متغيرًا <code>Variant</code> واستخدام خاصية نافذة الملف <code>file_dialog.setMultiSelectionMode(True)‎</code> والدالة <code>file_dialog.getSelectedFiles()‎</code>.
</p>

<p>
	توضّح الشيفرة التالية شيفرة ماكرو كاملة لاختيار ملفات متعددة والحصول على أسمائها:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_1644_41" style="">
<span class="typ">Sub</span><span class="pln"> pick_a_file</span><span class="pun">()</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> fName</span><span class="pun">()</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Variant</span><span class="pln">
   fName </span><span class="pun">=</span><span class="pln"> open_file</span><span class="pun">()</span><span class="pln">
   </span><span class="kwd">for</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> to </span><span class="typ">Ubound</span><span class="pun">(</span><span class="pln">fName</span><span class="pun">)</span><span class="pln">
           str1 </span><span class="pun">=</span><span class="pln"> str1 </span><span class="pun">&amp;</span><span class="pln"> fName</span><span class="pun">(</span><span class="pln">i</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">10</span><span class="pun">)</span><span class="pln">
   </span><span class="kwd">next</span><span class="pln">
   </span><span class="typ">MsgBox</span><span class="pln"> str1
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span><span class="pln">

</span><span class="typ">Function</span><span class="pln"> open_file</span><span class="pun">()</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Variant</span><span class="pln">

   </span><span class="typ">Dim</span><span class="pln"> file_dialog </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> status </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">Integer</span><span class="pln">

   </span><span class="typ">Dim</span><span class="pln"> init_path </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> ucb </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
   </span><span class="typ">Dim</span><span class="pln"> filterNames</span><span class="pun">(</span><span class="lit">3</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="typ">String</span><span class="pln">

   filterNames</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.*"</span><span class="pln">
   filterNames</span><span class="pun">(</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.png"</span><span class="pln">
   filterNames</span><span class="pun">(</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"*.jpg"</span><span class="pln">

   </span><span class="typ">GlobalScope</span><span class="pun">.</span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"Tools"</span><span class="pun">)</span><span class="pln">
   file_dialog </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreateUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.ui.dialogs.FilePicker"</span><span class="pun">)</span><span class="pln">
   ucb </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.ucb.SimpleFileAccess"</span><span class="pun">)</span><span class="pln">

   </span><span class="typ">AddFiltersToDialog</span><span class="pun">(</span><span class="typ">FilterNames</span><span class="pun">(),</span><span class="pln"> file_dialog</span><span class="pun">)</span><span class="pln">
   </span><span class="str">'Set your initial path here!
   init_path = ConvertToUrl("/usr")

   file_dialog.setMultiSelectionMode(True)

   If ucb.Exists(init_path) Then
      file_dialog.SetDisplayDirectory(init_path)
   End If

   status = file_dialog.Execute()
   If status = 1 Then
      file_path = file_dialog.getSelectedFiles()
      open_file = file_path
   End If
   file_dialog.Dispose()

End Function</span></pre>

<p>
	ترجمة -وبتصرُّف- للمقالات <a href="https://www.debugpoint.com/2014/09/using-form-controls-in-libreoffice-macro/" rel="external nofollow">Using Form Controls in LibreOffice Macro</a> و <a href="https://www.debugpoint.com/2015/01/use-open-file-dialog-using-macro-in-libreofficeopenoffice/" rel="external nofollow">Use Open File Dialog using Macro in LibreOffice/OpenOffice</a> و <a href="https://www.debugpoint.com/2015/12/insert-and-read-text-in-textfield-control-using-libreoffice-basic-macro/" rel="external nofollow">Insert and Read Text in TextField Control Using LibreOffice Basic Macro</a> لصاحبها Arindam.
</p>

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية تحرير البيانات في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">تعرّف على معالج جداول البيانات LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">569</guid><pubDate>Wed, 08 Dec 2021 10:16:03 +0000</pubDate></item><item><title>&#x645;&#x639;&#x627;&#x644;&#x62C;&#x629; &#x645;&#x62C;&#x627;&#x644; &#x645;&#x646; &#x627;&#x644;&#x62E;&#x644;&#x627;&#x64A;&#x627; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x627;&#x644;&#x645;&#x627;&#x643;&#x631;&#x648; &#x641;&#x64A; &#x644;&#x64A;&#x628;&#x631; &#x623;&#x648;&#x641;&#x64A;&#x633; &#x643;&#x627;&#x644;&#x643;</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AC%D8%A7%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r568/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_12/61af35a872feb_---------.png.4985eb3c14433deb1b60835c08ddbc8b.png" /></p>

<p>
	سنوضّح من خلال هذا المقال كيفية معالجة تحديد خلية ومجموعة من الخلايا التي تشكل مجالًا باستخدام الماكرو Macro في <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">ليبرأوفيس كالك LibreOffice Calc</a>.
</p>

<p>
	هذا المقال جزء من سلسلة مقالات حول إنشاء ماكرو في ليبرأوفيس كالك، فهرس السلسلة:
</p>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبرأوفيس كالك LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AD%D8%AA%D9%88%D9%8A%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%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-r567/" rel="">معالجة محتويات خلايا ليبرأوفيس كالك باستخدام الماكرو</a>
	</li>
	<li>
		معالجة مجال من الخلايا باستخدام الماكرو في ليبرأوفيس كالك.
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D9%88%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D9%81%D8%AA%D8%AD-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%85%D9%86-%D8%AE%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-r569/" rel="">استخدام عناصر التحكم بالنماذج ونافذة فتح الملفات من خلال الماكرو في ليبرأوفيس</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D9%85%D8%B1%D8%A8%D8%B9-%D8%A7%D9%84%D8%AD%D9%88%D8%A7%D8%B1-%D9%88%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r570/" rel="">التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبرأوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%AD%D9%81%D8%B8-%D8%A3%D9%88%D8%B1%D8%A7%D9%82-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-pdf-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-r571/" rel="">أتمتة حفظ أوراق ليبرأوفيس كالك بتنسيق PDF باستعمال الماكرو</a>
	</li>
</ul>
<h2>
	معالجة خلايا محددة في كالك باستخدام الماكرو
</h2>

<p>
	سنوضّح آلية التحديد في خلايا ليبرأوفيس كالك LibreOffice Calc باستخدام <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/LibreOffice%20Calc" rel="">الماكرو Macro</a>.
</p>

<h3>
	الدالة getCurrentSelection()‎
</h3>

<p>
	يجب أولًا الحصول على مصنف Workbook كالك مفتوح باستخدام عبارة <code>ThisComponent</code> وإسناد الكائن المُعاد إلى متغير.
</p>

<p>
	يمكنك معرفة التحديدات التي أجراها المستخدم في ورقة كالك باستخدام الدالة <code>getCurrentSelection()‎</code> الخاصة بواجهة <code>Xcomponent</code>، حيث توفّر هذه الدالة وصولًا لقراءة التحديد الحالي إلى وحدة التحكم، وتعيد التحديد الحالي من وحدة التحكم الحالية.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_7" style="">
<span class="typ">Dim</span><span class="pln"> oDoc</span><span class="pun">,</span><span class="pln"> oSel
oDoc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
oSel </span><span class="pun">=</span><span class="pln"> oDoc</span><span class="pun">.</span><span class="pln">getCurrentSelection</span><span class="pun">()</span></pre>

<p>
	إن لم يكن هناك تحديد، فستعيد الدالة <code>getCurrentSelection()‎</code> القيمة NULL. كما يمكنك استخدام الدالة <code>IsNull</code> لمعرفة إذا كان هناك شيء ما محدَّد أم لا.
</p>

<p>
	لا نستطيع معرفة التحديدات باستخدام <code>oSel</code> فقط، حيث يجب استخدام الدالة <code>supportService</code> الخاصة بواجهة <code>XServiceInfo</code> التي تختبر ما إذا كانت الخدمة المحددة مدعومة أي يمكن تنفيذها، بحيث تعيد القيمة TRUE إذا كانت مدعومة، وإلّا فإنها تعيد القيمة FALSE. توجد قائمة بالخدمات المتاحة التي يمكن اختبارها باستخدام هذه الدالة مثل الخدمات التالية:
</p>

<ul>
<li>
		com.sun.star.sheet.SheetCell
	</li>
	<li>
		com.sun.star.sheet.SheetCellRange
	</li>
	<li>
		com.sun.star.sheet.SheetCellRanges
	</li>
</ul>
<p>
	ويمكنك العثور على قائمة كاملة بالخدمات من مرجع ليبرأوفيس <a href="https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1sheet.html" rel="external nofollow">com.sun.star.sheet</a>.
</p>

<h3>
	تحديد خلية واحدة
</h3>

<p>
	استخدم خدمة <code>com.sun.star.sheet.SheetCell</code> للتحقق من تحديد خلية واحدة. كما يمكنك الحصول على قيمة تلك الخلية المحددة باستخدام الدالة <code>getString()‎</code> مع كائن التحديد.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_3518_9" style="">
<span class="typ">If</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">supportsService</span><span class="pun">(</span><span class="str">"com.sun.star.sheet.SheetCell"</span><span class="pun">)</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">"One Cell selected and it contains: "</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">getString</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>
	استخدم الخدمة <code>com.sun.star.sheet.SheetCellRange</code> لتحديد مجال من الخلايا مثل C5:F7.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_3518_12" style="">
<span class="typ">If</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">supportsService</span><span class="pun">(</span><span class="str">"com.sun.star.sheet.SheetCellrange"</span><span class="pun">)</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">"One Cell Range selected"</span><span class="pln">
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">If</span></pre>

<h3>
	تحديد مجالات متعددة
</h3>

<p>
	استخدم خدمة <code>com.sun.star.sheet.SheetCellRanges</code> لتحديد مجالات متعددة من الخلايا.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_14" style="">
<span class="typ">If</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">supportsService</span><span class="pun">(</span><span class="str">"com.sun.star.sheet.SheetCellRanges"</span><span class="pun">)</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">"Multiple Cell Ranges selected. Total="</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">getCount</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>
	أولًا، تحديد خلية واحد:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84652" href="https://academy.hsoub.com/uploads/monthly_2021_12/01_Single-Cell-Selection-www.debugpoint.com_.png.2abf17c24b821db95bcc8b8c1c46a1a5.png" rel=""><img alt="01_Single-Cell-Selection-www.debugpoint.com_.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84652" data-unique="hic5ruyp9" src="https://academy.hsoub.com/uploads/monthly_2021_12/01_Single-Cell-Selection-www.debugpoint.com_.png.2abf17c24b821db95bcc8b8c1c46a1a5.png"></a>
</p>

<p>
	الخرج:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84653" href="https://academy.hsoub.com/uploads/monthly_2021_12/02_Single_Cell_selection_Output_www.debugpoint.com_.png.0b8c01253c9c125bf5d72446fac71eae.png" rel=""><img alt="02_Single_Cell_selection_Output_www.debugpoint.com_.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84653" data-unique="b3pluiglm" src="https://academy.hsoub.com/uploads/monthly_2021_12/02_Single_Cell_selection_Output_www.debugpoint.com_.png.0b8c01253c9c125bf5d72446fac71eae.png"></a>
</p>

<p>
	ثانيًا، تحديد مجال من الخلايا:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84654" href="https://academy.hsoub.com/uploads/monthly_2021_12/03_Single-Range-Selection.png.70dba2a2190abd229aae85622c87f674.png" rel=""><img alt="03_Single-Range-Selection.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84654" data-unique="sr4uhfhcw" src="https://academy.hsoub.com/uploads/monthly_2021_12/03_Single-Range-Selection.png.70dba2a2190abd229aae85622c87f674.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	الخرج:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84655" href="https://academy.hsoub.com/uploads/monthly_2021_12/04_Single_Cell_Range_Output.png.dd1ddbca2f016d699c5bf280ebf735af.png" rel=""><img alt="04_Single_Cell_Range_Output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84655" data-unique="8v3r6wp66" src="https://academy.hsoub.com/uploads/monthly_2021_12/04_Single_Cell_Range_Output.png.dd1ddbca2f016d699c5bf280ebf735af.png"></a>
</p>

<p>
	ثالثًا، تحديد مجالات متعددة من الخلايا:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84656" href="https://academy.hsoub.com/uploads/monthly_2021_12/05_Multiple-ranges-Selection.png.73def07817100a4b6e8753c50e7ff316.png" rel=""><img alt="05_Multiple-ranges-Selection.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84656" data-unique="wvx6e4vx1" src="https://academy.hsoub.com/uploads/monthly_2021_12/05_Multiple-ranges-Selection.png.73def07817100a4b6e8753c50e7ff316.png" style="width: 550px; height: auto;"></a>
</p>

<p>
	الخرج:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84657" href="https://academy.hsoub.com/uploads/monthly_2021_12/06_Multiple_Cell_Range_Output.png.b391220aff30323bbd51af62433ae6e6.png" rel=""><img alt="06_Multiple_Cell_Range_Output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84657" data-unique="ehvqzl4a1" src="https://academy.hsoub.com/uploads/monthly_2021_12/06_Multiple_Cell_Range_Output.png.b391220aff30323bbd51af62433ae6e6.png"></a>
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_3518_18" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">Main</span><span class="pln">

    </span><span class="typ">Dim</span><span class="pln"> oDoc</span><span class="pun">,</span><span class="pln"> oSel

    oDoc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
    oSel </span><span class="pun">=</span><span class="pln"> oDoc</span><span class="pun">.</span><span class="pln">getCurrentSelection</span><span class="pun">()</span><span class="pln">

    </span><span class="typ">If</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">supportsService</span><span class="pun">(</span><span class="str">"com.sun.star.sheet.SheetCell"</span><span class="pun">)</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">"One Cell selected and it contains: "</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">getString</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Else</span><span class="pln">
        </span><span class="typ">If</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">supportsService</span><span class="pun">(</span><span class="str">"com.sun.star.sheet.SheetCellRange"</span><span class="pun">)</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">"One Cell Range selected"</span><span class="pln">
        </span><span class="typ">Else</span><span class="pln">
            </span><span class="typ">If</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">supportsService</span><span class="pun">(</span><span class="str">"com.sun.star.sheet.SheetCellRanges"</span><span class="pun">)</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">"Multiple Cell Ranges selected. Total="</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln"> oSel</span><span class="pun">.</span><span class="pln">getCount</span><span class="pun">()</span><span class="pln">
            </span><span class="typ">Else</span><span class="pln">
                </span><span class="typ">Print</span><span class="pln"> </span><span class="str">"Somethine else is selected."</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">If</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>

<h2>
	معالجة مجال من الخلايا باستخدام الماكرو في ليبرأوفيس كالك
</h2>

<p>
	نحتاج في العديد من مهام الأتمتة إلى الوصول إلى <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">جدول البيانات</a> باستخدام مجال Range من الخلايا لتقليل وقت المعالجة، حيث يمكن الوصول إلى كل خلية باستخدام طريقة "صف، عمود row, column" التي تُعَد طريقة مكلفة من حيث وقت المعالجة والتعقيد، وبالتالي يُفضَّل استخدام المجال على معالجة الخلية المفردة. سنتحدث فيما يلي عن كيفية معالجة "مجال Range" في تطبيق جداول البيانات ليبرأوفيس كالك من خلال الكتابة ضمن مجالات جداول البيانات.
</p>

<h3>
	تحديد المجال
</h3>

<p>
	يُحدَّد المجال باستخدام "عنوان خلية البداية: عنوان خلية النهاية start<em>cell</em>address: stop<em>cell</em>address"، حيث تُحدَّد الأعمدة في كالك باستخدام الأحرف مثل "A" و "B" و "C"، وتُحدَّد الصفوف باستخدام أرقام تبدأ من الرقم 1، وبالتالي يشير المجال "A1: D5" إلى جميع الخلايا التي تبدأ من الخلية (1,1) إلى الخلية (4,5) كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84658" href="https://academy.hsoub.com/uploads/monthly_2021_12/07_A-simple-Range.png.c4d0ad9035ec0fcbe3e46ccc82b366f2.png" rel=""><img alt="07_A-simple-Range.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84658" data-unique="guesehju6" src="https://academy.hsoub.com/uploads/monthly_2021_12/07_A-simple-Range.png.c4d0ad9035ec0fcbe3e46ccc82b366f2.png"></a>
</p>

<p style="text-align: center;">
	مجال بسيط
</p>

<h3>
	إنشاء الماكرو
</h3>

<p>
	أنشئ ماكرو جديدًا في ليبرأوفيس كالك، ثم أضف دالة مثل <code>rang_processing_demo()‎</code> التي تشير إلى <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">جدول بيانات</a> قبل أن نبدأ في معالجة المجال.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_21" style="">
<span class="typ">Sub</span><span class="pln"> range_processing_demo
      dim my_doc   </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
      </span><span class="typ">Dim</span><span class="pln"> my_sheets </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
      </span><span class="typ">Dim</span><span class="pln"> my_range </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
      my_doc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
      my_sheets </span><span class="pun">=</span><span class="pln"> my_doc</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pln"> 
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

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

<h3>
	ضبط خلية واحدة باستخدام مجال
</h3>

<p>
	يمكن ضبط المجالات باستخدام الدالة <code>setDataArray(array)‎</code>، فوسيط هذه الدالة هو مصفوفة ثنائية الأبعاد لها حجم المجال نفسه. إذا اخترت المجال "A1" الذي لا يمثل سوى خلية واحدة، فيجب أن يكون للمصفوفة المقابلة قيمة واحدة فقط، وبالتالي يجب تحديد مصفوفة تحتوي على عنصر واحد فقط وضبط قيمتها كما يلي:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_3518_23" style="">
<span class="typ">Dim</span><span class="pln"> my_data</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="pln">             
my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple"</span></pre>

<p>
	حدّد بعد ذلك مجالًا من خلية واحدة مثل "A1"، وضع المصفوفة المحدَّدة ضمن الدالة <code>setDataArray()‎</code>.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_25" style="">
<span class="pln">my_range </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"A1"</span><span class="pun">)</span><span class="pln">
my_range</span><span class="pun">.</span><span class="pln">setDataArray</span><span class="pun">(</span><span class="pln">my_data</span><span class="pun">)</span></pre>

<p>
	إذا شغّلت الشيفرة السابقة، فستكون النتيجة كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84659" href="https://academy.hsoub.com/uploads/monthly_2021_12/08_single-cell.png.f331627c9e6cf6b2fe56902e92cacee2.png" rel=""><img alt="08_single-cell.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84659" data-unique="x3z7y10iq" src="https://academy.hsoub.com/uploads/monthly_2021_12/08_single-cell.png.f331627c9e6cf6b2fe56902e92cacee2.png"></a>
</p>

<p style="text-align: center;">
	تعبئة خلية واحدة باستخدام مجال
</p>

<h3>
	ضبط صف من الخلايا باستخدام مجال
</h3>

<p>
	نريد تعبئة صف الخلايا من A3 إلى C3 باستخدام مجال، لذلك نحتاج إلى تحديد مصفوفة أبعادها (0,2)، حيث يمثل الرقم 0 عدد الصفوف ويمثل الرقم 2 عدد الأعمدة. لاحظ أن الأعمدة تبدأ من 0، وبالتالي نريد تعبئة 3 أعمدة من 0 إلى 2.
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3518_28" style="">
<span class="str">'</span><span class="pln"> </span><span class="typ">Set</span><span class="pln"> a row of cells using range
    </span><span class="typ">ReDim</span><span class="pln"> my_data</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">          
    my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple"</span><span class="pln">
    my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Red"</span><span class="pln">
    my_range </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"A3:C3"</span><span class="pun">)</span><span class="pln">
    my_range</span><span class="pun">.</span><span class="pln">setDataArray</span><span class="pun">(</span><span class="pln">my_data</span><span class="pun">)</span><span class="pln">  </span></pre>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84660" href="https://academy.hsoub.com/uploads/monthly_2021_12/09_Fill-Rows-Using-Range.png.9fc811b4c7365239f4e4599cda8b218e.png" rel=""><img alt="09_Fill-Rows-Using-Range.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84660" data-unique="y9y4dsrro" src="https://academy.hsoub.com/uploads/monthly_2021_12/09_Fill-Rows-Using-Range.png.9fc811b4c7365239f4e4599cda8b218e.png"></a>
</p>

<p style="text-align: center;">
	تعبئة الصفوف باستخدام مجال
</p>

<h3>
	ضبط أعمدة من الخلايا باستخدام مجال
</h3>

<p>
	نريد تعبئة عمود واحد بعدة صفوف من خلال تحديد مصفوفة أبعادها (2,0) وكتابة الشيفرة التالية:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3518_30" style="">
<span class="str">'</span><span class="pln"> </span><span class="typ">Set</span><span class="pln"> a column of cells using range
    </span><span class="typ">ReDim</span><span class="pln"> my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln">          
    my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Red"</span><span class="pln">
    my_range </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"C1:C3"</span><span class="pun">)</span><span class="pln">
    my_range</span><span class="pun">.</span><span class="pln">setDataArray</span><span class="pun">(</span><span class="pln">my_data</span><span class="pun">)</span><span class="pln">  </span></pre>

<p>
	وتكون النتيجة كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84661" href="https://academy.hsoub.com/uploads/monthly_2021_12/10_Fill-Columns-using-Range.png.9a3db76372651e0f04825a30c18e8818.png" rel=""><img alt="10_Fill-Columns-using-Range.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84661" data-unique="ftomszgmo" src="https://academy.hsoub.com/uploads/monthly_2021_12/10_Fill-Columns-using-Range.png.9a3db76372651e0f04825a30c18e8818.png"></a>
</p>

<p style="text-align: center;">
	تعبئة الأعمدة باستخدام مجال
</p>

<h3>
	ضبط صف وعمود من الخلايا بالحجم نفسه باستخدام مجال
</h3>

<p>
	نريد تعبئة مجالات الصفوف والأعمدة باستخدام الحجم نفسه، لذلك لنحدّد مصفوفة أبعادها (2,2) كما يلي:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3518_32" style="">
<span class="str">'</span><span class="pln"> </span><span class="typ">Set</span><span class="pln"> row and column of same size using range
    </span><span class="typ">ReDim</span><span class="pln"> my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">          
        my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple"</span><span class="pln">
    my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Red"</span><span class="pln">

        my_data</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple-1"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000-1"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Red-1"</span><span class="pln">

        my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple-2"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000-2"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Red-2"</span><span class="pln">

    my_range </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"B2:D4"</span><span class="pun">)</span><span class="pln">
    my_range</span><span class="pun">.</span><span class="pln">setDataArray</span><span class="pun">(</span><span class="pln">my_data</span><span class="pun">)</span><span class="pln">  </span></pre>

<p>
	ويكون الخرج كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84662" href="https://academy.hsoub.com/uploads/monthly_2021_12/11_Fill-Rows-and-Columns-of-Same-Size-using-Range.png.c418eaf87b2a3efe1a53fc60367a5fc8.png" rel=""><img alt="11_Fill-Rows-and-Columns-of-Same-Size-using-Range.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84662" data-unique="ss4zm5ikh" src="https://academy.hsoub.com/uploads/monthly_2021_12/11_Fill-Rows-and-Columns-of-Same-Size-using-Range.png.c418eaf87b2a3efe1a53fc60367a5fc8.png"></a>
</p>

<p style="text-align: center;">
	تعبئة الصفوف والأعمدة من الحجم نفسه باستخدام مجال
</p>

<h3>
	ضبط صف وعمود من الخلايا ذات أبعاد مختلفة باستخدام مجال
</h3>

<p>
	نريد تعبئة مجال بأبعاد مختلفة من خلال تحديد مصفوفة ذات أبعاد مختلفة كما يلي:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3518_34" style="">
<span class="str">'</span><span class="pln"> </span><span class="typ">Set</span><span class="pln"> row and column of different size using range
    </span><span class="typ">ReDim</span><span class="pln"> my_data</span><span class="pun">(</span><span class="lit">3</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">          
        my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple"</span><span class="pln">
    my_data</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="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000"</span><span class="pln">

        my_data</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple-1"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000-1"</span><span class="pln">

        my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple-2"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000-2"</span><span class="pln">

        my_data</span><span class="pun">(</span><span class="lit">3</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Apple-3"</span><span class="pln">
    my_data</span><span class="pun">(</span><span class="lit">3</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"1000-3"</span><span class="pln">

    my_range </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellRangebyName</span><span class="pun">(</span><span class="str">"B2:C5"</span><span class="pun">)</span><span class="pln">
    my_range</span><span class="pun">.</span><span class="pln">setDataArray</span><span class="pun">(</span><span class="pln">my_data</span><span class="pun">)</span></pre>

<p>
	ويكون الخرج كما يلي:
</p>

<p style="text-align: center;">
	<img alt="Fill-Rows-and-Columns-of-Different-Size-using-Range (1)(1).png" class="ipsImage ipsImage_thumbnailed" data-fileid="84671" data-unique="kqvpieuqx" src="https://academy.hsoub.com/uploads/monthly_2021_12/61af329a02785_Fill-Rows-and-Columns-of-Different-Size-using-Range(1)(1).png.9e5b758429feb8855ec52f5445bb1b7d.png"></p>

<p>
	تعبئة الصفوف والأعمدة ذات القيم المختلفة باستخدام مجال
</p>

<p>
	حدّد حجم المصفوفة الخاص بك باستخدام (row, col) واستخدم الدالة <code>setDataArray()‎</code> لتعبئة المجال باستخدام الماكرو.
</p>

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

<p>
	سنوضّح كيفية الحصول على العنوان الذي يمكن قراءته الخاص بالخلايا والمجالات المحدَّدة باستخدام الماكرو.
</p>

<h3>
	التحديدات
</h3>

<p>
	يمكن تحديد خلية واحدة أو خلايا متعددة -أي مجالات- في كالك. عرّف بعض المتغيرات للاحتفاظ بنسخ من الخلية الفعّالة <code>activeCell</code> والتحويل Conversion كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_36" style="">
<span class="typ">Dim</span><span class="pln"> oActiveCell
</span><span class="typ">Dim</span><span class="pln"> oConv</span></pre>

<p>
	استخدم الدالة <code>getCurrentSelection</code> للحصول على التحديد الحالي من وحدة التحكم.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_38" style="">
<span class="pln">oActiveCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">getCurrentSelection</span><span class="pun">()</span></pre>

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

<ul>
<li>
		<code>com.sun.star.table.CellRangeAddressConversion</code>
	</li>
	<li>
		<code>com.sun.star.table.CellAddressConversion</code>
	</li>
</ul>
<p>
	أنشئ نسخًا من هذه الخدمات باستخدام الدالة <code>createInstance</code> كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_40" style="">
<span class="pln">oConv </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">createInstance</span><span class="pun">(</span><span class="str">"com.sun.star.table.CellRangeAddressConversion"</span><span class="pun">)</span><span class="pln">
oConv </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">createInstance</span><span class="pun">(</span><span class="str">"com.sun.star.table.CellAddressConversion"</span><span class="pun">)</span></pre>

<p>
	يمكنك بعد ذلك تعبئة خاصية العنوان Address من عنوان الخلية أو المجال المحدَّد باستخدام الشيفرة التالية:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_42" style="">
<span class="pln">oConv</span><span class="pun">.</span><span class="typ">Address</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> oActiveCell</span><span class="pun">.</span><span class="pln">getRangeAddress
  oConv</span><span class="pun">.</span><span class="typ">Address</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> oActiveCell</span><span class="pun">.</span><span class="pln">getCellAddress</span></pre>

<p>
	ستعيد دالتان مهمتان خاصتان بكائن التحويل عنوان الخلية أو المجال الذي يمكن قراءته هما:
</p>

<ul>
<li>
		<code>UserInterfaceRepresentation</code>: تعيد عمود وصف الخلية، مثل A1 و B3 عند تحديد خلية واحدة، وتعيد مجالًا مثل A1: C3 و B1: E4 عند تحديد مجال
	</li>
	<li>
		<code>PersistentRepresentation</code>: تعيد الشيء نفسه مع اسم ورقة العمل الحالية مثل Sheet1.A1 و Sheet1.B3 و Sheet1.A1:Sheet1.C3 و Sheet1.B1:Sheet1.E4، حيث تكون جميع القيم المُعادة سلسلة نصية String ويمكن معالجتها وفقًا لذلك.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_3518_44" style="">
<span class="pln">msgbox  oConv</span><span class="pun">.</span><span class="typ">UserInterfaceRepresentation</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"> oConv</span><span class="pun">.</span><span class="typ">PersistentRepresentation</span></pre>

<h3>
	تشغيل الماكرو
</h3>

<p>
	خرج تحديد خلية واحدة:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84663" href="https://academy.hsoub.com/uploads/monthly_2021_12/13_getCellAddress-Demo.png.057032848c346188816fff7423f2a875.png" rel=""><img alt="13_getCellAddress-Demo.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84663" data-unique="4n2gbx20x" src="https://academy.hsoub.com/uploads/monthly_2021_12/13_getCellAddress-Demo.png.057032848c346188816fff7423f2a875.png"></a>
</p>

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

<p>
	خرج تحديد مجال من الخلايا:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84664" href="https://academy.hsoub.com/uploads/monthly_2021_12/14_getRangeAddress-Demo.png.75a118e8272c1178d2da19dd3c659107.png" rel=""><img alt="14_getRangeAddress-Demo.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84664" data-unique="y8hvedc1e" src="https://academy.hsoub.com/uploads/monthly_2021_12/14_getRangeAddress-Demo.png.75a118e8272c1178d2da19dd3c659107.png"></a>
</p>

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

<h3>
	شيفرة الماكرو الكاملة
</h3>

<p>
	الشيفرة الخاصة بالخلايا:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_3518_46" style="">
<span class="typ">Sub</span><span class="pln"> get_cell_address

    oActiveCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">getCurrentSelection</span><span class="pun">()</span><span class="pln">

    oConv </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">createInstance</span><span class="pun">(</span><span class="str">"com.sun.star.table.CellAddressConversion"</span><span class="pun">)</span><span class="pln">
    oConv</span><span class="pun">.</span><span class="typ">Address</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> oActiveCell</span><span class="pun">.</span><span class="pln">getCellAddress

    msgbox  oConv</span><span class="pun">.</span><span class="typ">UserInterfaceRepresentation</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"> oConv</span><span class="pun">.</span><span class="typ">PersistentRepresentation</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-javascript prettyprinted" id="ips_uid_3518_48" style="">
<span class="typ">Sub</span><span class="pln"> get_range_address

    oActiveCell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">getCurrentSelection</span><span class="pun">()</span><span class="pln">

    oConv </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="pln">createInstance</span><span class="pun">(</span><span class="str">"com.sun.star.table.CellRangeAddressConversion"</span><span class="pun">)</span><span class="pln">
    oConv</span><span class="pun">.</span><span class="typ">Address</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> oActiveCell</span><span class="pun">.</span><span class="pln">getRangeAddress

    msgbox  oConv</span><span class="pun">.</span><span class="typ">UserInterfaceRepresentation</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"> oConv</span><span class="pun">.</span><span class="typ">PersistentRepresentation</span><span class="pln">

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

<p>
	ترجمة -وبتصرُّف- للمقالات <a href="https://www.debugpoint.com/2015/03/calc-cell-selection-processing-using-macro/" rel="external nofollow">Calc Cell Selection Processing Using Macro</a> و <a href="https://www.debugpoint.com/2014/10/range-processing-using-macro-in-libreoffice-calc-part-1/" rel="external nofollow">Range Processing using Macro in LibreOffice Calc – Part 1</a> و <a href="https://www.debugpoint.com/2015/07/get-the-selection-cell-and-range-address-using-macro-in-libreoffice/" rel="external nofollow">Get the Selection Cell and Range Address using Macro in LibreOffice</a> لصاحبها Arindam.
</p>

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/" rel="">كيفية إدخال البيانات في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r280/" rel="">كيفية تنسيق البيانات في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية تحرير البيانات في LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">568</guid><pubDate>Tue, 07 Dec 2021 19:57:55 +0000</pubDate></item><item><title>&#x645;&#x639;&#x627;&#x644;&#x62C;&#x629; &#x645;&#x62D;&#x62A;&#x648;&#x64A;&#x627;&#x62A; &#x62E;&#x644;&#x627;&#x64A;&#x627; &#x644;&#x64A;&#x628;&#x631;&#x623;&#x648;&#x641;&#x64A;&#x633; &#x643;&#x627;&#x644;&#x643; &#x628;&#x627;&#x633;&#x62A;&#x62E;&#x62F;&#x627;&#x645; &#x627;&#x644;&#x645;&#x627;&#x643;&#x631;&#x648;</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AD%D8%AA%D9%88%D9%8A%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%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-r567/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_12/61af1881ae046_------.png.44528d758136e628ce64f7d31615ec12.png" /></p>

<p>
	تتكون تطبيقات جداول البيانات مثل كالك Calc من مصنفات workbooks وأوراق عمل worksheets وخلايا Cells يجب معالجتها <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</a> لأتمتة المهام المختلفة. سنشرح فيما يلي <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">المعالجة الأساسية لأوراق العمل والخلايا ومحتوياتها</a> التي تُعَد أساسًا للعديد من الماكرو المعقّد.
</p>

<p>
	هذا المقال جزء من سلسلة مقالات حول إنشاء ماكرو في <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">ليبرأوفيس كالك</a>، فهرس السلسلة:
</p>

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/" rel="">مدخل إلى كتابة ماكرو Macro في ليبرأوفيس كالك LibreOffice Calc</a>
	</li>
	<li>
		معالجة محتويات خلايا ليبرأوفيس كالك باستخدام الماكرو
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AC%D8%A7%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r568/" rel="">معالجة مجال من الخلايا باستخدام الماكرو في ليبرأوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D9%88%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D9%81%D8%AA%D8%AD-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%85%D9%86-%D8%AE%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-r569/" rel="">استخدام عناصر التحكم بالنماذج ونافذة فتح الملفات من خلال الماكرو في ليبرأوفيس</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D9%85%D8%B1%D8%A8%D8%B9-%D8%A7%D9%84%D8%AD%D9%88%D8%A7%D8%B1-%D9%88%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r570/" rel="">التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبرأوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%AD%D9%81%D8%B8-%D8%A3%D9%88%D8%B1%D8%A7%D9%82-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-pdf-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-r571/" rel="">أتمتة حفظ أوراق ليبرأوفيس كالك بتنسيق PDF باستعمال الماكرو</a>
	</li>
</ul>
<h2>
	أوراق عمل مصنفات ليبرأوفيس LibreOffice ومعالجة الخلايا باستخدام الماكرو
</h2>

<p>
	سنقرأ جدول بيانات كالك مكوَّن من 3 أوراق وسنقرأ محتوياته، ثم سنعرض محتويات القراءة المنسَّقة في نافذة الرسالة.
</p>

<p>
	تحتوي الورقة 1 و الورقة 2 و الورقة 3 على البيانات التالية:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84636" href="https://academy.hsoub.com/uploads/monthly_2021_12/01_LO_Trav_demo1.png.bbf9a52cd4f5bdd23e5e2e1999518f2e.png" rel=""><img alt="01_LO_Trav_demo1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84636" data-unique="xpnmvo9mi" src="https://academy.hsoub.com/uploads/monthly_2021_12/01_LO_Trav_demo1.png.bbf9a52cd4f5bdd23e5e2e1999518f2e.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84637" href="https://academy.hsoub.com/uploads/monthly_2021_12/02_LO_Trav_demo2.png.8ffd3ae071a0cd59c43dbfd3aed2f334.png" rel=""><img alt="02_LO_Trav_demo2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84637" data-unique="r1672cyon" src="https://academy.hsoub.com/uploads/monthly_2021_12/02_LO_Trav_demo2.png.8ffd3ae071a0cd59c43dbfd3aed2f334.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84638" href="https://academy.hsoub.com/uploads/monthly_2021_12/03_LO_Trav_demo3.png.be7e63e9dd2395df837af7074f05571b.png" rel=""><img alt="03_LO_Trav_demo3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84638" data-unique="htmijn1jk" src="https://academy.hsoub.com/uploads/monthly_2021_12/03_LO_Trav_demo3.png.be7e63e9dd2395df837af7074f05571b.png"></a>
</p>

<h3>
	تفاصيل الشيفرة
</h3>

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

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_10" style="">
<span class="pln">dim my_doc   </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> my_sheets </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> my_cell </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span></pre>

<p>
	اضبط <code>my_doc</code> باستخدام <code>ThisComponent</code> الذي يشير إلى أن مصنف كالك الحالي مفتوح، ثم يمكنك إسناد مجموعة الأوراق إلى كائن <code>my_sheets</code> للوصول إلى جميع أوراق المصنف، وتُسنَد جميع الأوراق إلى كائن <code>my_sheets</code> بوصفها مصفوفة، حيث يمكن الوصول إليها من خلال استخدام الدليل السفلي subscript مثل <code>Sheets(0)‎</code> و <code>Sheets(1)‎</code> وما إلى ذلك (لاحظ أن الدليل السفلي subscript يبدأ من الصفر).
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_12" style="">
<span class="pln">my_doc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
my_sheets </span><span class="pun">=</span><span class="pln"> my_doc</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pln"> 
sheet_count </span><span class="pun">=</span><span class="pln"> my_sheets</span><span class="pun">.</span><span class="typ">Count</span></pre>

<p>
	يمكننا الوصول إلى كل خلية باستخدام التابع <code>getCellByPosition</code> بمجرد أن نحصل على مقبض إلى الورقة باستخدام <code>Sheets(subscript)‎</code>. الطريقة النموذجية للوصول إلى خلية هي على النحو التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_14" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="pln">i</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="pln">col</span><span class="pun">,</span><span class="pln">row</span><span class="pun">)</span></pre>

<p>
	لاحظ أن وسطاء التابع <code>getCellByPosition</code> هي عمود column ثم صف row.
</p>

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

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_16" style="">
<span class="pln">com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">table</span><span class="pun">.</span><span class="typ">CellContentType</span><span class="pun">.</span><span class="pln">VALUE   </span><span class="str">' Used for cells containing numbers
com.sun.star.table.CellContentType.TEXT    '</span><span class="pln"> </span><span class="typ">Used</span><span class="pln"> </span><span class="kwd">for</span><span class="pln"> cells containing characters
com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">table</span><span class="pun">.</span><span class="typ">CellContentType</span><span class="pun">.</span><span class="pln">EMPTY    </span><span class="str">' Used for empty cells
com.sun.star.table.CellContentType.FORMULA    '</span><span class="pln"> </span><span class="typ">Used</span><span class="pln"> </span><span class="kwd">for</span><span class="pln"> cells containing formula</span></pre>

<p>
	استخدم جزء الشيفرة التالي للوصول إلى قيم الخلية في مثالنا:
</p>

<pre class="ipsCode">
Select Case my_cell.Type
  Case com.sun.star.table.CellContentType.VALUE
    cell_value = my_cell.Value
  Case com.sun.star.table.CellContentType.TEXT
    cell_value = my_cell.String
End Select
</pre>

<h3>
	تشغيل الشيفرة
</h3>

<p>
	سنربط قيم كل خلية بطريقة منسَّقة ونعرضها في مربع رسالة، ثم تظهر جميع قيم الخلايا من جميع الأوراق على النحو التالي بعد تشغيل الشيفرة (راجع فقرة "الشيفرة الكاملة" أدناه):
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84639" href="https://academy.hsoub.com/uploads/monthly_2021_12/04_LO_Trav_demo4.png.f6ccc059c52de06ac22df517849dfe16.png" rel=""><img alt="04_LO_Trav_demo4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84639" data-unique="c3vtbpolw" src="https://academy.hsoub.com/uploads/monthly_2021_12/04_LO_Trav_demo4.png.f6ccc059c52de06ac22df517849dfe16.png"></a>
</p>

<h3>
	الشيفرة الكاملة
</h3>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_25" style="">
<span class="typ">Sub</span><span class="pln"> processing_sheets_cells

    dim my_doc   as object
    </span><span class="typ">Dim</span><span class="pln"> my_sheets as object
    </span><span class="typ">Dim</span><span class="pln"> my_cell as object

    </span><span class="typ">Dim</span><span class="pln"> sheet_count</span><span class="pun">,</span><span class="pln"> i</span><span class="pun">,</span><span class="pln"> row</span><span class="pun">,</span><span class="pln"> col</span><span class="pun">,</span><span class="pln"> cell_value</span><span class="pun">,</span><span class="pln"> str

    my_doc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
    my_sheets </span><span class="pun">=</span><span class="pln"> my_doc</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pln"> 
    sheet_count </span><span class="pun">=</span><span class="pln"> my_sheets</span><span class="pun">.</span><span class="typ">Count</span><span class="pln">

    </span><span class="kwd">for</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> to sheet_count </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pln">        
        str </span><span class="pun">=</span><span class="pln"> str </span><span class="pun">&amp;</span><span class="pln"> chr</span><span class="pun">(</span><span class="lit">13</span><span class="pun">)</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"> chr</span><span class="pun">(</span><span class="lit">13</span><span class="pun">)</span><span class="pln">  
        </span><span class="kwd">for</span><span class="pln"> row</span><span class="pun">=</span><span class="lit">1</span><span class="pln"> to </span><span class="lit">4</span><span class="pln">
                </span><span class="kwd">for</span><span class="pln"> col</span><span class="pun">=</span><span class="lit">0</span><span class="pln"> to </span><span class="lit">1</span><span class="pln">
                    my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="pln">i</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="pln">col</span><span class="pun">,</span><span class="pln">row</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"> my_cell</span><span class="pun">.</span><span class="typ">Type</span><span class="pln">
                        </span><span class="typ">Case</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">table</span><span class="pun">.</span><span class="typ">CellContentType</span><span class="pun">.</span><span class="pln">VALUE
                            cell_value </span><span class="pun">=</span><span class="pln"> my_cell</span><span class="pun">.</span><span class="typ">Value</span><span class="pln">
                        </span><span class="typ">Case</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">table</span><span class="pun">.</span><span class="typ">CellContentType</span><span class="pun">.</span><span class="pln">TEXT
                            cell_value </span><span class="pun">=</span><span class="pln"> my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln">
                    </span><span class="typ">End</span><span class="pln"> </span><span class="typ">Select</span><span class="pln">
                    str </span><span class="pun">=</span><span class="pln"> str </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"> cell_value
                next col
                str </span><span class="pun">=</span><span class="pln"> str </span><span class="pun">&amp;</span><span class="pln"> </span><span class="typ">Chr</span><span class="pun">(</span><span class="lit">13</span><span class="pun">)</span><span class="pln">
        next row
    next i
    msgbox str

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

<h2>
	معالجة السلاسل النصية String في ماكرو ليبرأوفيس كالك مع أمثلة عنها
</h2>

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

<p>
	لنضع 3 سلاسل نصية في ورقة ليبرأوفيس كالك ونضمّها كما هو موضّح أدناه:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84640" href="https://academy.hsoub.com/uploads/monthly_2021_12/05_LibreOffice-Calc-Macro-Join-Data.png.83e272e802754bb70a012ef86707d1fa.png" rel=""><img alt="05_LibreOffice-Calc-Macro-Join-Data.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84640" data-unique="8qxt68ffa" src="https://academy.hsoub.com/uploads/monthly_2021_12/05_LibreOffice-Calc-Macro-Join-Data.png.83e272e802754bb70a012ef86707d1fa.png"></a>
</p>

<h3>
	ضم Joining السلاسل في كالك
</h3>

<p>
	استخدم المعامل "&amp;" لضم سلسلتين أو نصين، حيث سنستخدم هذا المعامل لضم ثلاثة أعمدة من السلاسل النصية ووضع النتائج في عمود آخر كما يلي:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_27" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">String_join</span><span class="pun">()</span><span class="pln">
  part1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln">
  part2 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> 
  part3 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">

  result_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">3</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
  result_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> part1</span><span class="pun">.</span><span class="typ">String</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"> part2</span><span class="pun">.</span><span class="typ">String</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"> part3</span><span class="pun">.</span><span class="typ">String</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="84641" href="https://academy.hsoub.com/uploads/monthly_2021_12/06_LibreOffice-Calc-Macro-Join.png.dc18999e7c3650bc240ae35012b34eb2.png" rel=""><img alt="06_LibreOffice-Calc-Macro-Join.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84641" data-unique="glr7dom1l" src="https://academy.hsoub.com/uploads/monthly_2021_12/06_LibreOffice-Calc-Macro-Join.png.dc18999e7c3650bc240ae35012b34eb2.png"></a>
</p>

<p style="text-align: center;">
	ماكرو ليبرأوفيس كالك - الضم Join
</p>

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

<h3>
	الدالة Left
</h3>

<p>
	تعيد الدالة <code>Left</code> عدد المحارف من جانب السلسلة النصية الأيسر، حيث يمكن تحديد عدد المحارف في وسيط الدالة. ضع السلسلة "www.google.com" في الخلية A1 وشغّل الدالة على الخلية A1 على النحو التالي، حيث ستعيد هذه الدالة السلسلة الفرعية "www".
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_29" style="">
<span class="typ">Sub</span><span class="pln"> left_demo</span><span class="pun">()</span><span class="pln">
  part1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln">
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> left</span><span class="pun">(</span><span class="pln">part1</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</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>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84642" href="https://academy.hsoub.com/uploads/monthly_2021_12/07_LibreOffice-Calc-Macro-Left-Example.png.013649faac075ea998ba9d14575fd3c3.png" rel=""><img alt="07_LibreOffice-Calc-Macro-Left-Example.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84642" data-unique="tv4w2u7ma" src="https://academy.hsoub.com/uploads/monthly_2021_12/07_LibreOffice-Calc-Macro-Left-Example.png.013649faac075ea998ba9d14575fd3c3.png"></a>
</p>

<p style="text-align: center;">
	ماكرو ليبرأوفيس كالك - مثال Left
</p>

<h3>
	الدالة Right
</h3>

<p>
	تعيد الدالة <code>Right</code> عدد المحارف المُعطَى من الجانب الأيمن، حيث ستعيد هذه الدالة أدناه السلسلة النصية "com" مع المثال السابق نفسه.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_31" style="">
<span class="typ">Sub</span><span class="pln"> right_demo</span><span class="pun">()</span><span class="pln">
  part1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln">
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> right</span><span class="pun">(</span><span class="pln">part1</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</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>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84643" href="https://academy.hsoub.com/uploads/monthly_2021_12/08_LibreOffice-Calc-Macro-Right-Example.png.6c049ec33cbcff3909f87bb3cd9abc68.png" rel=""><img alt="08_LibreOffice-Calc-Macro-Right-Example.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84643" data-unique="y4zqpssrt" src="https://academy.hsoub.com/uploads/monthly_2021_12/08_LibreOffice-Calc-Macro-Right-Example.png.6c049ec33cbcff3909f87bb3cd9abc68.png"></a>
</p>

<p style="text-align: center;">
	ماكرو ليبرأوفيس كالك - مثال Right
</p>

<h3>
	الدالة Mid
</h3>

<p>
	تعيد الدالة <code>Mid</code> حجم سلسلة فرعية من سلسلة نصية معينة. وسطاء الدالة <code>Mid</code> هي (السلسلة النصية string، وموضع البداية start position، وطول السلسلة الفرعية length of the sub-string). ضع سلاسلًا نصية في عمود ضمن ليبرأوفيس كالك، ثم شغّل الدالة <code>Mid</code>، حيث تُحوَّل السلاسل من العمود A إلى سلسلة فرعية موجودة في العمود B في المثال أدناه، إذ تبدأ السلسلة الفرعية من المحرف رقم 4 من السلسلة ويبلغ الطول 6 محارف.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_33" style="">
<span class="typ">Sub</span><span class="pln"> mid_demo</span><span class="pun">()</span><span class="pln">
  part1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln"> 
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> mid</span><span class="pun">(</span><span class="pln">part1</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</span><span class="lit">5</span><span class="pun">,</span><span class="lit">6</span><span class="pun">)</span><span class="pln"> 

  part2 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">String</span><span class="pun">=</span><span class="pln"> mid</span><span class="pun">(</span><span class="pln">part2</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</span><span class="lit">5</span><span class="pun">,</span><span class="lit">6</span><span class="pun">)</span><span class="pln"> 

  part3 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> mid</span><span class="pun">(</span><span class="pln">part3</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</span><span class="lit">5</span><span class="pun">,</span><span class="lit">6</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="84644" href="https://academy.hsoub.com/uploads/monthly_2021_12/09_LibreOffice-Calc-Macro-Mid-Example.png.83460b1d671ee285bb4775c2d074e16d.png" rel=""><img alt="09_LibreOffice-Calc-Macro-Mid-Example.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84644" data-unique="lcwqobf1w" src="https://academy.hsoub.com/uploads/monthly_2021_12/09_LibreOffice-Calc-Macro-Mid-Example.png.83460b1d671ee285bb4775c2d074e16d.png"></a>
</p>

<p style="text-align: center;">
	ماكرو ليبرأوفيس كالك - مثال Mid
</p>

<h3>
	الدالة Trim
</h3>

<p>
	تُستخدَم الدالة <code>Trim</code> لإزالة المسافات البادئة واللاحقة من سلسلة نصية، حيث يمكن استخدام هذه الدالة كما يلي: <code>Trim(your_string_here)‎</code>.
</p>

<h3>
	الدالة Len
</h3>

<p>
	تعيد الدالة <code>Len</code> عدد محارف السلسلة، أي طول السلسلة، حيث تُستخدَم كما يلي: <code>Len(string)‎</code>.
</p>

<h3>
	الدالة Instr
</h3>

<p>
	تُستخدَم الدالة <code>Instr</code> للبحث عن سلسلة ضمن سلسلة أخرى. إذا عُثِر على تطابق، فستعيد الدالة <code>Instr</code> رقم موضع بداية السلسلة التي يجري البحث عنها، وإن لم يُعثَر عليها، فستُعاد القيمة 0.
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_121_35" style="">
<span class="typ">Sub</span><span class="pln"> instr_demo</span><span class="pun">()</span><span class="pln">
  part1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</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="pln"> 
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> instr</span><span class="pun">(</span><span class="pln">part1</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</span><span class="str">"oogl"</span><span class="pun">)</span><span class="pln"> 

  part2 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> instr</span><span class="pun">(</span><span class="pln">part2</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</span><span class="str">"dd"</span><span class="pun">)</span><span class="pln"> 

  part3 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
  result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellByPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
  result</span><span class="pun">.</span><span class="typ">Value</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> instr</span><span class="pun">(</span><span class="pln">part3</span><span class="pun">.</span><span class="typ">String</span><span class="pun">,</span><span class="str">"untu"</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="84645" href="https://academy.hsoub.com/uploads/monthly_2021_12/10_LibreOffice-Calc-Macro-Instr-Example.png.b0ddaaa53118ca13ec43bc897fe66bd4.png" rel=""><img alt="10_LibreOffice-Calc-Macro-Instr-Example.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84645" data-unique="obq8193j2" src="https://academy.hsoub.com/uploads/monthly_2021_12/10_LibreOffice-Calc-Macro-Instr-Example.png.b0ddaaa53118ca13ec43bc897fe66bd4.png"></a>
</p>

<p style="text-align: center;">
	ماكرو ليبرأوفيس كالك - مثال Instr
</p>

<h2>
	معالجة التاريخ والوقت في ليبرأوفيس كالك باستخدام الماكرو
</h2>

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

<h3>
	إضافة أيام وشهور إلى تاريخ
</h3>

<p>
	يمكن التصريح عن متغير التاريخ كما يلي:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_39" style="">
<span class="typ">Dim</span><span class="pln"> my_date </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Date</span></pre>

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

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_121_43" style="">
<span class="pln">my_date </span><span class="pun">=</span><span class="pln"> </span><span class="typ">DateValue</span><span class="pun">(</span><span class="str">"Nov 20, 2014"</span><span class="pun">)</span><span class="pln">
my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> my_date</span></pre>

<p>
	يمكن إضافة 3 أيام إلى التاريخ السابق باستخدم الدالة <code>DateAdd()‎</code>. يحدّد وسيط هذه الدالة الأول أيّ جزء من التاريخ يجب زيادته. إذا مرّرت الحرف "d"، فسيُزاد جزء اليوم من التاريخ، وإذا استخدمتَ الحرف "m"، فسيؤدي ذلك إلى زيادة جزء الأشهر في التاريخ. يمكن زيادة التاريخ بمقدار 3 أيام كما يلي:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_47" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">3</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">DateAdd</span><span class="pun">(</span><span class="str">"d"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> my_date</span><span class="pun">)</span></pre>

<p>
	يمكن زيادة التاريخ بمقدار 3 أشهر كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_49" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">5</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">DateAdd</span><span class="pun">(</span><span class="str">"m"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> my_date</span><span class="pun">)</span></pre>

<h3>
	تنسيق التاريخ
</h3>

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

<ul>
<li>
		<strong>الخرج: 20‎ – 11 – 14</strong>
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_51" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">7</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Format</span><span class="pun">(</span><span class="pln">my_date</span><span class="pun">,</span><span class="pln"> </span><span class="str">"d - m - yy"</span><span class="pun">)</span><span class="pln"> </span><span class="str">' 20 - 11 - 14</span></pre>

<ul>
<li>
		<strong>الخرج: ‎20 Nov 2014</strong>
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_53" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">9</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Format</span><span class="pun">(</span><span class="pln">my_date</span><span class="pun">,</span><span class="pln"> </span><span class="str">"d MMM yyyy"</span><span class="pun">)</span><span class="pln"> </span><span class="str">'20 Nov 2014</span></pre>

<ul>
<li>
		<strong>الخرج: 20‎ November 2014</strong>
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_55" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">11</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Format</span><span class="pun">(</span><span class="pln">my_date</span><span class="pun">,</span><span class="pln"> </span><span class="str">"d MMMM yyyy"</span><span class="pun">)</span><span class="pln"> </span><span class="str">'20 November 2014</span></pre>

<ul>
<li>
		<strong>الخرج: Thursday, 20 Nov 2014</strong>
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_57" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">13</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Format</span><span class="pun">(</span><span class="pln">my_date</span><span class="pun">,</span><span class="pln"> </span><span class="str">"dddd, d MMM yyyy"</span><span class="pun">)</span><span class="pln"> </span><span class="str">'Thursday, 20 Nov 2014</span></pre>

<ul>
<li>
		<strong>الخرج: Thursday, 20 November 2014</strong>
	</li>
</ul>
<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_59" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">15</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Format</span><span class="pun">(</span><span class="pln">my_date</span><span class="pun">,</span><span class="pln"> </span><span class="str">"dddd, d MMMM yyyy"</span><span class="pun">)</span><span class="pln"> </span><span class="str">'Thursday, 20 November 2014</span></pre>

<h3>
	معالجة الوقت
</h3>

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

<ul>
<li>
		<strong>Now</strong>: تعرض التاريخ الحالي ووقت النظام متضمنًا الساعات والدقائق والثواني.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_121_61" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">17</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Now</span></pre>

<ul>
<li>
		<strong>Hour</strong>: تعرض جزء الساعات.
	</li>
</ul>
<pre class="ipsCode">
my_cell = ThisComponent.Sheets(0).getCellbyPosition(1,19)
my_cell.String = Hour(Now)
</pre>

<ul>
<li>
		<strong>Minute</strong>: تعرض جزء الدقائق.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_65" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">21</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Minute</span><span class="pun">(</span><span class="typ">Now</span><span class="pun">)</span></pre>

<ul>
<li>
		<strong>Second</strong>: تعرض جزء الثواني.
	</li>
</ul>
<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_68" style="">
<span class="pln">my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="lit">23</span><span class="pun">)</span><span class="pln">
my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Second</span><span class="pun">(</span><span class="typ">Now</span><span class="pun">)</span></pre>

<h3>
	الخرج النهائي
</h3>

<p>
	إذا وضعنا جميع شيفرات معالجة التاريخ والوقت السابقة في ماكرو، فسيكون الخرج كما يلي في كالك:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84646" href="https://academy.hsoub.com/uploads/monthly_2021_12/11_Date-and-Time-Processing-Example-Output.png.85574781acb7e6c8b0f3d6610ddd18a6.png" rel=""><img alt="11_Date-and-Time-Processing-Example-Output.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84646" data-unique="1dpb3b6sa" src="https://academy.hsoub.com/uploads/monthly_2021_12/11_Date-and-Time-Processing-Example-Output.png.85574781acb7e6c8b0f3d6610ddd18a6.png" style="width: 450px; height: auto;"></a>
</p>

<p style="text-align: center;">
	خرج مثال معالجة الوقت والتاريخ
</p>

<h2>
	حذف محتويات مجال من الخلايا في كالك باستخدام الماكرو
</h2>

<p>
	يمكنك مسح محتويات خلية أو مجال من الخلايا باستخدام الماكرو، حيث سنمسح كل نوع من أنواع المحتويات من هذا المجال. لنعرّف دالة باستخدام <code>Sub</code> تمسح محتويات مجال من الخلايا كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_73" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">ClearRangeContents</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>
	لنحصل على مجال من الخلايا في الورقة 1. تعيد الدالة <code>getCellRangeByName</code> كائن المجال المقابل للمجال المُمرَّر عبر الوسيط.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_75" style="">
<span class="typ">Dim</span><span class="pln"> oDoc </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> oSheet </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> oCell </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
</span><span class="typ">Dim</span><span class="pln"> oRange </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">

oDoc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
oSheet </span><span class="pun">=</span><span class="pln"> oDoc</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="str">'</span><span class="pln"> </span><span class="typ">Refers</span><span class="pln"> to </span><span class="typ">Sheet1</span><span class="pln"> as in </span><span class="lit">0</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="pln"> etc
oRange </span><span class="pun">=</span><span class="pln"> oSheet</span><span class="pun">.</span><span class="pln">getCellRangeByName</span><span class="pun">(</span><span class="str">"A3:B10"</span><span class="pun">)</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84647" href="https://academy.hsoub.com/uploads/monthly_2021_12/12_Range-A3-B10-with-different-types-of-values.png.a90ec36846cc7f8d31963124c0e6ca5a.png" rel=""><img alt="12_Range-A3-B10-with-different-types-of-values.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84647" data-unique="uopkhheeb" src="https://academy.hsoub.com/uploads/monthly_2021_12/12_Range-A3-B10-with-different-types-of-values.png.a90ec36846cc7f8d31963124c0e6ca5a.png"></a>
</p>

<p style="text-align: center;">
	المجال A3:B10 مع أنواع مختلفة من القيم
</p>

<p>
	يمكن استخدام دالة المجال <code>clearContents(flags)‎</code> لمسح محتويات هذا المجال، فالرايات flags هي أنواع القيم التي يمكن أن توجد في خلية، حيث يمكن أن تكون عبارة عن سلسلة نصية أو أرقام أو صيغ أو أنماط وغير ذلك، إذ يمكنك تحديد الأنواع التي تريد مسحها من هذا المجال. تُعَد رايات وسيط الدالة <code>ClearContents</code> من نوع البيانات <code>long</code>، ويمكن أن تأخذ رايات متعددة كدخل.
</p>

<p>
	توجد الرايات في مجموعة أوبن أوفيس / ليبرأوفيس الثابتة CellFlags التي تُعَد جزءًا من <code>com.sun.star.sheet</code>.
</p>

<h3>
	قائمة الرايات الموجودة ضمن com.sun.star.sheet.CellFlags
</h3>
<style type="text/css">
table {
    width: 100%;
}

thead {
    vertical-align: middle;
    text-align: center;
} 

td, th {
    border: 1px solid #dddddd;
    text-align: right;
    padding: 8px;
    text-align: inherit;

}
tr:nth-child(even) {
    background-color: #dddddd;
}</style>
<table>
<thead><tr>
<th>
				الراية
			</th>
			<th>
				وصفها
			</th>
			<th>
				قيمتها
			</th>
		</tr></thead>
<tbody>
<tr>
<td>
				VALUE
			</td>
			<td>
				تحدد القيم العددية الثابتة التي ليس تنسيقها تاريخ أو وقت.
			</td>
			<td>
				1
			</td>
		</tr>
<tr>
<td>
				DATETIME
			</td>
			<td>
				تحدد القيم العددية الثابتة التي لها تنسيق التاريخ أو الوقت.
			</td>
			<td>
				2
			</td>
		</tr>
<tr>
<td>
				STRING
			</td>
			<td>
				تحدد سلاسلًا نصية ثابتة.
			</td>
			<td>
				4
			</td>
		</tr>
<tr>
<td>
				ANNOTATION
			</td>
			<td>
				تحدد تعليقات الخلايا التوضيحية.
			</td>
			<td>
				8
			</td>
		</tr>
<tr>
<td>
				FORMULA
			</td>
			<td>
				تحدّد الصيغ.
			</td>
			<td>
				16
			</td>
		</tr>
<tr>
<td>
				HARDATTR
			</td>
			<td>
				تحدد كل التنسيقات الصريحة، لكنها لا تحدد التنسيق المطبق ضمنيًا من خلال نمط الأوراق.
			</td>
			<td>
				32
			</td>
		</tr>
<tr>
<td>
				STYLES
			</td>
			<td>
				تحدد أنماط الخلية.
			</td>
			<td>
				64
			</td>
		</tr>
<tr>
<td>
				OBJECTS
			</td>
			<td>
				تحدد الكائنات الرسومية.
			</td>
			<td>
				128
			</td>
		</tr>
<tr>
<td>
				EDITATTR
			</td>
			<td>
				تحدد التنسيق ضمن أجزاء من محتويات الخلية.
			</td>
			<td>
				256
			</td>
		</tr>
<tr>
<td>
				FORMATTED
			</td>
			<td>
				تحدد الخلايا ذات التنسيق ضمن الخلايا أو الخلايا التي تحتوي على أكثر من فقرة واحدة في الخلايا.
			</td>
			<td>
				512
			</td>
		</tr>
</tbody>
</table>
<p>
	ضع كل الثوابت السابقة ضمن متغير ومرّره إلى الدالة <code>clearContents</code> كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_77" style="">
<span class="typ">Dim</span><span class="pln"> oFlags </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">
oFlags </span><span class="pun">=</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">VALUE </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">DATETIME </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">STRING </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">ANNOTATION </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">FORMULA </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">HARDATTR </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">STYLES </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">OBJECTS </span><span class="pun">+</span><span class="pln"> _
    com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">sheet</span><span class="pun">.</span><span class="typ">CellFlags</span><span class="pun">.</span><span class="pln">EDITATTR

oRange</span><span class="pun">.</span><span class="pln">clearContents</span><span class="pun">(</span><span class="pln">oFlags</span><span class="pun">)</span></pre>

<h3>
	تشغيل الشيفرة
</h3>

<p>
	<a href="https://academy.hsoub.com/programming/general/%D8%A3%D8%B3%D9%84%D9%88%D8%A8-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D8%A7%D9%84%D8%B4%D9%8A%D9%81%D8%B1%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9-%D9%88%D8%AA%D8%AD%D9%82%D9%8A%D9%82-%D8%B3%D9%87%D9%88%D9%84%D8%A9-%D9%82%D8%B1%D8%A7%D8%A1%D8%AA%D9%87%D8%A7-r1307/" rel="">ضع الشيفرة</a> الكاملة الآتية في جدول بيانات كالك الذي يحتوي على قيم مختلفة ضمن مجال، وشغّل الماكرو عن طريق استدعاء الدالة. قد يكون الخرج هو مسح جميع القيم والتنسيق وغير ذلك.
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_79" style="">
<span class="typ">Sub</span><span class="pln"> </span><span class="typ">ClearRangeContents</span><span class="pun">()</span><span class="pln">

    </span><span class="typ">Dim</span><span class="pln"> oDoc </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> oSheet </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> oCell </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> oRange </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> oFlags </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Long</span><span class="pln">

    oDoc </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pln">
    oSheet </span><span class="pun">=</span><span class="pln"> oDoc</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="str">' Refers to Sheet1 as in 0, 1, 2 etc
    oRange = oSheet.getCellRangeByName("A3:B10")

    oFlags = com.sun.star.sheet.CellFlags.VALUE + _
        com.sun.star.sheet.CellFlags.DATETIME + _
        com.sun.star.sheet.CellFlags.STRING + _
        com.sun.star.sheet.CellFlags.ANNOTATION + _
        com.sun.star.sheet.CellFlags.FORMULA + _
        com.sun.star.sheet.CellFlags.HARDATTR + _
        com.sun.star.sheet.CellFlags.STYLES + _
        com.sun.star.sheet.CellFlags.OBJECTS + _
        com.sun.star.sheet.CellFlags.EDITATTR

    oRange.clearContents(oFlags)

End Sub</span></pre>

<h2>
	معالجة الملفات والمجلدات باستخدام ماكرو ليبرأوفيس كالك
</h2>

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

<p>
	يجب معرفة معالجات نظام الملفات والمجلدات، حيث سنعتمد على نظام ملفات يونيكس الذي يختلف عن نظام ويندوز، إذ سيقرأ الماكرو محتويات مجلد ويستخرج الملفات والمجلدات ويدرجها في خلايا كالك. لنفترض أن بنية نظام الملفات تشبه ما يلي في <a href="https://academy.hsoub.com/files/10-%D8%AF%D9%84%D9%8A%D9%84-%D8%A5%D8%AF%D8%A7%D8%B1%D8%A9-%D8%AE%D9%88%D8%A7%D8%AF%D9%8A%D9%85-%D8%A3%D9%88%D8%A8%D9%86%D8%AA%D9%88/" rel="">نظام أبونتو Ubuntu</a> المعياري في المسار <code>‎/usr/include</code>:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84648" href="https://academy.hsoub.com/uploads/monthly_2021_12/13_Files-and-Directories-inside-usr-include.png.7ba0cde801a4fba344d324a169400035.png" rel=""><img alt="13_Files-and-Directories-inside-usr-include.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84648" data-unique="zx0t2ytob" src="https://academy.hsoub.com/uploads/monthly_2021_12/13_Files-and-Directories-inside-usr-include.thumb.png.79acc5a3aad75bf73f2adfb709a60300.png"></a>
</p>

<p>
	هناك الكثير من المجلدات والملفات، حيث نريد أن ندرج هذه المحتويات الكاملة ضمن خلايا كالك. توفّر لغة بيسيك Basic الدالة <code>Dir</code> التي يمكن استخدامها لقراءة محتويات مجلد، وتكون هذه الدالة بالشكل التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_121_84" style="">
<span class="typ">Dir</span><span class="pln"> </span><span class="pun">(</span><span class="pln">path</span><span class="pun">,</span><span class="pln"> attributes</span><span class="pun">)</span><span class="pln"> </span><span class="typ">As</span><span class="pln"> </span><span class="typ">String</span></pre>

<p>
	وسيط دالة <code>Dir</code> الأول هو سلسلة المسار النصية المراد قراءتها، ويخبر الوسيط الثاني الدالة <code>Dir</code> بنوع عناصر هذا المسار المراد إعادتها. مرّر القيمة "0" للملف والقيمة "16" للمجلدات في الوسيط الثاني، حيث يكون الوسيطان اختياريين.
</p>

<p>
	إذا استدعيت الدالة <code>Dir</code> لأول مرة بنجاح، فاستدعِ الدالة مرة أخرى بدون وسيط داخل حلقة للحصول على نفس العناصر من الدالة الناتجة عن إدراج محتويات المجلد الكامل.
</p>

<h3>
	شيفرة الماكرو الكاملة
</h3>

<p>
	أنشئ ملف كالك جديد وانسخ والصق الشيفرة التالية في محرّر الماكرو Macro Editor ضمن ليبرأوفيس وشغّلها:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_121_86" style="">
<span class="typ">Sub</span><span class="pln"> list_files</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> i</span><span class="pun">,</span><span class="pln"> strFile
    path </span><span class="pun">=</span><span class="str">"/usr/include/"</span><span class="pln">
    strFile </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Dir</span><span class="pun">(</span><span class="pln">path</span><span class="pun">,</span><span class="lit">0</span><span class="pun">)</span><span class="pln">
    i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
    </span><span class="kwd">while</span><span class="pln"> strFile </span><span class="pun">&lt;&gt;</span><span class="pln"> </span><span class="str">""</span><span class="pln">
        my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln">i</span><span class="pun">)</span><span class="pln">
        my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> strFile
        strFile </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Dir</span><span class="pln"> </span><span class="str">'</span><span class="pln"> returns next entry
        i </span><span class="pun">=</span><span class="pln"> i </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
    wend
</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"> list_directory</span><span class="pun">()</span><span class="pln">
    </span><span class="typ">Dim</span><span class="pln"> i</span><span class="pun">,</span><span class="pln"> strDir
    path </span><span class="pun">=</span><span class="str">"/usr/include/"</span><span class="pln">
    strDir </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Dir</span><span class="pun">(</span><span class="pln">path</span><span class="pun">,</span><span class="pln"> </span><span class="lit">16</span><span class="pun">)</span><span class="pln">
    i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
    </span><span class="kwd">while</span><span class="pln"> strDir </span><span class="pun">&lt;&gt;</span><span class="pln"> </span><span class="str">""</span><span class="pln">
        my_cell </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">Sheets</span><span class="pun">(</span><span class="lit">0</span><span class="pun">).</span><span class="pln">getCellbyPosition</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="pln">i</span><span class="pun">)</span><span class="pln">
        my_cell</span><span class="pun">.</span><span class="typ">String</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> strDir
        strDir </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Dir</span><span class="pln"> </span><span class="str">'</span><span class="pln"> returns next entry
        i </span><span class="pun">=</span><span class="pln"> i </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
    wend
</span><span class="typ">End</span><span class="pln"> </span><span class="typ">Sub</span></pre>

<h3>
	الخرج
</h3>

<p>
	ستظهر محتويات المسار <code>‎/usr/include</code> في كالك بعد تشغيل الشيفرة، حيث سيحتوي العمود الأول على الملفات وسيحتوي العمود الثاني على المجلدات.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84649" href="https://academy.hsoub.com/uploads/monthly_2021_12/14_List-Files-and-Directories-Using-Calc-Macro.png.06c46d8bff2df34dffcf66c53d5884e5.png" rel=""><img alt="14_List-Files-and-Directories-Using-Calc-Macro.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84649" data-unique="fwhfvrxtw" src="https://academy.hsoub.com/uploads/monthly_2021_12/14_List-Files-and-Directories-Using-Calc-Macro.png.06c46d8bff2df34dffcf66c53d5884e5.png"></a>
</p>

<p style="text-align: center;">
	قائمة الملفات والمجلدات باستخدام ماكرو كالك
</p>

<h3>
	مرجع الدالة Dir
</h3>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_121_88" style="">
<span class="typ">Dir</span><span class="pln"> </span><span class="pun">(</span><span class="pln">path</span><span class="pun">,</span><span class="pln"> attributes</span><span class="pun">)</span></pre>

<ul>
<li>
		المسار path: وسيط اختياري.
	</li>
	<li>
		السمات attributes: وسيط اختياري.
	</li>
	<li>
		القيمة المعادة: سلسلة نصية String.
	</li>
</ul>
<h4>
	قائمة أنواع السمات
</h4>

<table>
<thead><tr>
<th>
				السمة
			</th>
			<th>
				وصفها
			</th>
		</tr></thead>
<tbody>
<tr>
<td>
				 
			</td>
			<td>
				عادية (القيمة الافتراضية)
			</td>
		</tr>
<tr>
<td>
				1
			</td>
			<td>
				للقراءة فقط
			</td>
		</tr>
<tr>
<td>
				2
			</td>
			<td>
				مخفية
			</td>
		</tr>
<tr>
<td>
				4
			</td>
			<td>
				ملف نظام
			</td>
		</tr>
<tr>
<td>
				8
			</td>
			<td>
				تسمية قرص Volume label
			</td>
		</tr>
<tr>
<td>
				16
			</td>
			<td>
				مجلد أو دليل
			</td>
		</tr>
<tr>
<td>
				64
			</td>
			<td>
				اسم الملف هو اسم بديل alias
			</td>
		</tr>
</tbody>
</table>
<p>
	ترجمة -وبتصرُّف- لمجموعة المقالات
</p>

<ul>
<li>
		<a href="https://www.debugpoint.com/2014/09/libreoffice-workbook-worksheet-and-cell-processing-using-macro/" rel="external nofollow">LibreOffice Workbook Worksheet and Cell Processing using Macro</a>
	</li>
	<li>
		<a href="https://www.debugpoint.com/2014/11/string-processing-in-libreoffice-calc-macro-with-examples/" rel="external nofollow">String Processing in LibreOffice Calc Macro with Examples</a>
	</li>
	<li>
		<a href="https://www.debugpoint.com/2014/11/date-and-time-processing-in-libreoffice-calc-using-macro/" rel="external nofollow">Date and Time Processing in LibreOffice Calc using Macro</a>
	</li>
	<li>
		<a href="https://www.debugpoint.com/2015/02/deleting-all-types-of-contents-from-calc-range-using-macro/" rel="external nofollow">Deleting All Types of Contents from Calc Range using Macro</a>
	</li>
	<li>
		<a href="https://www.debugpoint.com/2014/12/files-and-directory-processing-using-libreoffice-calc-macro-using-basic/" rel="external nofollow">Files and Directory Processing Using LibreOffice Calc Macro using Basic</a>
	</li>
</ul>
<p>
	لصاحبها Arindam.
</p>

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">تعلّم أساسيات التعامل مع جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية تحرير البيانات في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">567</guid><pubDate>Tue, 07 Dec 2021 15:09:00 +0000</pubDate></item><item><title>&#x645;&#x62F;&#x62E;&#x644; &#x625;&#x644;&#x649; &#x643;&#x62A;&#x627;&#x628;&#x629; &#x645;&#x627;&#x643;&#x631;&#x648; Macro &#x641;&#x64A; &#x644;&#x64A;&#x628;&#x631;&#x623;&#x648;&#x641;&#x64A;&#x633; &#x643;&#x627;&#x644;&#x643; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-%D9%85%D8%A7%D9%83%D8%B1%D9%88-macro-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-libreoffice-calc-r566/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2021_12/61af0f86ced65_-------.png.093f9594f293158f4ab04f492cab9ff4.png" /></p>

<p>
	يوفّر <a href="https://academy.hsoub.com/apps/productivity/liberoffice/%D9%85%D9%82%D8%AF%D9%85%D8%A9-%D8%A5%D9%84%D9%89-%D8%AD%D8%B2%D9%85%D8%A9-%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D8%A7%D9%84%D8%AD%D8%B1-libreoffice-r1//" rel="">ليبرأوفيس LibreOffice</a> طريقة لكتابة الماكرو Macro الذي تحتاجه لأتمتة المهام المتكررة في تطبيقك المكتبي، إذ يمكنك استخدام لغتي <a href="https://academy.hsoub.com/programming/python/%D8%A7%D9%84%D9%85%D8%B1%D8%AC%D8%B9-%D8%A7%D9%84%D8%B4%D8%A7%D9%85%D9%84-%D8%A5%D9%84%D9%89-%D8%AA%D8%B9%D9%84%D9%85-%D9%84%D8%BA%D8%A9-%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86-r735/" rel="">بايثون Python</a> أو بيسك Basic لتطوير هذا الماكرو. سنتعلّم في هذا المقال كيفية كتابة ماكرو في ليبرأوفيس باستخدام ماكرو "Hello World" بلغة بيسك، حيث سننشئ ماكرو يضع السلسلة النصية "Hello World" في الخلية الأولى من <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/" rel="">برنامج ليبرأوفيس كالك </a>Calc، أي خلية الصف 1 والعمود A وأيضًا سنتطرق إلى موضوع تنظيم الماكرو وكيفية تصديره واستيراده كمكتبة مستقلة.
</p>

<p>
	هذا المقال جزء من سلسلة مقالات حول إنشاء ماكرو في ليبرأوفيس كالك، فهرس السلسلة:
</p>

<ul>
<li>
		مدخل إلى كتابة ماكرو Macro في ليبرأوفيس كالك LibreOffice Calc
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AD%D8%AA%D9%88%D9%8A%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D9%84%D9%8A%D8%A8%D8%B1%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%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-r567/" rel="">معالجة محتويات خلايا ليبرأوفيس كالك باستخدام الماكرو</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D9%85%D8%AC%D8%A7%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D9%8A%D8%A7-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r568/" rel="">معالجة مجال من الخلايا باستخدام الماكرو في ليبرأوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D9%88%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D9%81%D8%AA%D8%AD-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA-%D9%85%D9%86-%D8%AE%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-r569/" rel="">استخدام عناصر التحكم بالنماذج ونافذة فتح الملفات من خلال الماكرو في ليبرأوفيس</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%86%D8%A7%D8%B5%D8%B1-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85-%D8%A8%D9%85%D8%B1%D8%A8%D8%B9-%D8%A7%D9%84%D8%AD%D9%88%D8%A7%D8%B1-%D9%88%D9%85%D8%B9%D8%A7%D9%84%D8%AC%D8%A9-%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A8%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-%D9%81%D9%8A-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-r570/" rel="">التعامل مع عناصر التحكم بمربع الحوار ومعالجة النماذج باستخدام الماكرو في ليبرأوفيس كالك</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%AD%D9%81%D8%B8-%D8%A3%D9%88%D8%B1%D8%A7%D9%82-%D9%84%D9%8A%D8%A8%D8%B1-%D8%A3%D9%88%D9%81%D9%8A%D8%B3-%D9%83%D8%A7%D9%84%D9%83-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-pdf-%D8%A8%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D9%85%D8%A7%D9%83%D8%B1%D9%88-r571/" rel="">أتمتة حفظ أوراق ليبرأوفيس كالك بتنسيق PDF باستعمال الماكرو</a>
	</li>
</ul>
<h2>
	إنشاء الماكرو
</h2>

<p>
	افتح برنامج ليبرأوفيس كالك من قائمة ابدأ ثم كافة البرامج ثم اختر ليبرأوفيس LibreOffice ثم ليبرأوفيس كالك LibreOffice Calc في <a href="https://academy.hsoub.com/apps/windows/" rel="">نظام ويندوز</a> أو من تطبيقات Applications ثم اختر Office ثم ليبرأوفيس كالك LibreOffice Calc في نظام لينكس.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84612" href="https://academy.hsoub.com/uploads/monthly_2021_12/01_OpenLibreOfficeCalc.png.67b6099168903cc92b38f0e5f6db3ef7.png" rel=""><img alt="01_OpenLibreOfficeCalc.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84612" data-unique="5hky2rb6p" src="https://academy.hsoub.com/uploads/monthly_2021_12/01_OpenLibreOfficeCalc.png.67b6099168903cc92b38f0e5f6db3ef7.png"></a>
</p>

<p>
	انتقل إلى قائمة <strong>أدوات Tools</strong> ثم <strong>ماكرو Macros</strong> ثم <strong>نظّم وحدات الماكرو Organize Macros</strong> ثم <strong>LibreOffice Basic</strong>، حيث ستفتح نافذة "ماكروهات أساسية LibreOffice basic macros".
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84613" href="https://academy.hsoub.com/uploads/monthly_2021_12/02_Macros.png.0be31c715fab53ef7cddffdf8b0c7ad4.png" rel=""><img alt="02_Macros.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84613" data-unique="sk0uvkng2" src="https://academy.hsoub.com/uploads/monthly_2021_12/02_Macros.png.0be31c715fab53ef7cddffdf8b0c7ad4.png"></a>
</p>

<p>
	أدخِل الاسم الذي تريده في خانة اسم الماكرو وانقر على جديد. استخدمنا الاسم hello_world، ولكن يمكنك استخدام الاسم الذي تريده.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84616" href="https://academy.hsoub.com/uploads/monthly_2021_12/03_NewMacro.png.266f0a39923fba54ed85c1c5d4537ddc.png" rel=""><img alt="03_NewMacro.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84616" data-unique="a1x0dgj1h" src="https://academy.hsoub.com/uploads/monthly_2021_12/03_NewMacro.png.266f0a39923fba54ed85c1c5d4537ddc.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84617" href="https://academy.hsoub.com/uploads/monthly_2021_12/04_MacroEditor.png.22aef6d24b5527df59a1d2957f2bd138.png" rel=""><img alt="04_MacroEditor.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84617" data-unique="0p3f8rlhv" src="https://academy.hsoub.com/uploads/monthly_2021_12/04_MacroEditor.thumb.png.fe8d0e189fae3967f3e5f30bf2d14bad.png"></a>
</p>

<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%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="">الماكرو</a> الأول من خلال التصريح عن متغيرين من النوع كائن object كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_7" style="">
<span class="pln">dim document </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span><span class="pln">
dim dispatcher </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">object</span></pre>

<p>
	ثم نسند قيمتين للمتغيرين السابقين كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_10" style="">
<span class="pln">document </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="typ">Frame</span><span class="pln">
dispatcher </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.frame.DispatchHelper"</span><span class="pun">)</span></pre>

<p>
	يشير <code>ThisComponent</code> إلى المستند الحالي. يكون كل شيء في ليبرأوفيس -مثل الكتابة والتلوين والإدراج- مراقبًا باستخدام متحكم controller، حيث يرسل هذا المتحكم التغييرات إلى إطار المستند، أي منطقة نافذة كالك الرئيسية. لذلك يشير المتغير <code>document</code> إلى منطقة كالك الرئيسية.
</p>

<p>
	يُنشِئ التابع <code>createUnoService</code> نسخةً من خدمة <code>DispatchHelper</code> التي تساعد في إرسال المهام من الماكرو إلى الإطار، حيث يمكن تنفيذ جميع مهام ماكرو في ليبرأوفيس تقريبًا باستخدام المرسل dispatcher.
</p>

<p>
	سنصرّح الآن عن مجموعة من الخاصيات التي تتكوّن من الزوج اسم/قيمة name/value، وبالتالي يحتوي الاسم name على اسم الخاصية وتحتوي القيمة value على قيمة تلك الخاصية.
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_13" style="">
<span class="pln">dim args1</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
dim args2</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">as</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span></pre>

<p>
	هدفنا هو وضع النص "Hello World" في الخلية الأولى، حيث يمكن الإشارة إلى الخلية الأولى A1 ثم وضع نص فيها من خلال استخدام الخاصيتين <code>ToPoint</code> و <code>StringName</code>.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_2577_15" style="">
<span class="pln">args1</span><span class="pun">(</span><span class="lit">0</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">"ToPoint"</span><span class="pln">
args1</span><span class="pun">(</span><span class="lit">0</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$1"</span><span class="pln">

args2</span><span class="pun">(</span><span class="lit">0</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">"StringName"</span><span class="pln">
args2</span><span class="pun">(</span><span class="lit">0</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">"Hello World!"</span></pre>

<p>
	يجب بعد ضبط الخاصيات استدعاء المرسل لإرسالها إلى المستند، لذلك استدعِ الحدث <code>executeDispatch</code> الخاص بالمرسل باستخدام أمرين هما: <code>‎.uno:GoToCell</code> و <code>‎.uno:EnterString</code>، حيث يخبر هذان الأمران الإطارَ بما يجب تنفيذه، ويمرّران مصفوفة الخاصيات بأكملها مع القيم. ضع الآن مربع رسالة message box لإعلامك باكتمال التنفيذ كما يلي:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84620" href="https://academy.hsoub.com/uploads/monthly_2021_12/05_MessageBox.png.160793d442916b96c437561a6e93093f.png" rel=""><img alt="05_MessageBox.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84620" data-unique="0g7153x5w" src="https://academy.hsoub.com/uploads/monthly_2021_12/05_MessageBox.thumb.png.31a707635c560cbb2278c91d957b1b27.png"></a>
</p>

<h2>
	تشغيل الماكرو
</h2>

<p>
	يمكن تشغيل الماكرو بالضغط على مفتاح <code>F5</code> أو بالنقر على زر تشغيل الماكرو Run Macro من شريط الأدوات، ثم يظهر مربع الرسالة بعد التنفيذ. إذا تحققت من <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">جدول بيانات كالك</a>، فيجب أن ترى النص "Hello World!‎" مكتوبًا في الخلية الأولى.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84621" href="https://academy.hsoub.com/uploads/monthly_2021_12/06_Completed.png.ed1f9c036f55dff77b026dc6300e0466.png" rel=""><img alt="06_Completed.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84621" data-unique="fnjnqzps2" src="https://academy.hsoub.com/uploads/monthly_2021_12/06_Completed.png.ed1f9c036f55dff77b026dc6300e0466.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84624" href="https://academy.hsoub.com/uploads/monthly_2021_12/07_HelloWorld.png.2826e9af2b6e850cf695fb81574d557b.png" rel=""><img alt="07_HelloWorld.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84624" data-unique="kidykp5ui" src="https://academy.hsoub.com/uploads/monthly_2021_12/07_HelloWorld.png.2826e9af2b6e850cf695fb81574d557b.png"></a>
</p>

<p>
	إليك الشيفرة الكاملة:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_2577_18" style="">
<span class="pln">REM  </span><span class="pun">*****</span><span class="pln">  BASIC  </span><span class="pun">*****</span><span class="pln">
sub hello_world

    dim document   as object
    dim dispatcher as object

    document   </span><span class="pun">=</span><span class="pln"> </span><span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">CurrentController</span><span class="pun">.</span><span class="typ">Frame</span><span class="pln">
    dispatcher </span><span class="pun">=</span><span class="pln"> createUnoService</span><span class="pun">(</span><span class="str">"com.sun.star.frame.DispatchHelper"</span><span class="pun">)</span><span class="pln">

    dim args1</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> as </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">
    dim args2</span><span class="pun">(</span><span class="lit">0</span><span class="pun">)</span><span class="pln"> as </span><span class="kwd">new</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">sun</span><span class="pun">.</span><span class="pln">star</span><span class="pun">.</span><span class="pln">beans</span><span class="pun">.</span><span class="typ">PropertyValue</span><span class="pln">

    args1</span><span class="pun">(</span><span class="lit">0</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">"ToPoint"</span><span class="pln">
    args1</span><span class="pun">(</span><span class="lit">0</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$1"</span><span class="pln">
    dispatcher</span><span class="pun">.</span><span class="pln">executeDispatch</span><span class="pun">(</span><span class="pln">document</span><span class="pun">,</span><span class="pln"> </span><span class="str">".uno:GoToCell"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> args1</span><span class="pun">())</span><span class="pln">

    args2</span><span class="pun">(</span><span class="lit">0</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">"StringName"</span><span class="pln">
    args2</span><span class="pun">(</span><span class="lit">0</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">"Hello World!"</span><span class="pln">
    dispatcher</span><span class="pun">.</span><span class="pln">executeDispatch</span><span class="pun">(</span><span class="pln">document</span><span class="pun">,</span><span class="pln"> </span><span class="str">".uno:EnterString"</span><span class="pun">,</span><span class="pln"> </span><span class="str">""</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> args2</span><span class="pun">())</span><span class="pln">

   msgbox </span><span class="str">"Completed!"</span><span class="pln">
end sub</span></pre>

<h2>
	تنقيح أخطاء الماكرو باستخدام نقطة التوقف والمراقبة
</h2>

<p>
	سنتعلّم الآن تقنية تنقيح أخطاء debugging ماكرو بيسك في ليبرأوفيس باستخدام نقطة التوقف breakpoint والمراقبة watch، حيث بُنيَت هذه التقنية على <a href="https://academy.hsoub.com/devops/linux/%D8%A3%D8%AA%D9%85%D8%AA%D8%A9-%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AE%D8%A7%D8%AF%D9%85-%D8%A3%D9%88%D9%84%D9%8A-%D8%A3%D9%88%D8%A8%D9%88%D9%86%D8%AA%D9%88-%D8%A8%D8%A5%D8%B5%D8%AF%D8%A7%D8%B1-1804-r443/" rel="">نظام أبونتو</a> Ubuntu 14.04LTS وبرنامج ليبرأوفيس الذي يستخدم لغة بيسك، وتُطبَّق على جميع لغات البرمجة تقريبًا مع ليبرأوفيس.
</p>

<h3>
	تعريف المتغيرات
</h3>

<p>
	لنعرّف 3 متغيرات سنستخدمها في مثالنا كما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_20" style="">
<span class="pln">dim i</span><span class="pun">,</span><span class="pln"> j</span><span class="pun">,</span><span class="pln"> cnt</span></pre>

<p>
	عرّف حلقة <code>for</code> التي ستنفّذ من القيمة 1 إلى 10، ثم زِد متغيرين داخل هذه الحلقة على النحو التالي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_22" style="">
<span class="kwd">for</span><span class="pln"> cnt </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> to </span><span class="lit">10</span><span class="pln">
    i </span><span class="pun">=</span><span class="pln"> i </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pln">
    j </span><span class="pun">=</span><span class="pln"> i </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pln">   
</span><span class="kwd">next</span><span class="pln"> cnt</span></pre>

<h3>
	إضافة نقطة توقف Breakpoint
</h3>

<p>
	نريد وضع نقطتي توقف للعبارتين <code>for cnt = 1 to 10</code> و <code>j = i + 1</code>، حيث تُشغَّل نقطة التوقف عند وضعها ضمن برنامجك في وضع تنقيح الأخطاء ويتوقف التنفيذ عند هذه النقطة.
</p>

<p>
	يمكنك وضع نقطة توقف من خلال وضع المؤشر عند العبارة، ثم الضغط على مفتاح <code>F9</code> أو الضغط على الزر التالي من شريط الأدوات:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84625" href="https://academy.hsoub.com/uploads/monthly_2021_12/08_AddingBreakpoint.png.3654e5bb331a035ed63c79c9c2197a65.png" rel=""><img alt="08_AddingBreakpoint.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84625" data-unique="j8yzek2ys" src="https://academy.hsoub.com/uploads/monthly_2021_12/08_AddingBreakpoint.png.3654e5bb331a035ed63c79c9c2197a65.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84627" href="https://academy.hsoub.com/uploads/monthly_2021_12/09_RedCircleBreakpoint.png.3aa72b4b5361072ba702a304bccf30d5.png" rel=""><img alt="09_RedCircleBreakpoint.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84627" data-unique="gkm4t2uhk" src="https://academy.hsoub.com/uploads/monthly_2021_12/09_RedCircleBreakpoint.thumb.png.8832d80482749c5493c3b0531716f5bc.png"></a>
</p>

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

<h3>
	إضافة مراقبة Watch
</h3>

<p>
	سنضيف الآن مراقبة watch إلى المتغير <code>cnt</code>. تساعد هذه المراقبة عندما ينفّذ البرنامج في وضع تنقيح الأخطاء في مراقبة قيمة المتغير خلال خطوات البرنامج، حيث يمكنك إضافة مراقبة إلى المتغير <code>cnt</code> من خلال تحديد المتغير والضغط على مفتاح <code>F7</code> أو النقر على أيقونة النظارات في شريط الأدوات.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84629" href="https://academy.hsoub.com/uploads/monthly_2021_12/10_EnableWatch.png.9036d1ab97627b134b7991fd7845b0cf.png" rel=""><img alt="10_EnableWatch.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84629" data-unique="5684jxy6g" src="https://academy.hsoub.com/uploads/monthly_2021_12/10_EnableWatch.thumb.png.b0c36d1f28862e177a6ace58c578742e.png"></a>
</p>

<p>
	ستلاحظ بعد ذلك إضافة المتغير إلى قائمة المراقبة أسفل المحرر.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84631" href="https://academy.hsoub.com/uploads/monthly_2021_12/11_WatchVariable.png.e4953877e5ad4584dbd184ffde027d9f.png" rel=""><img alt="11_WatchVariable.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84631" data-unique="tmhvzqbgn" src="https://academy.hsoub.com/uploads/monthly_2021_12/11_WatchVariable.png.e4953877e5ad4584dbd184ffde027d9f.png"></a>
</p>

<h3>
	تنفيذ خطوة تلو الأخرى
</h3>

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

<ol>
<li>
		اضغط على مفتاح <code>F5</code> مرة أخرى لمتابعة تنفيذ البرنامج، ولكنه سيتوقف مرةً أخرى في نقطة التوقف التالية.
	</li>
	<li>
		اضغط على مفتاح <code>F8</code> (تنفيذ خطوة) والذي سينفذ خطوةً تلو الخطوة، ويمكنك أن ترى تغيُّر قيمة المتغير <code>cnt</code> المُراقَبة.
	</li>
</ol>
<p>
	لنضغط على مفتاح <code>F8</code>، حيث يمكنك أن ترى السهم البرتقالي ينتقل إلى العبارة التالية وينتظر. إذا ألقيت نظرة على نافذة المراقبة، فيمكنك رؤية قيمة المتغير <code>cnt</code> هي 1.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84632" href="https://academy.hsoub.com/uploads/monthly_2021_12/12_StepExecution.png.bf335f6ef4e58a182b9fc53d339fdd2b.png" rel=""><img alt="12_StepExecution.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84632" data-unique="68xv2l0zl" src="https://academy.hsoub.com/uploads/monthly_2021_12/12_StepExecution.thumb.png.b192db62e2d13b4cd8eb92ba55f267fd.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84633" href="https://academy.hsoub.com/uploads/monthly_2021_12/13_cntVariable.png.924ba0a5b0e5d80db37a758b690b7af6.png" rel=""><img alt="13_cntVariable.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84633" data-unique="cnji7iz98" src="https://academy.hsoub.com/uploads/monthly_2021_12/13_cntVariable.thumb.png.c0a542851af0bed3384eb7c46d282d9d.png"></a>
</p>

<p>
	ويمكنك بهذه الطريقة تنقيح الأخطاء وإضافة نقطة توقف وإضافة مراقبة لأيّ ماكرو في ليبرأوفيس أو أوبن أوفيس OpenOffice باستخدام محرّره الخاص.
</p>

<h2>
	تنظيم الماكرو في ليبرأوفيس
</h2>

<p>
	إذا كنت معتادًا على استخدام البرمجة بلغة فيجوال بيسك Visual Basic for Applications -اختصارًا <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>- في مايكروسوفت إكسل Excel، فلا بدّ أنك تعرف أن شيفرات فيجوال بيسك VB الخاصة بالماكرو موجودة في مشروع VB، وإذا أردت تضمين الماكرو ضمن ملف <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/%D8%A7%D9%84%D8%AA%D8%B9%D8%B1%D9%81-%D8%B9%D9%84%D9%89-microsoft-excel-%D9%88%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%A7%D9%84%D9%85%D8%B5%D9%86%D9%81-%D8%A7%D9%84%D8%A3%D9%88%D9%84-r25/" rel="">إكسل Excel</a> مثلًا، فيجب أن تحفظه بالتنسيق <code>‎.xlsm</code> الذي يوضّح احتواء الملف على ماكرو.
</p>

<h3>
	البنى الافتراضية لملف الماكرو في ليبرأوفيس
</h3>

<p>
	ينشئ ليبرأوفيس افتراضيًا الماكرو ضمن المسار ماكروهاتي My Macros ثم Standard ثم Module1 عند إنشائه لأول مرة، إذ توجد جميع دوال الماكرو الخاصة بك ضمن الوحدة Module1، حيث أنشأنا في مثالنا الدالة <code>my_macro</code> ضمن الوحدة Module1.
</p>

<p>
	يحتفظ ليبرأوفيس بجميع شيفرات الماكرو التي أُنشئت ضمن الوحدة Module1 الافتراضية في المسار الآتي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_28" style="">
<span class="pln"> </span><span class="pun">‎/</span><span class="pln">home</span><span class="pun">/[</span><span class="pln">user name</span><span class="pun">]/.</span><span class="pln">config</span><span class="pun">/</span><span class="pln">libreoffice</span><span class="pun">/</span><span class="lit">4</span><span class="pun">/</span><span class="pln">user</span><span class="pun">/</span><span class="pln">basic</span><span class="pun">/</span><span class="typ">Standard</span></pre>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84611" href="https://academy.hsoub.com/uploads/monthly_2021_12/01_LibreOfficeMacroPathdebugpoint-1.png.a04f4a0d59fe45124e761ec430e682c3.png" rel=""><img alt="01_LibreOfficeMacroPathdebugpoint-1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84611" data-unique="06n44yv9k" src="https://academy.hsoub.com/uploads/monthly_2021_12/01_LibreOfficeMacroPathdebugpoint-1.png.a04f4a0d59fe45124e761ec430e682c3.png" style="width: 700px; height: auto;"></a>
</p>

<p>
	يجب أن يوجد ضمن المسار ملف يسمى <code>Module1.xba</code> يحتوي على دوال الماكرو الافتراضية، حيث يجب أن تكون دالة الاختبار <code>my_macro</code> ومحتوياتها داخل هذا الملف.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84614" href="https://academy.hsoub.com/uploads/monthly_2021_12/02_module1-xba-contents-debugpoint-com-2.png.372cce53c6715961009e2e3e7af378ee.png" rel=""><img alt="02_module1-xba-contents-debugpoint-com-2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84614" data-unique="gl6fmss85" src="https://academy.hsoub.com/uploads/monthly_2021_12/02_module1-xba-contents-debugpoint-com-2.png.372cce53c6715961009e2e3e7af378ee.png" style="width: 700px; height: auto;"></a>
</p>

<h3>
	كيفية إنشاء الماكرو بوصفه جزءا من ملف مكتبي
</h3>

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

<p>
	إذا أردت توزيع أو إرسال ملف ليبرأوفيس مثل كالك Calc أو إمبرس Impress أو غيرها مع دوال الماكرو، فيجب عليك إنشاء وحدات الماكرو بطريقة مختلفة، إذ يجب إنشاء الماكرو داخل الملف أثناء إنشاء وحدات الماكرو ومربع الحوار الذي تريد توزيعه بوصفه جزءًا من ملف ليبرأوفيس. افتح مربع الحوار من قائمة أدوات Tools ثم ماكرو Macros ثم تنظيم الماكرو Organize Macros ثم بيسك LibreOffice Basic. حدّد اسم الملف من قائمة "الماكرو من Macro From" داخل مربع الحوار، ثم اضغط "جديد New"، حيث سيطلب ليبرأوفيس كتابة اسم الوحدة Module.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84615" href="https://academy.hsoub.com/uploads/monthly_2021_12/03_create-macro-debugpoint-com-3.png.9607d14833c9a22831c1614df976a256.png" rel=""><img alt="03_create-macro-debugpoint-com-3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84615" data-unique="jyvaty23k" src="https://academy.hsoub.com/uploads/monthly_2021_12/03_create-macro-debugpoint-com-3.png.9607d14833c9a22831c1614df976a256.png"></a>
</p>

<p>
	يستخدم ليبرأوفيس الوحدة "Module1" افتراضيًا، لذلك اكتب أي اسم تريده واضغط على "موافق" (استخدمنا اسم الوحدة<code>debugpoint_demo_module</code>).
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84618" href="https://academy.hsoub.com/uploads/monthly_2021_12/04_New-Module-debugpoint-com-4.png.76a998c461c11f78971d6a70b6d91f5d.png" rel=""><img alt="04_New-Module-debugpoint-com-4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84618" data-unique="rxu05qija" src="https://academy.hsoub.com/uploads/monthly_2021_12/04_New-Module-debugpoint-com-4.png.76a998c461c11f78971d6a70b6d91f5d.png"></a>
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84619" href="https://academy.hsoub.com/uploads/monthly_2021_12/05_macro-editor-debugpoint-com-5.png.ede5e601a63e8e801d1376a37ded97b7.png" rel=""><img alt="05_macro-editor-debugpoint-com-5.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84619" data-unique="kl32q7vmr" src="https://academy.hsoub.com/uploads/monthly_2021_12/05_macro-editor-debugpoint-com-5.thumb.png.0a593171916063aaec5ac2bfa9319959.png"></a>
</p>

<p>
	تُخزَّن وحدات الماكرو Macros ضمن الوحدات Modules في ليبرأوفيس، والوحدات هي جزء من المكتبات Libraries والمكتبات هي جزء من الحاويات Containers كما هو موضح أدناه:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84622" href="https://academy.hsoub.com/uploads/monthly_2021_12/06_LO-mac-org-6.png.a7ce5f90f2ad6df041f8c9fad7e7c817.png" rel=""><img alt="06_LO-mac-org-6.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84622" data-unique="m4afqxf02" src="https://academy.hsoub.com/uploads/monthly_2021_12/06_LO-mac-org-6.png.a7ce5f90f2ad6df041f8c9fad7e7c817.png" style="width: 700px; height: auto;"></a>
</p>

<h3>
	تحميل الوحدة التي يعرفها المستخدم
</h3>

<p>
	يفترض ليبرأوفيس أن جميع مربعات الحوار والمتغيرات موجودة في الوحدة "Module1" وفقًا للتنظيم الافتراضي، لكننا أنشأنا وحدة جديدة بالاسم "debugpoint<em>demo</em>module" التي تبقى مع الملف، حيث يجب تحميل الوحدة قبل البدء في كتابة شيفرات الماكرو. يمكنك تحميل الوحدات التي يعرّفها المستخدم باستخدام التابع التالي:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted" id="ips_uid_2577_33" style="">
<span class="typ">ThisComponent</span><span class="pun">.</span><span class="typ">BasicLibraries</span><span class="pun">.</span><span class="typ">LoadLibrary</span><span class="pun">(</span><span class="str">"debugpoint_demo_module"</span><span class="pun">)</span></pre>

<p>
	إذا أنشأتَ مربع حوار -"my_dialog" مثلًا- أسفل ملف العمل نفسه، فيمكنك إنشاء كائن الحوار Dialog باستخدام ما يلي:
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted" id="ips_uid_2577_38" style="">
<span class="typ">Dim</span><span class="pln"> oDialog1 </span><span class="typ">As</span><span class="pln"> </span><span class="typ">Object</span><span class="pln">
oDialog1 </span><span class="pun">=</span><span class="pln"> </span><span class="typ">CreateUnoDialog</span><span class="pun">(</span><span class="typ">DialogLibraries</span><span class="pun">.</span><span class="typ">Standard</span><span class="pun">.</span><span class="pln">my_dialog</span><span class="pun">)</span></pre>

<h3>
	تفعيل الماكرو في ملفات ليبرأوفيس
</h3>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84623" href="https://academy.hsoub.com/uploads/monthly_2021_12/07_err-1.png.f42154e3c8348906e65777b8db9d8e88.png" rel=""><img alt="07_err-1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84623" data-unique="b89yagndc" src="https://academy.hsoub.com/uploads/monthly_2021_12/07_err-1.png.f42154e3c8348906e65777b8db9d8e88.png"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84626" href="https://academy.hsoub.com/uploads/monthly_2021_12/08_err-2.png.87545994c929b579467bd5cd118e38e1.png" rel=""><img alt="08_err-2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84626" data-unique="e7clr2n0p" src="https://academy.hsoub.com/uploads/monthly_2021_12/08_err-2.png.87545994c929b579467bd5cd118e38e1.png"></a>
</p>

<p>
	انتقل إلى قائمة أدوات Tools ثم خيارات Options ثم ليبرأوفيس LibreOffice ثم الأمن Security ثم <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="">أمان الماكرو</a> Macro Security، حيث يُضبَط أمان الماكرو على الخيار "عالٍ high"، ولكن يمكنك تغييره إلى الخيار "منخفض low" إذا كنت واثقًا من مصدر الماكرو، ثم يمكنك إعادة محاولة تنفيذ الماكرو.
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84628" href="https://academy.hsoub.com/uploads/monthly_2021_12/09_sec-1.png.a70922470f70c4aaae5ae52277badda8.png" rel=""><img alt="09_sec-1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84628" data-unique="wjyuail1q" src="https://academy.hsoub.com/uploads/monthly_2021_12/09_sec-1.png.a70922470f70c4aaae5ae52277badda8.png" style="width: 700px; height: auto;"></a>
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="84630" href="https://academy.hsoub.com/uploads/monthly_2021_12/10_sec-2.png.67f0ea4e6a5a7eceb605d0ac75915539.png" rel=""><img alt="10_sec-2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="84630" data-unique="nm4njbb0r" src="https://academy.hsoub.com/uploads/monthly_2021_12/10_sec-2.png.67f0ea4e6a5a7eceb605d0ac75915539.png"></a>
</p>

<p>
	ترجمة -وبتصرُّف- للمقالات <a href="https://www.debugpoint.com/2014/09/writing-a-macro-in-libreoffice-calc-getting-started/" rel="external nofollow">Writing a Macro in LibreOffice Calc – Getting Started</a> و <a href="https://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/" rel="external nofollow">Debugging LibreOffice Macro Basic using Breakpoint and Watch</a> و <a href="https://www.debugpoint.com/2016/03/libreoffice-macro-organization/" rel="external nofollow">LibreOffice Macro Organization</a> لصاحبهما Arindam.
</p>

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

<ul>
<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">تعلّم أساسيات التعامل مع جداول بيانات LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/" rel="">كيفية تحرير البيانات في LibreOffice Calc</a>
	</li>
	<li>
		<a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/" rel="">كيفية التحكّم في طرق عرض جداول بيانات LibreOffice Calc</a>
	</li>
</ul>
]]></description><guid isPermaLink="false">566</guid><pubDate>Fri, 03 Dec 2021 12:00:00 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x627;&#x644;&#x62A;&#x62D;&#x643;&#x651;&#x645; &#x641;&#x64A; &#x637;&#x631;&#x642; &#x639;&#x631;&#x636; &#x62C;&#x62F;&#x627;&#x648;&#x644; &#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%91%D9%85-%D9%81%D9%8A-%D8%B7%D8%B1%D9%82-%D8%B9%D8%B1%D8%B6-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r283/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2017_07/main2.png.07cec84f62718fa4f7258f38b9bfbc1f.png" /></p>

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

<h2>
	تغيير طريقة عرض جدول البيانات
</h2>

<p>
	بإمكانك استخدام خاصية التقريب Zoom (التكبير والتصغير) لعرض عدد أقل أو أكبر من الخلايا في النافذة عندما تعمل على جداول البيانات.
</p>

<p>
	انقر على زر (+) في شريط الحالة لعرض الخلايا بحجم أكبر وعدد أقل، أو على زر (-) لعرضها بحجم أصغر وعدد أكبر:
</p>

<p style="text-align: center;">
	<img alt="1-تقريب.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24153" data-unique="a0xzth5vr" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eaafeabef_1-.png.58ad0542a9b3cf0f128558a9b69d9e3d.png"></p>

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

<p style="text-align: center;">
	<img alt="2-صفحة  كاملة- عرض الصفحة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24154" data-unique="v3t60vq09" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab07d6a1_2--.png.4c3cf5f1fa051d2aabf019d96eb135ff.png"></p>

<p style="text-align: center;">
	<img alt="3-صفحة كاملة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24155" data-unique="2f42fqh4p" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab12ed5d_3-.png.7ae63d91ed8cb928e7b0307e213bd1c7.png"></p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24156" href="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab1be1a2_4-.png.98c3044f6fb21b85e4830756571172a7.png" rel=""><img alt="4-عرض الصفحة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24156" data-unique="0bqfhwq3z" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab23f95d_4-.thumb.png.6e7c0edc77e19baf32c6cdaff2861608.png"></a>
</p>

<p>
	ويمكنك العودة بشكل سريع إلى طريقة العرض الاعتيادية بالنقر على الخيار المنظور الأمثل Optimal View من نفس القائمة.
</p>

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

<p style="text-align: center;">
	<img alt="5-خطوط الشبكة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24157" data-unique="7c5tvxfns" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab2c3783_5-.png.58f9c76c22e128c764b93a51c32b3002.png"></p>

<p>
	يمكن أيضًا إخفاء عناوين الأعمدة والصفوف بإلغاء تأشير الخيار ترويسة الأعمدة والصفوف من قائمة عرض:
</p>

<p style="text-align: center;">
	<img alt="6-ترويسة الأعمدة والصفوف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24158" data-unique="n7tr241e1" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab33cb5a_6-.png.855a14f1df1ceb3524c9ccc1a56e71ab.png"></p>

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

<p style="text-align: center;">
	<img alt="7-إظهار الصيغ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24159" data-unique="fqek81rxy" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab3cb955_7-.png.19abbcd0e87ddaaf3928d599ede2978b.png"></p>

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

<h2>
	تجميد الصفوف والأعمدة
</h2>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24160" href="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab62e9b9_8----compressor.gif.37ecf5659e52b4018db2c2cda604076e.gif" rel=""><img alt="8-تجميد-الصفوف-والأعمدة-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24160" data-unique="rofdpnuig" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab63ad2d_8----compressor.thumb.gif.350f1581831b17acbc590d877ac5a73d.gif"></a>
</p>

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

<p>
	لتجميد العمود الأول فقط أو الصف الأول فقط، اذهب إلى عرض&gt; جمّد الخلايا&gt; جمّد العمود الأول/جمد الصف الأول:
</p>

<p style="text-align: center;">
	<img alt="9-تجميد العمود-الصف الأول.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24161" data-unique="qewdde01m" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab6ae20e_9--.png.b283ab7e1ea1ee4a091216bf754c437a.png"></p>

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

<p style="text-align: center;">
	<img alt="10-جمد الصفوف والأعمدة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24162" data-unique="rfkrx4g0u" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab73236f_10-.png.b607e889419bc29f79b7859b2735f6f2.png"></p>

<p>
	على سبيل المثال، لتجميد الصف الأول والثاني والعمود A وB، نحدد الخلية C3 لأنها تقع بعد العمود B والصف 2 مباشرة:
</p>

<p style="text-align: center;">
	<img alt="11-تجميد صف وعمود.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24163" data-unique="n5fu8g679" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab7a1697_11-.png.3f3b1adecef77456512b94330ab79356.png"></p>

<p>
	عندما نطبق أمر التجميد، سيظهر خط أسود اللون (أفقي أو عمودي، أو الإثنين معًا) يشير إلى حدود التجميد:
</p>

<p style="text-align: center;">
	<img alt="12-حدود التجميد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24164" data-unique="wbv8nlql2" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab825e2a_12-.png.0ba6fc5ee1bedc9e6d4f7a438ac7a064.png"></p>

<p>
	لإلغاء تجميد الصفوف والأعمدة، اذهب إلى عرض&gt; جمّد الخلايا، ثم قم بإلغاء تأشير الخيار جمّد الصفوف والأعمدة.
</p>

<h2>
	تقسيم النافذة
</h2>

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

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

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

<p style="text-align: center;">
	<img alt="13-اقسم النافذة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24165" data-unique="9h4kmor49" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eab8921f3_13-.png.cc9a431554b2763fbd9494de4949033d.png"></p>

<p>
	على سبيل المثال، إذا رغبنا في تقسيم النافذة عند الصف 6، ننقر على عنوان الصف 7 ثم نذهب إلى عرض&gt; اقسم النافذة:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24166" href="https://academy.hsoub.com/uploads/monthly_2017_07/5971eabc45534_14---compressor.gif.85c00b5757e9af81940b3b74c89b0f27.gif" rel=""><img alt="14-تقسيم-النافذة-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24166" data-unique="6eiqadugy" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eabc503b5_14---compressor.thumb.gif.d993481d3731561107dbf0a21feaf556.gif"></a>
</p>

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

<p>
	أمّا لتقسيم الشاشة أفقيًا وعموديًا في نفس الوقت، قم بتحديد الخلية التي تقع مباشرة تحت الصف الذي تريد تقسيم الشاشة عنده، ومباشرة على يسار العمود الذي تريد تقسيم الشاشة عنده، ثم اذهب إلى <strong>عرض&gt; اقسم النافذة</strong>.
</p>

<p>
	على سبيل المثال، إذا رغبنا في تقسيم الشاشة بعد الصف 4 وبعد العمود D، نحدد الخلية E5 ثم نطبق أمر التقسيم:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24167" href="https://academy.hsoub.com/uploads/monthly_2017_07/5971eabdc64a9_15-.png.1f8b15d9e7aec1e1c83d78a54aaa9509.png" rel=""><img alt="15-تقسيم أفقيًا وعموديًا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24167" data-unique="nyu8w1vmz" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eabf17542_15-.thumb.png.973c2cf0d24384f27e26ddbaf9457349.png"></a>
</p>

<p>
	سيتم تقسيم النافذة إلى أربعة أجزاء، وكل منها يكون قابل للتحريك بشكل مستقل عن الأجزاء الأخرى.
</p>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24168" href="https://academy.hsoub.com/uploads/monthly_2017_07/5971eac423fee_16---compressor.gif.4464c82a2a2d4bec1e87aa29e6813c54.gif" rel=""><img alt="16-إلغاء-التقسيم-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24168" data-unique="zrteqp9am" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eac433e29_16---compressor.thumb.gif.886778263a576c89a2473206df8fe650.gif"></a>
</p>

<h2>
	فتح أكثر من نافذة لنفس جدول البيانات
</h2>

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

<p>
	للقيام بذلك، اذهب إلى نافذة&gt; نافذة جديدة:
</p>

<p style="text-align: center;">
	<img alt="17-نافذة جديدة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24169" data-unique="oiy85q6nu" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eac4ea487_17-.png.3e067dd8dadc2ca316146c859ae276fb.png"></p>

<p>
	بعد ذلك قم بترتيب النافذتين بشكل أفقي أو عمودي ضمن حدود الشاشة، علمًا أنّه بإمكانك فتح العدد الذي تريده من النوافذ:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24170" href="https://academy.hsoub.com/uploads/monthly_2017_07/5971eac5cb4d5_18-.png.6605dcdcf3168a52a095ea922e1ae696.png" rel=""><img alt="18-نافذتين.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24170" data-unique="wedt6u0u2" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eac752cde_18-.thumb.png.1bc2a22c79815d2c4dd939a5711cb7dc.png"></a>
</p>

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

<h2>
	تغيير اتجاه الورقة
</h2>

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

<p style="text-align: center;">
	<img alt="19-الورقة من اليمين إلى اليسار.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24171" data-unique="nd8oycql5" src="https://academy.hsoub.com/uploads/monthly_2017_07/5971eac83350a_19-.png.0dc1cb98487d54b8a972ecf46ff048c6.png"></p>

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

<p>
	 
</p>

<p>
	ترجمة-وبتصرّف-<a href="http://www.libreoffice.org/assets/Uploads/Documentation/en/GS51-GettingStartedLO.pdf" rel="external nofollow">لدليل المستخدم الخاص بالحزمة المكتبية LibreOffice</a>
</p>

<p>
	<br>
	 
</p>
]]></description><guid isPermaLink="false">283</guid><pubDate>Sat, 22 Jul 2017 07:16:00 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x62A;&#x646;&#x633;&#x64A;&#x642; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r280/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2017_07/main2.png.cfc8c49eeec24a28b64ec3cef8645d18.png" /></p>

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

<h2>
	إدخال البيانات في سطور متعددة
</h2>

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

<h3>
	إدراج فواصل السطور يدويًا
</h3>

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

<p style="text-align: center;">
	<img alt="1-فاصل سطر يدوي.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24020" data-unique="xvwazyr5o" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b58da36c_1-.gif.001e1614e6f28a930a4cdb1cfa48357a.gif"></p>

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

<h3>
	الالتفاف التلقائي
</h3>

<p>
	تتيح خاصية الالتفاف التلقائي نقل جزء من النص إلى السطر التالي تلقائيًا عندما يتجاوز طوله عرض الخلية/العمود. ولتفعيل هذه الخاصية قم أولًا بتحديد الخلية أو نطاق الخلايا وانقر على التحديد بزر الفأرة الأيمن ثم اختر نسق الخلايا Format Cells:
</p>

<p style="text-align: center;">
	<img alt="2-نسق الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24021" data-unique="qhjifek0l" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b597eeb9_2-.png.30df5febb68015faa5b04aebc7f1b030.png"></p>

<p>
	من مربع الحوار تنسيق الخلايا، اذهب إلى تبويب محاذاة Alignment ثم قم بتأشير الخيار لف النص تلقائيًا Wrap text automatically (تحت مجموعة الخصائص Properties) وانقر على حسنًا OK:
</p>

<p style="text-align: center;">
	<img alt="3-التفاف النص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24022" data-unique="7ywrj5kvv" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5a1e683_3-.png.abe844c9b27f001d37b32f49602e718f.png"></p>

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

<p style="text-align: center;">
	<img alt="4-التفاف تلقائي.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24023" data-unique="ysp58oovo" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5ab8f27_4-.gif.d03cc78b97161915e8bfad8ae7c8bdd8.gif"></p>

<h2>
	تقليص حجم النص
</h2>

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

<p>
	للقيام بذلك، انقر بزر الفأرة الأيمن على الخلية واختر نسق الخلايا. من مربع الحوار تنسيق الخلايا، اذهب إلى تبويب محاذاة وقم بتأشير الخيار تقليص لملائمة حجم الخلية Shrink to fit cell size ثم انقر على زر حسنًا:
</p>

<p style="text-align: center;">
	<img alt="5-تقليص لملائمة حجم الخلية.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24024" data-unique="7y0jd47rw" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5b4ba82_5-.png.26fe8a3fb1cd847497c18e745d3e6b07.png"></p>

<p>
	في المرة القادمة التي تقوم فيها بإدخال البيانات في الخلية، سيتم تقليل حجمها تلقائيًا لاحتوائها داخل حدود الخلية إذا كان حجم البيانات كبيرًا (كما نلاحظ في الصورة أدناه):
</p>

<p style="text-align: center;">
	<img alt="6-تقليص الحجم.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24025" data-unique="y6ic7n91u" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5c0827d_6-.gif.0582d475f1be6cd6e438c3bd87211663.gif"></p>

<p>
	<strong>ملاحظة</strong>: لا يمكن تفعيل هذه الخاصية قبل إلغاء تفعيل خاصية الالتفاف التلقائي.
</p>

<h2>
	تنسيق الأرقام
</h2>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24026" href="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5cc095b_7-.png.0982a3284d838fdc13a3695f93984078.png" rel=""><img alt="7-تنسيقات الأرقام.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24026" data-unique="0bz42aafa" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5cf370a_7-.thumb.png.3fceb698518a847ddf35234276d814ab.png"></a>
</p>

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

<p style="text-align: center;">
	<img alt="8-تنسيقات الأرقام.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24027" data-unique="80svxpqz4" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5d960c6_8-.png.892fcc6c5186e06a7069fe8826150751.png"></p>

<p>
	ويمكنك الوصول إلى المزيد من تنسيقات الأرقام أو التحكم في خيارات كل تنسيق بواسطة مربع الحوار تنسيق الخلايا (تنسيق Format&gt; خلايا Cells)، وبالتحديد تبويب الأرقام Numbers:
</p>

<p style="text-align: center;">
	<img alt="9-الأرقام.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24028" data-unique="bpilf8a65" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5e49482_9-.png.a7c06bc7f9b17ec254bcfd2df5d1f4b5.png"></p>

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

<p>
	<strong>ملاحظة</strong>: تتحكم إعدادات اللغة بالإعدادات المحلية لمختلف التنسيقات كتنسيق الوقت أو رمز العملة:
</p>

<p style="text-align: center;">
	<img alt="10-اللغة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24029" data-unique="z3cpk0n48" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5ecfa55_10-.png.cab3c0866119a076da3dd7d4f875dd9a.png"></p>

<h2>
	تنسيق الخطوط
</h2>

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

<p style="text-align: center;">
	<img alt="11-تنسيقات الخط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24030" data-unique="hgu1fa8je" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b5f83d85_11-.png.ec0cbb1ddfd2a299678fecb0808a67ae.png"></p>

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

<p style="text-align: center;">
	<img alt="12-تأثيرات الخطوط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24031" data-unique="6dircrobm" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b601b277_12-.png.ee87df7f55141c73e8d53823498904f1.png"></p>

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

<p style="text-align: center;">
	<img alt="13-تدوير النص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24032" data-unique="uywm2dk98" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6093eab_13-.png.b111d6bc63697242d9210002ebe5c5a6.png"></p>

<p>
	قم بإدخال زاوية التدوير في حقل Degrees، ومن قسم Reference edge حدّد فيما إذا كنت ترغب في تدوير النص نسبة إلى الحافة العليا أو السفلى للخلية، أو تدوير النص داخل الخلية فقط.
</p>

<h2>
	تنسيق الخلايا
</h2>

<p>
	يمكن تنسيق لون خلفية الخلية، ولون، سُمك، ونمط حدودها إما من شريط أدوات التنسيق:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24033" href="https://academy.hsoub.com/uploads/monthly_2017_07/59670b615760f_14-.png.16ee286ae75cf6ed4b835ef0f5caa887.png" rel=""><img alt="14-تنسيق الخلية.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24033" data-unique="7yitqt6c4" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b61998c7_14-.thumb.png.b1b5cddb1120a125ebf0b10c1445eb1b.png"></a>
</p>

<p>
	أو من تبويب الحدود Borders والخلفية Background في مربع الحوار تنسيق الخلايا، علمًا أن مربع الحوار يتيح خيارات أوسع، كإضافة ظل للخلية Shadow Style، أو تحديد أبعاد هوامش الخلية Spacing of Content:
</p>

<p style="text-align: center;">
	<img alt="15-خلفية وحدود.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24034" data-unique="dg56abrbz" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6222f3a_15-.png.2826ccdd460285bdcbf1a3b33454d20c.png"></p>

<p>
	قبل تطبيق أي تغيير على الخلية أو نطاق الخلايا، قم بتحديدها أولًا ثم طبّق التنسيقات المرغوبة.
</p>

<h2>
	التنسيق التلقائي للخلايا AutoFormat
</h2>

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

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

<p style="text-align: center;">
	<img alt="16-جدول مثال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24035" data-unique="zw0t9qboz" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b628e7b7_16-.png.c1f5d8c9e884d4d2585103766e4c6404.png"></p>

<p>
	بعد أن تحدد الأعمدة والصفوف، اذهب إلى تنسيق Format&gt; أنماط التنسيق التلقائي AutoFormat:
</p>

<p style="text-align: center;">
	<img alt="17-تنسيق تلقائي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24036" data-unique="84wr8kae9" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b632ecb7_17-.png.d7d6b26a046fdf6aa1f58b997eb2ceee.png"></p>

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

<p style="text-align: center;">
	<img alt="18-خيارات التنسيق التلقائي.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24037" data-unique="tjyrbn4p2" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b63a0174_18-.png.a4472dc875da9628238bd3327c27b85f.png"></p>

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

<p>
	قم أولًا بتنسيق جدول بياناتك بتخصيص نوع الخط ولونه، حدود الخلايا، محاذاة النص، تنسيقات الأرقام...إلخ، ثم اذهب إلى تحرير Edit&gt; حدّد الكل Select All لتحديد جدول البيانات برمّته:
</p>

<p style="text-align: center;">
	<img alt="19-حدد الكل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24038" data-unique="mjwhclj13" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6434b40_19-.png.5ae581dd8cf9a1a787d1d0e3214feb8b.png"></p>

<p>
	بعد ذلك اذهب إلى تنسيق&gt; أنماط التنسيق التلقائي لفتح مربع الحوار التنسيق الآلي، ثم اضغط على زر أضف Add:
</p>

<p style="text-align: center;">
	<img alt="20-أضف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24039" data-unique="j4jyqi7jd" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b649f22d_20-.png.f878fe816ba188f00cb2136cf393a610.png"></p>

<p>
	أدخل اسمًا مناسبًا للنمط في حقل الاسم ثم انقر على حسنًا:
</p>

<p style="text-align: center;">
	<img alt="21-تسمية.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24040" data-unique="ae5xpa435" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b64f40c5_21-.png.a83c10ce3928e18077ebfee5283c266d.png"></p>

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

<h2>
	التنسيق الشرطي Conditional Formatting
</h2>

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

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

<h3>
	أنواع التنسيق الشرطي
</h3>

<p>
	يمكن تنسيق الخلايا بأنماط مختلفة:
</p>

<ul>
<li>
		<strong>الشرط Condition</strong>: وهو نوع أساسي من التنسيق الشرطي، وباستخدامه يمكنك تحديد التنسيق المستخدم لتمييز البيانات التي لا تطابق المواصفات التي قمت بتحديدها.
	</li>
	<li>
		<strong>مقياس الألوان Color Scale</strong>: يستخدم هذا النوع لتنسيق لون خلفية الخلية بلون معين بناءً على قيم البيانات في جدول البيانات. ويمكن أن نحدد لونين أو ثلاثة ألوان لمقياس الألوان.
	</li>
	<li>
		<strong>أشرطة البيانات Data Bar</strong>: يوفر هذا الخيار تمثيل بصري للبيانات، ويتم ذلك بناء على القيم في جدول البيانات، وهذه الخاصية تشبه إلى حد كبير تمثيل البيانات بالمخططات الشريطية.
	</li>
	<li>
		<strong>مجموعة الأيقونات Icon Set</strong>: يعرض هذا الخيار أيقونات ذات دلالة معينة بجانب البيانات، وهي بذللك توفر تمثيلًا بصريًا لموقع قيمة معينة نسبة إلى القيم الأخرى في نطاق الخلايا.
	</li>
	<li>
		<strong>التاريخ Date</strong>: هذا الخيار مشابه للخيار الأول، فهو يعمل على تنسيق البيانات بنمط معين إذا كانت تحقق شرطًا معينًا، الفرق هو أنّ البيانات هنا هي بيانات تاريخ.
	</li>
</ul>
<p>
	<strong>مثال1:</strong>
</p>

<p>
	لدينا جدول لدرجات مجموعة من الطلاب، والمطلوب هو تمييز الدرجات التي تقل عن 60%؛ نتبع الخطوات التالية:
</p>

<p>
	نحدد نطاق الخلايا الذي يحتوي على درجات الطلاب، ثم نذهب إلى تنسيق Format&gt; تنسيق شرطي Conditional Formatting&gt; الشرط Condition:
</p>

<p style="text-align: center;">
	<img alt="22-الشرط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24041" data-unique="9naeqtdl2" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b65763c1_22-.png.687c13806472c7ab8e87c911d30bc8fa.png"></p>

<p>
	سيُفتح مربع الحوار التنسيق الشرطي، ومنه نحدد الشرط less than (أصغر من) من قائمة الشروط لأننا نرغب في تمييز البيانات التي تقل عن 60%، ثم نضع القيمة 60% في الحقل المقابل للشرط. وأخيرًا نحدّد نمط التمييز المرغوب من قائمة الأنماط الافتراضية:
</p>

<p style="text-align: center;">
	<img alt="23-الشرط2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24042" data-unique="o2cvxwez5" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b65ebe1a_23-2.png.8188d32f11c0085e44b56c09cdfaced2.png"></p>

<p>
	سيتم تمييز البيانات التي تحقق الشرط بالنمط الذي حددناه:
</p>

<p style="text-align: center;">
	<img alt="24-نتيجة مثال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24043" data-unique="fowl5wwue" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b665b34a_24-.png.0e679b32df12686614c796688ee09879.png"></p>

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

<p style="text-align: center;">
	<img alt="25-تنسيق شرطي.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="24044" data-unique="n1vuw3qpc" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b66e7946_25-.gif.92a047a19cdfb7a9920868a38f3827e8.gif"></p>

<p>
	<strong>مثال2:</strong>
</p>

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

<p style="text-align: center;">
	<img alt="26-مثال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24045" data-unique="m5483nlem" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6753787_26-.png.1e2147afd3b85db09b6eae329f916741.png"></p>

<p>
	نحدد نطاق الخلايا B2:B9 ثم ننقر على زر التنسيق الشرطي من شريط أدوات التنسيق ونختار مقياس الألوان Color Scale (وهذه طريقة أخرى لتطبيق التنسيق الشرطي):
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24046" href="https://academy.hsoub.com/uploads/monthly_2017_07/59670b67eb366_27-.png.b9032387751135b68685573a4264ff1f.png" rel=""><img alt="27-المقياس.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24046" data-unique="5m4jijfrt" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b68cc9a4_27-.thumb.png.7ad2e60508f14768a56b150c4a325b3b.png"></a>
</p>

<p>
	نحدد عدد الألوان 2 من القائمة العلوية الثانية، ثم نحدد الخيار Min ونختار اللون الأحمر له، ونحدد الخيار Max ونختار اللون الأخضر له، ثم ننقر على حسنًا:
</p>

<p style="text-align: center;">
	<img alt="28-خيارات مقياس الألوان.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24047" data-unique="10yzqsft7" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b69789a3_28-.png.32d1c2fb8427bfb0ffda265c0f687e83.png"></p>

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

<p style="text-align: center;">
	<img alt="29-نتيجة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24048" data-unique="ffu86eumr" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6a0f002_29-.png.cbc85fe3a19081ac47a5c7dc00a4e864.png"></p>

<p>
	<strong>مثال3:</strong>
</p>

<p>
	إذا رغبنا في تنسيق البيانات في الجدول السابق باستخدام أشرطة البيانات، نحدد نطاق الخلايا B2:B9 ثم ننقر على زر التنسيق الشرطي من شريط أدوات التنسيق ونختار شريط البيانات Data Bar:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24049" href="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6aa8bc8_30-.png.0ec4d633f9cd750efdc4d2b57c1568ed.png" rel=""><img alt="30-شريط البيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24049" data-unique="yblf80apj" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6bb23f6_30-.thumb.png.cf2e6044a645d2d4f54627620e9bcc34.png"></a>
</p>

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

<p style="text-align: center;">
	<img alt="31-شريط بيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24050" data-unique="dqizw5rj3" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6c6df56_31-.png.e0b499c1eed690f83accb79dc3efad79.png"></p>

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

<p style="text-align: center;">
	<img alt="32-مثال-شريط بيانات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24051" data-unique="ds1io6rms" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6cd97f8_32--.png.fc1aafc34b69e8cd68ebb0963036a5b5.png"></p>

<p>
	يمكنك تخصيص أشرطة البيانات بالنقر على زر خيارات أخرى، إذ يمكن تحديد أطوال الأشرطة، ألوانها، أو غيرها من الخيارات.
</p>

<p>
	<strong>مثال4:</strong>
</p>

<p>
	يعرض الجدول أدناه المبيعات في تواريخ معينة، والمطلوب هو تمييز تواريخ السنة الماضية بنمط معين:
</p>

<p style="text-align: center;">
	<img alt="33-مثال-التاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24052" data-unique="cr7oyxmhu" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6d513e2_33--.png.4ee667bf1afb592308c04f9fe7dee2bc.png"></p>

<p>
	نحدد نطاق الخلايا A2:A9 ثم ننقر على زر التنسيق الشرطي ونختار التاريخ Date:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="24053" href="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6de74a6_34-.png.51a33520513f187d22d44adafe239f83.png" rel=""><img alt="34-التاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24053" data-unique="w5xrt25rf" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6e74e2b_34-.thumb.png.26380f632a284ad448a25c491d9f41f7.png"></a>
</p>

<p>
	نحدد الشرط Last Year (السنة الماضية) من مربع الحوار تنسيق شرطي، ثم نختار النمط المرغوب من قائمة الأنماط وننقر على حسنًا:
</p>

<p style="text-align: center;">
	<img alt="35-خيارات التاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24054" data-unique="o0mttl3fg" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6f0b033_35-.png.3c06fc08b5778866a7c9fa9b22e1cfbe.png"></p>

<p>
	سيتم تمييز تواريخ السنة الماضية فقط بالنمط الذي حددناه:
</p>

<p style="text-align: center;">
	<img alt="36-نتيجة التاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24055" data-unique="1x4vper23" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6f76e55_36-.png.b03ac0305c6ea5b9ebc309e559922979.png"></p>

<h3>
	حذف التنسيق الشرطي
</h3>

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

<p style="text-align: center;">
	<img alt="37-أدر.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24056" data-unique="z5igg0yq9" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b6fd2c17_37-.png.2d3886b3d741932e8c8ff5e28a55b6a9.png"></p>

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

<p style="text-align: center;">
	<img alt="38-إزالة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="24057" data-unique="8xs42ovfo" src="https://academy.hsoub.com/uploads/monthly_2017_07/59670b704cf81_38-.png.edacac91d97090bd4179c9b12eb6ef54.png"></p>

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

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

<p>
	ترجمة- وبتصرّف- <a href="http://www.libreoffice.org/assets/Uploads/Documentation/en/GS51-GettingStartedLO.pdf" rel="external nofollow">لدليل المستخدم الخاص بالحزمة المكتبية LibreOffice</a>.
</p>
]]></description><guid isPermaLink="false">280</guid><pubDate>Sat, 15 Jul 2017 08:01:00 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x62A;&#x62D;&#x631;&#x64A;&#x631; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AD%D8%B1%D9%8A%D8%B1-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D9%81%D9%8A-libreoffice-calc-r277/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2017_07/main2.png.91f8f4328514ad637e7cfd6c4c664a2c.png" /></p>

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

<h2 id="نسخقص-ولصق-البيانات">
	نسخ/قص ولصق البيانات
</h2>

<p>
	لا تختلف طريقة تطبيق أوامر النسخ/القص واللصق في كالك عنها في البرامج الأخرى، فهي تتم إمّا باستخدام الفأرة بالنقر بزر الفأرة الأيمن على العنصر المراد نسخه أو قصه واختيار الأمر المرغوب، أو باستخدام اختصارات لوحة المفاتيح.<br>
	لكن الفرق في جدول البيانات هو أنّه بالإمكان نسخ/قص ولصق الخلية/نطاق الخلايا وما فيها من محتوى وتنسيق، أو نسخ/قص ولصق محتوى الخلية فقط.<br>
	لنسخ أو قص الخلية برّمتها، انقر عليها بزر الفأرة الأيمن واختر<em> </em><strong>قص<em> </em>Cut </strong>أو<strong> انسخ Copy</strong> (أو حددها واضغط على <strong>Ctrl + C</strong> للنسخ أو <strong>Ctrl + X للقص</strong>):
</p>

<p style="text-align: center;">
	<img alt="1-نسخ-قص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23945" data-unique="q108si0pk" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e6c2e2b5_1--.png.1fa2477ef31a40714bcf7d55da3e7459.png"></p>

<p>
	<br>
	بعد ذلك انقر بزر الفأرة على المكان الذي تريد لصق الخلية عليه واختر<em> </em><strong>الصق<em> </em>Paste (Ctrl + V)</strong>:
</p>

<p style="text-align: center;">
	<img alt="2-الصق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23946" data-unique="n09d3p0l3" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e6cb2a40_2-.png.16ecf11db0c7cacdb4b63b2c57ea3768.png"></p>

<p>
	<br>
	بهذه الطريقة سيتم لصق الخلية بمحتوياتها من أرقام، نصوص، تنسيقات، وحتّى الصيغة.<br>
	إذا رغبت في لصق محتوى معيّن، كالرقم فقط أو الصيغة فقط، مرر مؤشر الفأرة فوق الخيار الصق فقط Paste Only واختر الخيار المرغوب:
</p>

<p style="text-align: center;">
	<img alt="3-الصق فقط.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23947" data-unique="id48nrk5x" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e6d23531_3-.png.697a1aacc411ad7d116d433c99931db6.png"></p>

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

<p style="text-align: center;">
	<img alt="4-نسخ-قص-جزء.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23948" data-unique="sxn8mawij" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e6d8d106_4---.png.b80295916379d5b81bfd5d9453f930af.png"></p>

<h3 id="خاصية-اللصق-الخاص-paste-special">
	خاصية اللصق الخاص Paste Special
</h3>

<p>
	بإمكانك استخدام خاصية اللصق الخاص للصق أجزاء معينة من الخلية الأصلية (كالصيغة فقط، أو الناتج فقط…إلخ) بالإضافة إلى إجراء العمليات الرياضية الأساسية بشكل مباشر أثناء اللصق (هذا الخيار يطبق على البيانات الرقمية فقط).<br>
	لاستخدام هذه الخاصية، قم بنسخ الخلية أو نطاق الخلايا المرغوب، ثم انقر بزر الفأرة الأيمن على المكان الذي تريد اللصق عليه واختر <strong>لصق خاص Paste Special</strong> (أو اختصارًا Ctrl+ Shift+ V):
</p>

<p style="text-align: center;">
	<br>
	(صورة 5)<img alt="5-لصق خاص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23949" data-unique="4725iu1oo" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e6e00626_5-.png.467f7891fe158a6b511465544aa007f6.png"></p>

<p>
	<br>
	سيُفتح مربع الحوار Paste Special الذي يحتوي على مجموعة من خيارات اللصق:
</p>

<p style="text-align: center;">
	<img alt="6-لصق خاص 2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23950" data-unique="nvzpsx8fk" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e6e6c2de_6-2.png.bd18ba001982d518fe253d116844f10c.png"></p>

<p>
	<br>
	من مجموعة <strong>التحديد Selection</strong> قم بتأشير المحتوى الذي ترغب في لصقه. عند تأشير الخيار <strong>الصق الكل</strong> سيتم لصق كل محتوى الخلية من تعليقات، تنسيقات، صيغ، وغيرها.<br>
	ومن مجموعة <strong>العمليات Operations</strong> حدد العملية الحسابية التي تريد تطبيقها عند لصق الخلية.<br>
	على سبيل المثال، إذا كانت الخلية تحتوي على رقم معيّن، ونرغب في لصقها فوق خلية أخرى تحتوي أيضًا على رقم، مع ضرب الرقم الأول في الثاني وإظهار النتيجة عند اللصق، ننسخ الخلية الأولى (Ctrl +C) ثم نحدد الخلية الثانية ونضغط على Ctrl+ Shift+ V. ثم من مربع الحوار Paste Special نحدد الخيار <strong>اضرب Multiply</strong> وننقر على <strong>حسنًا OK</strong>:
</p>

<p style="text-align: center;">
	<img alt="7-لصق-خاص-ضرب-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23951" data-unique="00x08fclk" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e7013c94_7----compressor.gif.a2fcfd96fa6f4bb7984cb6390070780b.gif"></p>

<p>
	<br>
	سيتم ضرب الرقم الأول في الثاني وإظهار نتيجة الضرب بشكل مباشر في الخلية. وينطبق الشيء نفسه على عمليات الجمع، الطرح، والقسمة.<br>
	ومن مجموعة<em> </em><strong>الخيارات<em> </em>Options</strong>، يمكنك تطبيق إجراءات معينة عند اللصق، كتجاهل الخلايا الفارغة Skip Empty Cells الذي يمنع استبدال محتوى الخلية التي نلصق فوقها بالخلية الفارغة المنسوخة، التحويل Transpose لتحويل الصف إلى عمود والعمود إلى صف عند اللصق (في حال تم نسخ نطاق خلايا)، أو الربط Link لإنشاء رابط بين الخلية المنسوخة والخلية التي نلصق فوقها بحيث أي تغيير تجريه على خلية المصدر ينعكس على الخلية المرتبطة بها.<br>
	أما من مجموعة<em> </em><strong>إزاحة الخلايا Shift Cells</strong> فيمكنك أن تزيح التي تلصق المحتوى فوقها إلى الأسفل Down أو اليمين Right لضمان عدم استبدال المحتوى الأصلي بالمحتوى الملصوق.
</p>

<h2 id="تعديل-البيانات">
	تعديل البيانات
</h2>

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

<p style="text-align: center;">
	<img alt="8-سطر الإدخال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23952" data-unique="x7jfjeur2" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e70729c9_8-.png.1a91d02add4848123ffc1bfaae0f64b1.png"></p>

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

<h2 id="حذف-البيانات">
	حذف البيانات
</h2>

<p>
	لحذف البيانات فقط من الخلية (بدون حذف التنسيق)، فانقر على الخلية لتحديدها ثم اضغط على مفتاح Delete من لوحة المفاتيح.<br>
	أمّا لحذف البيانات والتنسيق من الخلية، فانقر على الخلية لتحديدها، ثم اضغط على مفتاح Back Space. سيُفتح مربع الحوار حذف المحتويات Delete Content ومنه يمكنك اختيار المحتوى الذي تريد حذفه من الخلية (النص، التعليقات، الصيغ… إلخ). بعد تأشير الخيارات التي تريد حذفها انقر على زر <strong>حسنًا</strong>
</p>

<p style="text-align: center;">
	<img alt="9-حذف المحتويات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23953" data-unique="3vb9083g7" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e7102092_9-.png.04c84242e7540f04cb9a1d2387b1cca0.png"></p>

<h2 id="البحث-والاستبدال">
	البحث والاستبدال
</h2>

<p>
	بما أن البيانات يمكن أن تخزن في آلاف الصفوف ومئات الأعمدة، سيصبح من المضيعة للوقت العثور على جزء معين منها باستخدام أشرطة التمرير، لذا تتوفر خاصية البحث التي تتيح العثور على البيانات بشكل سريع، وترافقها خاصية الاستبدال لاستبدال بيانات معينة ببيانات أخرى، كلّ على حدة، أو دفعة واحدة.<br>
	للبحث عن نص أو رقم، اذهب إلى <strong>تحرير Edit&gt; ابحث Find</strong> (أو اضغط على Ctrl+ F):
</p>

<p style="text-align: center;">
	<img alt="10-ابحث.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23954" data-unique="ebf98l6y4" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e7171017_10-.png.0321045f2cc0b1ccbebe1d2ff5b7c605.png"></p>

<p>
	<br>
	سيظهر شريط البحث في المنطقة السفلية من جدول البيانات، أدخل الكلمة المفتاحية (نص أو رقم) التي تريد البحث عنها واضغط على مفتاح Enter:
</p>

<p style="text-align: center;">
	<img alt="11-شريط البحث.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23955" data-pin-nopin="true" data-unique="buxnnfmhq" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e71d1a69_11-.png.d472957947815877937c99c65057a6f3.png"></p>

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

<p style="text-align: center;">
	<img alt="12-ابحث واستبدل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23956" data-pin-nopin="true" data-unique="prash3h93" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e723d2a0_12-.png.b7406dbaf93e10c6981ee68b08840051.png"></p>

<p>
	<br>
	من مربع الحوار هذا، انقر أيقونة (+) لإظهار خيارات البحث الأخرى:
</p>

<p style="text-align: center;">
	<img alt="13-خيارات اخرى.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23957" data-unique="tye8fgjkt" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e729f09d_13-.png.5861887623c829b0eb8f720097c1afb5.png"></p>

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

<p style="text-align: center;">
	<img alt="14-الصيغ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23958" data-unique="bfmeovhi4" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e732517a_14-.png.e7a3f6b3e047ecf3d2698eea295df93f.png"></p>

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

<p style="text-align: center;">
	<img alt="15-نتائج البحث.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23959" data-unique="77wwa1ia4" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e738304b_15-.png.64e2788604599ee1d99cb11146caf41b.png"></p>

<p>
	<br>
	إذا كنت ترغب في البحث في جدول البيانات كلّه، وليس في الورقة الحالية فقط، قم بتحديد الخيار <strong>All Sheets</strong> قبل أن تبدأ البحث:
</p>

<p style="text-align: center;">
	<img alt="16-كل الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23960" data-unique="v1hrvlis6" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e73e65fd_16-.png.c2770d7e95078be32d6dfd261bfc4ce0.png"></p>

<p>
	<br>
	من نفس مربع الحوار، بإمكانك استبدال بيانات معينة ببيانات أخرى. أدخل البيانات التي تريد استبدالها (نص أو رقم) في حقل<em> </em><strong>ابحث (جِد) Find</strong>، والبيانات التي تريد الاستبدال بها في حقل <strong>استبدل Replace </strong>ثم انقر على <strong>استبدل Replace </strong>لاستبدال النتيجة التالية، أو<strong> استبدل الكل Replace All</strong><em> </em>لاستبدال كل النتائج المطابقة:
</p>

<p style="text-align: center;">
	<img alt="17-استبدال.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23961" data-unique="7hvu037ul" src="https://academy.hsoub.com/uploads/monthly_2017_07/595f1e745518b_17-.png.29be7940a984ebe26e3765cbaf9ddf9b.png"></p>

<p>
	 
</p>

<h3 id="خاتمة">
	خاتمة
</h3>

<p>
	تعلّمنا كيفية تحرير جداول بيانات كالك وتعديل محتوياتها بالإضافة إلى تطبيق أوامر مختلفة على البيانات كالنسخ/القص، اللصق، اللصق الخاص، الحذف، والبحث والاستبدال. في الدرس القادم سنتعرّف على كيفية تنسيق البيانات تنسيقًا اعتياديًا وشرطيًا.<br>
	ترجمة-وبتصرّف-<a href="http://www.libreoffice.org/assets/Uploads/Documentation/en/GS51-GettingStartedLO.pdf" rel="external nofollow">لدليل المستخدم الخاص بالحزمة المكتبية LibreOffice</a>
</p>
]]></description><guid isPermaLink="false">277</guid><pubDate>Sat, 08 Jul 2017 05:25:00 +0000</pubDate></item><item><title>&#x643;&#x64A;&#x641;&#x64A;&#x629; &#x625;&#x62F;&#x62E;&#x627;&#x644; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; &#x641;&#x64A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%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-%D9%81%D9%8A-libreoffice-calc-r273/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2017_07/main2.png.edea1c1dcf9f279958a906f0a9dab215.png" /></p>

<p>
	بعد أن تعلمنا في <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/" rel="">الدرس السابق</a> كيفية التعامل مع جداول بيانات كالك، وكيفية تحديد الخلايا، الصفوف، الأعمدة، والأوراق، حان الوقت لنتعلم كيفية ملء الخلايا بأنواع مختلفة من البيانات.
</p>

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

<h3>
	باستخدام لوحة المفاتيح
</h3>

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

<h3>
	إدخال الأرقام
</h3>

<p>
	انقر على إحدى الخلايا لتحديدها ثم أدخل الرقم المرغوب باستخدام لوحة المفاتيح. وإذا كنت ترغب في إدخال عدد سالب، اكتب علامة السالب (-) قبل الرقم أو ضع الرقم بين قوسين دائريين مغلقين. على سبيل المثال (101). وفي كلا الحالتين ستكون النتيجة نفسها.
</p>

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

<p>
	لتحقيق ذلك، حدد الخلية أولا (أو نطاق الخلايا) ثم انقر بزر الفأرة الأيمن على التحديد واختر نسق الخلايا Format Cells:
</p>

<p style="text-align: center;">
	<img alt="1-نسق الخلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23777" data-unique="3jc5ajoau" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c310d56c25_1-.png.0c3e76c26edb0cd2d1230b9141ccf19a.png"></p>

<p>
	من تبويب الأرقام، وبالتحديد من مجموعة خيارات Options قم بإدخال الحد الأدنى للأرقام في حقل الأصفار البادئة Leading Zeroes ثم انقر على حسنًا OK:
</p>

<p style="text-align: center;">
	<img alt="2-الأصفار البادئة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23778" data-unique="hcpeqx7b8" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c310e62b2e_2-.png.9c52ec96b83dc2ef472c8552d5b00fc0.png"></p>

<p>
	إذا قمت بإدخال رقم يحتوي فعلًا على صفر بادئ، كالرقم 056 مثلًا، سيقوم كالك بحذف الصفر تلقائيًا والاحتفاظ ببقية الرقم. فإذا رغبت في الاحتفاظ بالصفر، قم بإدخال فاصلة عُليا (') قبل إدخال الرقم. بعد ذلك اضغط على زر Enter وستختفي الفاصلة تلقائيًا ويتم الاحتفاظ بالصفر:
</p>

<p style="text-align: center;">
	<img alt="3-فاصلة عليا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23779" data-unique="303s1w0z3" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3110047d7_3-.png.19fd47c7ee8d03679ce23ae04d191aca.png"></p>

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

<p>
	من تبويب الأرقام، وبالتحديد من مجموعة فئة Category حدّد الخيار النص Text ثم انقر على حسنًا OK:
</p>

<p style="text-align: center;">
	<img alt="4-النص.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23780" data-unique="nl032inem" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3111e4441_4-.png.e24d1383ba3805e953e655c3d08bd2cf.png"></p>

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

<h3>
	إدخال النصوص
</h3>

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

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23781" href="https://academy.hsoub.com/uploads/monthly_2017_06/594c3112722df_5-.png.9bdc04e12a53c83c91f73b72f8fb49b7.png" rel=""><img alt="5-توسيع شريط الصيغة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23781" data-pin-nopin="true" data-unique="zki66ffj8" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3112b7297_5-.thumb.png.e2bc3dc6d494f9e34022ed7a3da9a585.png"></a>
</p>

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

<h3>
	إدخال الوقت والتاريخ
</h3>

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

<p>
	أمّا عند إدخال الوقت، فقم بفصل عناصره باستخدام النقطتين (:)، (مثل 10:23:00). سيتغير تنسيق الوقت تلقائيًا إلى التنسيق الافتراضي المستخدم بواسطة كالك.
</p>

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

<p style="text-align: center;">
	<img alt="6-تغيير تنسيق الوقت والتاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23782" data-unique="wvbdswwrs" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c311543495_6-.png.69bbf3a0172de81ba3b0966c824572f9.png"></p>

<h3>
	خصائص لتسريع إدخال البيانات
</h3>

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

<h3>
	أداة الإدخال التلقائي AutoInput Tool
</h3>

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

<p style="text-align: center;">
	<img alt="7-إدخال تلقائي.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23783" data-unique="b82bb1ula" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3116451c9_7-.gif.194424a482ca33ef07f1fa1938976011.gif"></p>

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

<p style="text-align: center;">
	<img alt="8-إدخال تلقائي2.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23784" data-unique="kbqtmqvg8" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c311810296_8-2.gif.a90f364498df35209b8a6cd1f03536ae.gif"></p>

<p>
	أمّا إذا رغبت في عرض قائمة خيارات الإكمال المتاحة للعمود الحالي فاضغط على المفتاحين Alt + Down:
</p>

<p style="text-align: center;">
	<img alt="9-إدخال تلقائي 3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23785" data-unique="5gb4k1uht" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31192f742_9-3.png.b6d7fa656562b05e4db4552fb3252e8d.png"></p>

<p>
	عند البدء بكتابة صيغة باستخدام حروف تطابق حروف صيغ مدخلة مسبقًا، سيظهر تلميح مساعدة يعرض آخر 10 دوال استخدمت في مرشد الدوال، ويمكنك الضغط على مفتاح Enter لإدخال أول دالة في التلميح، أو استخدام المفاتيح Ctrl + Tab للانتقال إلى الخيار التالي الظاهر في التلميح وإدخاله:
</p>

<p style="text-align: center;">
	<img alt="10-صيغة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23786" data-unique="rvxd6jwax" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3119a3b2a_10-.png.50e20fe6384f97a9591709dc43e0cc21.png"></p>

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

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

<p style="text-align: center;">
	<img alt="11-إلغاء تفعيل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23787" data-unique="9w7b5j7fn" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c311abb00d_11-.png.81c6b4283cb79bf3dbd3f2f2c5ed1c06.png"></p>

<h3>
	أداة التعبئة
</h3>

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

<p style="text-align: center;">
	<img alt="12-تعبئة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23788" data-unique="gmzbrk5ky" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c311e63eb8_12-.png.f19c1c0da168513eb3f4a63006705735.png"></p>

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

<p style="text-align: center;">
	<img alt="13-تعبئة سلسلة.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23789" data-unique="pqfdw2kty" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312108439_13-.gif.0763cc415fee36f7adb9ba2c848473f1.gif"></p>

<p>
	<strong>ملاحظة</strong>: عندما تحدد الخلايا أثناء استخدام أداة التعبئة، تأكد من أنّ هذه الخلايا لا تحتوي على بيانات (باستثناء بيانات الخلية التي تريد استخدامها)، لأنه عند استخدام أداة التعبئة، سيتم استبدال البيانات الأصلية في الخلايا المحددة بالبيانات الناتجة عن التعبئة.
</p>

<h3>
	خيارات التعبئة
</h3>

<p>
	يوفر كالك العديد من الخيارات لتخصيص أمر التعبئة، كتحديد نوع التعبئة، اتجاهها، قيمة البداية والنهاية... إلخ. ويمكن الوصول إلى هذه الخيارات عبر المسار الورقة Sheet&gt; املأ الخلايا Fill&gt; السلسلة Series:
</p>

<p style="text-align: center;">
	<img alt="14-السلسلة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23790" data-unique="g8ovp44w7" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31230742d_14-.png.5ed876f12b0fd86d8914739845575061.png"></p>

<p>
	سيُفتح مربع الحوار Fill Series ومنه يمكنك تخصيص الخيارات التالية:
</p>

<p style="text-align: center;">
	<img alt="15-خيارات التعبئة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23791" data-unique="q60ukwyr8" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31247b7e6_15-.png.3f0ae4da9d567968a127a1af3faff81d.png"></p>

<ul>
<li>
		<strong>الاتجاه Direction</strong>: لتحديد اتجاه التعبئة نسبة إلى الخلية الأصلية المحددة؛ إلى الأعلى، الأسفل، اليمين، أو اليسار.
	</li>
	<li>
		<strong>نوع السلسلة Series Type:</strong>
		<ul>
<li>
				<strong>خطية Linear</strong>: تنشئ سلسلة رقمية خطية باستخدام قيمة الزيادة المحددة، وتنتهي السلسلة بقيمة النهاية المحددة.
			</li>
			<li>
				<strong>متزايدة Growth</strong>: تنشئ سلسلة متزايدة باستخدام قيمة الزيادة المحددة، وتنتهي السلسلة بقيمة النهاية المحددة.
			</li>
			<li>
				<strong>تاريخ Date</strong>: لإنشاء سلسلة تواريخ باستخدام قيمة الزيادة المحددة، وتنتهي السلسلة بقيمة النهاية المحددة.
			</li>
			<li>
				<strong>تعبئة تلقائية AutoFill</strong>: تقوم بتشكيل سلسلة في الورقة بشكل مباشر بدون تحديد مقدار الزيادة أو قيمة النهاية. ويمكن أن تستخدم هذه الخاصية القوائم المخصصة. على سبيل المثال، عند كتابة "يناير" في الخلية الأولى، سيتم إكمال السلسلة بقيم الأشهر المعرّفة في قوائم الفرز (أدوات&gt; الخيارات&gt; LibreOffice Calc&gt; قوائم الفرز). كما أنّ هذه الخاصية تعمل على إكمال السلسلة باستخدام نمط معرّف. على سبيل المثال، سيتم إكمال السلسلة الرقمية 1، 3، 5، بشكل تلقائي بالقيم 7، 9، 11، 13...وهكذا.
			</li>
		</ul>
</li>
</ul>
<ul>
<li>
		<strong>وحدة الوقت Time Unit</strong>: وهي الوحدة المستخدمة في إنشاء سلسلة الوقت أو التاريخ، وتكون هذه الخيارات غير مفعلة ما لم تقم تحديد الخيار تاريخ Date من نوع السلسلة.
	</li>
	<li>
		<strong>قيمة البداية Start Value</strong>: قيمة بداية السلسلة، ويمكن أن تكون أرقام، تواريخ، أو أوقات.
	</li>
	<li>
		<strong>قيمة النهاية End Value:</strong> قيمة نهاية السلسلة، ويمكن أن تكون أرقام، تواريخ، أو أوقات.
	</li>
	<li>
		<strong>مقدار الزيادة Increment:</strong> تحدد القيمة التي يزداد فيها كل عنصر في السلسلة عن العنصر الذي يسبقه. ويكون هذا الخيار غير مفعّل في حالة استخدام التعبئة التلقائية.
	</li>
</ul>
<h2>
	أمثلة تطبيقية
</h2>

<p>
	<strong>مثال 1</strong>: إنشاء سلسلة خطية باتجاه الأسفل، تبدأ بالرقم 10 وتنتهي بالرقم 30 وبمقدار زيادة يساوي 5.
</p>

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

<p style="text-align: center;">
	<img alt="16-سلسلة خطية.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23792" data-unique="6g2pcuy4n" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3125de4b3_16-.png.a95fff7b6922738a7e709e9a5a08b233.png"></p>

<p>
	بعد ذلك نذهب إلى قائمة الورقة&gt; املأ الخلايا&gt; السلسلة. ومن مربع الحوار Fill Series نحدد الخيار Down من مجموعة الاتجاه، والخيار Linear من مجموعة نوع السلسلة، ثم ندخل القيمة 25 في حقل End Value والقيمة 5 في حقل Increment:
</p>

<p style="text-align: center;">
	<img alt="17-خيارات.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23793" data-unique="xpkm7uwnl" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31264f3ac_17-.png.fe866f0312a25c634ddd1dd56e25c6d8.png"></p>

<p>
	في كل خلية، ستعمل خاصية التعبئة على إضافة العدد 5 إلى القيمة الموجودة في الخلية السابقة، وستكون النتيجة كالتالي:
</p>

<p style="text-align: center;">
	<img alt="18-خطية.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23794" data-unique="e184fh8cm" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3127912ea_18-.png.a94097388431ae36e2221ca43e6bc383.png"></p>

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

<p style="text-align: center;">
	<img alt="19-تعبئة تلقائية.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23795" data-unique="w5mtt82oo" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31292956c_19-.gif.74c7f2ecf20d0369f679e82cdb3c95e0.gif"></p>

<p>
	<strong>مثال 2</strong>: إنشاء سلسلة متزايدة باتجاه الأعلى تبدأ بالرقم 1 وتنتهي بالرقم 27، وبمقدار زيادة يساوي 3.
</p>

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

<p style="text-align: center;">
	<img alt="20-سلسلة متزايدة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23796" data-unique="nriuri3rl" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3129a26af_20-.png.f0db448ea83793446840762c4b82f61c.png"></p>

<p>
	من مربع الحوار Fill Series (الورقة&gt;املأ الخلايا&gt; السلسلة) نحدد الخيار Up من مجموعة الاتجاه والخيار Growth من مجموعة Series Type، ثم ندخل الرقم 12 في حقل End Value والرقم 3 في حقل Increment:
</p>

<p style="text-align: center;">
	<img alt="21-متزايدة 2.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23797" data-unique="dv8pokdj4" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312a2e610_21-2.png.07ee235d8a70884aaa91ab9aa2758b94.png"></p>

<p>
	في كل خلية، ستعمل خاصية التعبئة على ضرب العدد 3 في القيمة الموجودة في الخلية السابقة، وستكون النتيجة كالتالي:
</p>

<p style="text-align: center;">
	<img alt="22-نتيجة متزايدة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23798" data-unique="d424cf5dt" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312b52690_22-.png.763178b5500838a9beb8248e898c163b.png"></p>

<p>
	<strong>مثال 3</strong>: إنشاء سلسلة تواريخ تبدأ من التاريخ 10/04/2017 وتنتهي بتاريخ 10/02/2018، على أن يكون مقدار الزيادة 2 ونوع الوحدة شهرية.
</p>

<p>
	نبدأ بإدخال التاريخ 10/04/2017 في إحدى الخلايا، ثم نحدد تلك الخلية والخلايا الخمس المجاورة لها:
</p>

<p style="text-align: center;">
	<img alt="23-سلسلة تاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23799" data-unique="2p8rkkwkz" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312c148ec_23-.png.26e1845de32b39613028b1b0071c9faf.png"></p>

<p>
	من مربع الحوار Fill Series، نحدد الخيار Date من مجموعة Series Type، والخيار Month من مجموعة Time Unit، ثم ندخل التاريخ 10/02/2017 في حقل End Value والقيمة 2 في حقل Increment:
</p>

<p style="text-align: center;">
	<img alt="24-خيارات سلسلة تاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23800" data-unique="q2jci4cla" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312d5b4c5_24-.png.4f795576b91a82073c59a11bd8cfaed7.png"></p>

<p>
	في كل خلية، ستعمل الصيغة على إضافة شهرين (مقدار الزيادة = 2) على التاريخ الموجود في الخلية السابقة، وستكون النتيجة كالتالي:
</p>

<p style="text-align: center;">
	<img alt="25-نتيجة سلسلة تاريخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23801" data-unique="76bohhhfv" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312e302fc_25-.png.e2d705763866b231ee6ba988cfe5b973.png"></p>

<h3>
	إنشاء قائمة مخصصة
</h3>

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

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

<p>
	للقيام بذلك، اذهب إلى أدوات Tools&gt; الخيارات Options&gt; LibreOffice Calc&gt; قوائم الفرز Sort Lists ثم انقر على زر جديد New في مربع الحوار الذي سيظهر:
</p>

<p style="text-align: center;">
	<img alt="26-قوائم الفرز.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23802" data-unique="fnnj4d5ed" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c312f88aaa_26-.png.6cd974d2fcdee846e86608a184ee732f.png"></p>

<p>
	بعد ذلك أدخل عناصر القائمة المرغوبة في حقل المدخلات Entries؛ كل عنصر في سطر جديد:
</p>

<p style="text-align: center;">
	<img alt="27-عناصر القائمة4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23803" data-unique="em3vm63v5" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3130be604_27-4.png.8a70d068b579bfab4b903a8c8d5d27a1.png"></p>

<p>
	بعد الانتهاء من إدخال العناصر، انقر على زر أضف Add لإضافتها إلى قوائم الفرز، ثم على زر حسنًا OK للخروج من مربع الحوار.
</p>

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

<p style="text-align: center;">
	<img alt="28-قائمة مخصصة.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23804" data-unique="2j5tvrt9q" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c313200b9a_28-.gif.6c9344d6c52329e9c2f885920e6dcbb8.gif"></p>

<h3>
	قوائم التحديد
</h3>

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

<p>
	لاستخدام قوائم التحديد، حدد خلية فارغة في العمود الذي يحتوي على خلايا بمدخلات نصية ثم انقر على بزر الفأرة الأيمن واختر قائمة التحديد Selection Lists:
</p>

<p style="text-align: center;">
	<img alt="29-قائمة التحديد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23805" data-unique="vf6a08lg8" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31338fdbc_29-.png.d4f3e438f6bf933f5bf85e92ee234726.png"></p>

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

<p style="text-align: center;">
	<img alt="30-قائمة تحديد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23806" data-unique="3w7k6p88t" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3134c592d_30-.png.1cd8317dc6019efff943bc7b9fae519b.png"></p>

<p>
	انقر على العنصر المرغوب وسيتم إدخاله في الخلية.
</p>

<h3>
	إدخال البيانات في أوراق متعددة
</h3>

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

<p>
	للقيام بذلك، اذهب إلى الورقة Sheet&gt; حدد الأوراق Select Sheets:
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23807" href="https://academy.hsoub.com/uploads/monthly_2017_06/594c3135d48fe_31-.png.1695246c3ef47d801e795e2273d2d3d6.png" rel=""><img alt="31-حدّد الأوراق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23807" data-unique="6r6pxwl94" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c3136a35a4_31-.thumb.png.45a4588c7067e0b671a05d462c775bd9.png"></a>
</p>

<p>
	حدد الأوراق التي تريد إدخال البيانات عليها باستخدام الفأرة والمفتاح Ctrl في نفس الوقت ثم انقر على زر حسنًا OK:
</p>

<p style="text-align: center;">
	<img alt="32-أوراق محددة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23808" data-unique="3njsaa3vm" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c31376b198_32-.png.715c75b9665aeb2c6b9ea391a2a36c04.png"></p>

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

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

<p style="text-align: center;">
	<img alt="33-إلغاء تحديد كافة الأوراق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23809" data-unique="ftzho3uq3" src="https://academy.hsoub.com/uploads/monthly_2017_06/594c313835b26_33-.png.d4aa7834e44290eb09b8cc2676fb1878.png"></p>

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

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

<p>
	ترجمة-وبتصرّف-ل<a href="http://www.libreoffice.org/assets/Uploads/Documentation/en/GS51-GettingStartedLO.pdf" rel="external nofollow">دليل المستخدم الخاص بالحزمة المكتبية LibreOffice</a>.
</p>
]]></description><guid isPermaLink="false">273</guid><pubDate>Tue, 27 Jun 2017 11:15:00 +0000</pubDate></item><item><title>&#x62A;&#x639;&#x644;&#x651;&#x645; &#x623;&#x633;&#x627;&#x633;&#x64A;&#x627;&#x62A; &#x627;&#x644;&#x62A;&#x639;&#x627;&#x645;&#x644; &#x645;&#x639; &#x62C;&#x62F;&#x627;&#x648;&#x644; &#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D9%84%D9%91%D9%85-%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r270/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2017_07/main2.png.19616d259da825be8fb6a582e563e80e.png" /></p>

<p>
	تعرّفنا في <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/" rel="">الدرس السابق</a> على Calc، معالج البيانات والجداول الحسابية منLibreOffice، وتطرقنا إلى أهم الوظائف والخصائص التي يوفرها، كتخزين البيانات، تحليلها، وإجراء العمليات الحسابية البسيطة والمعقدة عليها. كما تعرفنا على أقسام واجهة البرنامج وكيفية إنشاء، فتح، وحفظ جداول البيانات عليه.
</p>

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

<h2 id="التنقل-ضمن-جدول-البيانات">
	التنقل ضمن جدول البيانات
</h2>

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

<h3 id="التنقل-بين-الخلايا">
	التنقل بين الخلايا
</h3>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23664" href="https://academy.hsoub.com/uploads/monthly_2017_06/59422fab4de1f_1---.png.370f82da86ba7709b24e10b1f8ff4900.png" rel=""><img alt="1-خلية-نطاق-خلايا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23664" data-unique="uf4j977p6" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fac35d67_1---.thumb.png.edf743225f80d2f90c208d65fd35590a.png"></a>
</p>

<p>
	نتنقل بعد تحديد الخلية بين الخلايا بإحدى الطرق التالية:
</p>

<ul>
<li>
		<strong>باستخدام الفأرة:</strong> للانتقال إلى خلية معينة وتحديدها، ببساطة انقر مرة واحدة بزر الفأرة الأيسر على تلك الخلية.
	</li>
	<li>
		<strong>باستخدام مرجع الخلية:</strong> قم أولًا بمسح اسم/مرجع الخلية من مربع الاسم في شريط الصيغة، ثم اكتب اسم الخلية التي تريد تحديدها في المربع واضغط على مفتاح Enter من لوحة المفاتيح. هذه الطريقة مفيدة على وجه الخصوص عندما ترغب في تحديد خلية بعيدة ليست ضمن نطاق شاشتك (كالخلية Z150 مثلًا)، وفي هذه الحالة لن تضطر إلى التمرير نزولًا وإلى اليسار للوصول على الخلية.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="2-مربع-الاسم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23665" data-unique="8au467p4f" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fad2feab_2--.png.009b56ca2d7e7a206b4c41846f7c35c0.png"></p>

<ul>
<li>
		<strong>باستخدام لوحة المفاتيح:</strong> لوحة المفاتيح هي أسهل وأسرع طريقة للتنقل بين الخلايا. يمكنك استخدام المفتاح Enter للانتقال إلى الأسفل إلى الصف التالي في العمود، والمفتاحين Enter + Shift للعودة إلى الأعلى إلى الصف السابق في العمود. اضغط على المفتاح Tab للانتقال إلى الخلية التالية إلى اليمين من الخلية المحددة، وللانتقال إلى اليسار من الخلية المحددة اضغط على المفتاحين Tab + Shift. كما يمكنك استخدام مفاتيح الأسهم للانتقال إلى اليمين، اليسار، الأعلى، أو الأسفل.
	</li>
	<li>
		<strong>باستخدام مربع الحوار Navigator:</strong> انقر على أيقونة المتصفح من الشريط الجانبي أو اضغط على مفتاح F5 لفتح مربع الحوار <em>_ المتصفّح Navigator_</em>، ثم اكتب عنوان العمود ورقم الصف للخلية التي تريد الانتقال إليها في حقلي <strong>العمود Column</strong> والصّف Raw__ على التوالي، وأخيرًا اضغط على Enter للانتقال إلى تلك الخلية.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="3-المتصفح.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23666" data-unique="b7uwpwvry" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422faeacd34_3-.png.587d9ad15a484d85c280f80df4e5f242.png"></p>

<h3 id="التنقل-بين-أوراق-العمل">
	التنقل بين أوراق العمل
</h3>

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

<ul>
<li>
		<strong>باستخدام مربع الحوار المتصفّح Navigator:</strong> افتح مربع الحوار <em>_ المتصفّح Navigator_</em> بنفس الطريقة المذكورة أعلاه، ثم انقر نقرا مزدوجًا على أي ورقة من تلك المدرجة تحت مجموعة أوراق.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="4-أوراق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23667" data-unique="7i88dgdwx" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422faf67bb1_4-.png.77d997bc916592134912030edeb5f3a5.png"></p>

<ul>
<li>
		<strong>باستخدام لوحة المفاتيح:</strong> عند الضغط على مفتاحي الاختصار Ctrl + Page Down سيتم الانتقال إلى الورقة التالية، وعند الضغط على مفتاحي الاختصار Ctrl + Page Up سيتم الرجوع إلى الورقة السابقة.<br><strong>ملحوظة:</strong> يوجد الزران Page Down وPage Up عادة إلى جانب الأسهم في لوحة المفاتيح ويُستخدمان لتمرير المعروض على الشاشة بمسافة صفحة كاملة، بدلا من سطر كما تفعل الأسهم التي تشير إلى الأعلى أو الأسفل.
	</li>
	<li>
		<strong>باستخدام الفأرة:</strong> ببساطة، انقر على لسان تبويب الورقة في الجزء السفلي من جدول البيانات لتحديد الورقة المرغوبة.
	</li>
</ul>
<p style="text-align: center;">
	<img alt="5-تبويب-الورقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23668" data-pin-nopin="true" data-unique="pbsiy5a4a" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb01b4ee_5--.png.f8bba844cc1fddabdab20c581bf8a2f0.png"></p>

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

<p style="text-align: center;">
	<img alt="6-أسهم-التنقل.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23669" data-pin-nopin="true" data-unique="l6bxlssb1" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb0aa45c_6--.png.dbbd93b0f975ff01bb2a62a9335dfaa4.png"></p>

<h2 id="تحديد-العناصر-ضمن-جدول-البيانات">
	تحديد العناصر ضمن جدول البيانات
</h2>

<h3 id="تحديد-الخلايا">
	تحديد الخلايا
</h3>

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

<p style="text-align: center;">
	<img alt="7-تحديد-نطاق-خلايا-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23670" data-unique="hd9u4b3bz" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb1c0b7d_7----compressor.gif.4f69d4b9050bf553c53f1346aafa7341.gif"></p>

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

<p style="text-align: center;">
	<img alt="8-تحديد-نطاق2-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23671" data-unique="99a3l9tnr" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb287b10_8--2-compressor.gif.c0e24ab714b933e3e4f46579d571a04d.gif"></p>

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

<p style="text-align: center;">
	<img alt="9-تحديد-خلايا-غير-متجاورة-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23672" data-unique="1hzpd6gp9" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb3846d9_9-----compressor.gif.5675526b4c899c95cd8eb57f49758633.gif"></p>

<h3 id="تحديد-الأعمدة-والصفوف">
	تحديد الأعمدة والصفوف
</h3>

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

<p style="text-align: center;">
	<img alt="10-تحديد-صف-أو-عمود-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23673" data-unique="hsgx8lnv8" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb4cb34b_10-----compressor.gif.3b8d9b6c7c2d4c5d6f48df518613061e.gif"></p>

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

<p style="text-align: center;">
	<img alt="11-تحديد-أعمدة-متجاورة-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23674" data-unique="gqq60vzo7" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb5b5f51_11----compressor.gif.a843af69a6fcbab1b77aaadf684b3ecc.gif"></p>

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

<p style="text-align: center;">
	<img alt="12-أعمدة-وصفوف-غير-متجاورة-compressor.gif" class="ipsImage ipsImage_thumbnailed" data-fileid="23675" data-unique="ag68ljvux" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb715a13_12-----compressor.gif.47ff7f9c923b29efd2e2c2692549b311.gif"></p>

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

<p style="text-align: center;">
	<img alt="13-تحديد-الورقة-كاملة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23676" data-unique="teu4j2rza" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb7b0ff1_13---.png.09a11117b88bbc6f277e384df5545abf.png"></p>

<h3 id="تحديد-الأوراق">
	تحديد الأوراق
</h3>

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

<p style="text-align: center;">
	<img alt="14-ورقة-محددة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23677" data-unique="pi2q9n8u0" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb854c80_14--.png.0a38ecc9700e46caa798448a206f6b48.png"></p>

<p>
	ولتحديد مجموعة أوراق متجاورة، انقر على لسان تبويب الورقة الأولى، اضغط على مفتاح Shift، ومع الاستمرار بالضغط انقر على لسان تبويب الورقة الأخيرة. وهذا الخيار مفيد عندما ترغب في تطبيق تغييرات معينة على عدد من الأوراق دفعة واحدة.<br>
	أمّا لتحديد مجموعة من الأوراق غير المتجاورة، انقر على لسان تبويب الورقة الأولى، اضغط على مفتاح Ctrl، ومع الاستمرار بالضغط، انقر على ألسنة تبويب الأوراق الأخرى.<br>
	وأخيرًا، لتحديد كل الأوراق في جدول البيانات، انقر بزر الفأرة الأيمن على لسان تبويب إحدى الأوراق واختر <strong>تحديد كافة الأوراق Select All Sheets</strong>.
</p>

<p style="text-align: center;">
	<img alt="15-تحديد-كافة-الأوراق.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23678" data-unique="3k4fq04vv" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb90b947_15---.png.b556167618a03712dc586275a2be0887.png"></p>

<h2 id="إدراج-وحذف-الأعمدةالصفوف">
	إدراج وحذف الأعمدة/الصفوف
</h2>

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

<p style="text-align: center;">
	<img alt="16-إدراج-صف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23679" data-unique="p1wxijlci" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fb9b84f6_16--.png.56e6710edc358bc782c3da796116e2df.png"></p>

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

<p style="text-align: center;">
	<img alt="17-إدراج-عمود.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23680" data-unique="ijutl874h" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fba6b9ff_17--.png.8b45687f5135ed3aa56e28f270f62984.png"></p>

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

<p style="text-align: center;">
	<img alt="18-حذف-صفوف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23681" data-unique="1nhy4ia6j" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fbb1ed63_18--.png.e2bf26fcee0cb1e5883d79a1c3d23a02.png"></p>

<p>
	<strong>ملاحظة:</strong> بإمكانك حذف مجموعة صفوف/أعمدة متفرقة بالضغط على المفتاح Ctrl أثناء تحديدها ومن ثم حذفها بالطريقة المذكورة أعلاه.
</p>

<h2 id="إدراج-نقلنسخ-وحذف-الأوراق">
	إدراج، نقل/نسخ، وحذف الأوراق
</h2>

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

<p style="text-align: center;">
	<img alt="19-إدراج-ورقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23682" data-unique="ti04oti0z" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fbbca1dd_19--.png.b9cd6350b8c243cba48bea749bff2f38.png"></p>

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

<p style="text-align: center;">
	<img alt="20-إدراج-ورقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23683" data-unique="89qdhky4j" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fbc818a1_20--.png.0f61f690b3219c63ae9510f3e6d139c4.png"></p>

<p>
	عدّل الخيارات ثم انقر على حسنًا.
</p>

<p>
	إذا رغبت في نقل الورقة أو نسخها من جدول بيانات إلى آخر، انقر على لسان تبويب الورقة بزر الفأرة الأيمن واختر انقل الورقة أو انسخها.
</p>

<p style="text-align: center;">
	<img alt="21-نقل-أو-نسخ-الورقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23684" data-unique="bkk9fm0kr" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fbd3e38c_21----.png.3a210b731dab173d27caee235c82dd27.png"></p>

<p>
	حدّد من مربع الحوار <strong>نقل/نسخ الورقة</strong> الإجراء الذي تريد القيام به، <strong>نقل Move</strong>، أو <strong>نسخ Copy</strong>. حدّد من قائمة <strong>المكان Location</strong> جدول البيانات الذي تريد نقل الورقة إليه. يمكنك نقلها إلى جدول بيانات مفتوح حاليًا، أو إلى جدول بيانات جديد. بعد ذلك حدد موضع الورقة من قسم <strong>إدراج قبل Insert before</strong> ثم أدخل اسم الورقة في حقل <em>_ اسم جديد New name_</em> وانقر على حسنًا.
</p>

<p style="text-align: center;">
	<img alt="22-نقل-نسخ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23685" data-unique="62pdax6ls" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fbde6e0b_22--.png.4866b9baf49efb0f73b24ac12792054e.png"></p>

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

<p style="text-align: center;">
	<img alt="23-حذف-الورقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23686" data-unique="vxouyugtq" src="https://academy.hsoub.com/uploads/monthly_2017_06/59422fbe9aba7_23--.png.e83ac02ea55923bc028acb6490758026.png"></p>

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

<p>
	ترجمة- بتصرّف - ل<a href="http://www.libreoffice.org/assets/Uploads/Documentation/en/GS51-GettingStartedLO.pdf" rel="external nofollow">دليل المستخدم الخاص بالحزمة المكتبية LibreOffice</a>.
</p>
]]></description><guid isPermaLink="false">270</guid><pubDate>Thu, 15 Jun 2017 21:00:00 +0000</pubDate></item><item><title>&#x62A;&#x639;&#x631;&#x651;&#x641; &#x639;&#x644;&#x649; &#x645;&#x639;&#x627;&#x644;&#x62C; &#x62C;&#x62F;&#x627;&#x648;&#x644; &#x627;&#x644;&#x628;&#x64A;&#x627;&#x646;&#x627;&#x62A; LibreOffice Calc</title><link>https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-calc/%D8%AA%D8%B9%D8%B1%D9%91%D9%81-%D8%B9%D9%84%D9%89-%D9%85%D8%B9%D8%A7%D9%84%D8%AC-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-libreoffice-calc-r267/</link><description><![CDATA[
<p><img src="https://academy.hsoub.com/uploads/monthly_2017_07/main2.png.dd18f031d224e64dcb90b1c61d11d162.png" /></p>

<p>
	تعرفنا في دروس سابقة على أحد تطبيقات حزمة <a href="https://academy.hsoub.com/apps/productivity/liberoffice/" rel="">LibreOffice</a> المكتبية، وهو <a href="https://academy.hsoub.com/apps/productivity/liberoffice/libreoffice-writer/" rel="">محرر النصوص Writer</a>، وتعلمنا كيفية استخدامه لإنشاء المستندات النصية وإضافة العناصر المختلفة إليها، كالصور والجداول، وتنسيقها.
</p>

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

<p>
	أمّا هذا الدرس فيمثل مدخل إلى برنامج Calc، وفيه سنتعرف على الوظائف الأساسية للبرنامج وواجهته.
</p>

<h2 id="ما-هو-برنامج-libreoffice-calc">
	ما هو برنامج LibreOffice Calc؟
</h2>

<p>
	كالك (Calc) هو تطبيق لمعالجة البيانات، الجداول الحسابية، والمخططات من LibreOffice، وبواسطته يمكنك إدخال البيانات بمختلف أنواعها (وعادة ما تكون رقمية Numerical) في جدول ومن ثم تطبيق إجراءات معينة على هذه البيانات للحصول على نتيجة معينة. أو بدلًا من ذلك، يمكنك إدخال البيانات ومن ثم استخدام خاصية What if في كالك وملاحظة التغييرات التي تحدث على النتائج عند تغيير قيم معينة في البيانات، دون الحاجة إلى إعادة إدخال جدول البيانات برمّته.
</p>

<p>
	يوفر كالك خصائص أخرى تتضمن:
</p>

<ul>
<li>
		الدوال التي يمكن استخدامها لإنشاء الصيغ وتنفيذ عمليات حسابية معقدة على البيانات.
	</li>
	<li>
		دوال قواعد البيانات لترتيب البيانات، تخزينها، وتصفيتها.
	</li>
	<li>
		مجموعة واسعة من المخططات ثنائية وثلاثية الأبعاد.
	</li>
	<li>
		الماكرو macro لتسجيل المهام المتكررة وتنفيذها. وتتضمن لغات البرمجة المدعومة من قبل LibreOffice مثل Basic، <a href="https://academy.hsoub.com/programming/python/" rel="">Python</a>، و<a href="https://academy.hsoub.com/programming/javascript/" rel="">JavaScript</a>.
	</li>
	<li>
		إمكانية فتح جداول بيانات <a href="https://academy.hsoub.com/apps/productivity/office/microsoft-excel/" rel="">إكسل</a> وتحريرها وحفظها.
	</li>
	<li>
		استيراد وتصدير جداول البيانات بصيغ متعددة، من ضمنها HTML، CSV، PDF، وPostScript.
	</li>
</ul>
<p>
	<strong>ملاحظة:</strong> ستكون بيئة كالك مألوفة لمستخدمي برنامج ميكروسوفت إكسل، لأنه يوفر وظائف وخصائص مشابهة إلى حد كبير.
</p>

<h2 id="هيكلية-مستند-كالك">
	هيكلية مستند كالك
</h2>

<p>
	مستند كالك هو عبارة عن جدول بيانات Spreadsheet يتكون من عدد من الأوراق Sheets الفردية التي تتكون بدورها من مجموعة خلايا Cells مرتبة بشكل صفوف وأعمدة.<br>
	يمكن إدخال عناصر مختلفة في الخلايا، مثل الأرقام، النصوص، الصيغ… إلخ، وبالتالي تعرض البيانات بشكل جدول قابل للتعديل والتحليل.<br>
	أما جدول البيانات فيمكن أن يتضمّن عددًا من الأوراق، والورقة في كالك يمكن أن تتألف من 1,048,576 صف و1024 عمود كحد أقصى.
</p>

<h2 id="واجهة-مستند-كالك">
	واجهة مستند كالك
</h2>

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

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23560" href="https://academy.hsoub.com/uploads/monthly_2017_06/5939573c95855_01-.png.d867c003bddd7aa914f8a877e0060f92.png" rel=""><img alt="01-الواجهة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23560" data-unique="tnhr8n4jd" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939573e98406_01-.thumb.png.80d34e4bbbf222aa9c962de2d1cff85a.png"></a>
</p>

<p>
	 
</p>

<ul>
<li>
		شريط العنوان Title Bar: يقع في الجزء العلوي من النافذة ويعرض اسم جدول البيانات الحالي.
	</li>
	<li>
		شريط القوائم Menu Bar: يقع تحت شريط العنوان ويحتوي على عدد من القوائم التي تتضمن أوامر وخيارات مختلفة:
		<ul>
<li>
				ملف File: تحتوي على الأوامر التي تطبّق على المستند برمّته؛ كأمر الفتح، الحفظ، الطباعة، التصدير…إلخ.
			</li>
			<li>
				تحرير Edit: تحتوي على الأوامر الخاصة بتحرير المستند، مثل التراجع، النسخ، التحديد، البحث والاستبدال…إلخ.
			</li>
			<li>
				عرض View: تحتوي على أوامر تعديل مظهر واجهة المستخدم والتحكم في أقسام النافذة، مثل أشرطة الأدوات، ترويسة الصفوف والأعمدة، التقريب Zoom، ملء الشاشة… إلخ.
			</li>
			<li>
				إدراج Insert: تحتوي على أوامر إدراج العناصر في جدول البيانات، مثل الخلايا، الصفوف، الأعمدة، الأوراق، الصور… إلخ.
			</li>
			<li>
				تنسيق Format: تحتوي على أوامر تنسيق مظهر الورقة، مثل المحاذاة، التباعد، أبعاد الصفوف والاعمدة، أبعاد الصفحة …إلخ.
			</li>
			<li>
				الورقة Sheet: تحتوي على أوامر تعديل تخطيط الورقة، مثل إدراج/حذف الصفوف والأعمدة والخلايا، إدراج ورقة، إدراج فاصل صفحات…إلخ.
			</li>
			<li>
				أدوات Tools: تحتوي على أوامر وخصائص متنوعة تساعدك على التحقق من جدول البيانات وتخصيصه، مثل التدقيق الإملائي، مشاركة جدول البيانات، حماية الورقة، الماكرو… إلخ.
			</li>
			<li>
				البيانات Data: تحتوي على أوامر للتلاعب بالبيانات في جدول البيانات، مثل تحديد النطاق، الفرز، دمج البيانات …إلخ.
			</li>
			<li>
				نافذة Window: تحتوي على الأوامر الخاصة بنافذة العرض، كفتح نافذة جديدة، وإغلاق النافذة.
			</li>
			<li>
				مساعدة Help: تحتوي على روابط لنظام المساعدة المرفق مع البرنامج، بالإضافة إلى خصائص أخرى مثل مساعدة LibreOffice، معلومات الترخيص، دليل المستخدم… إلخ.
			</li>
		</ul>
</li>
	<li>
		أشرطة الأدوات Toolbars: عند فتح كالك، يكون شريط الأدوات القياسي وشريط أدوات التنسيق مثبتين في الجزء العلوي من مساحة العمل مبدئيّا. ويمكن أن تكون أشرطة الأدوات مثبتة في منطقة معينة أو متحركة يمكن نقلها إلى المكان الذي يناسبك في مساحة العمل. تحتوي أشرطة الأدوات على مجموعة كبيرة من الأيقونات/الأزرار التي تستخدم لتطبيق أوامر أو خصائص معينة. ويمكنك قراءة تلميح مختصر عن وظيفة الأيقونة/الزر بمجرد تمرير مؤشر الفأرة فوقه.
	</li>
	<li>
		<p>
			شريط الصيغة Formula Bar: مثبت باستمرار في الجزء العلوي من الورقة، ويتكون من الأقسام التالية (من اليمين إلى اليسار):<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23561" href="https://academy.hsoub.com/uploads/monthly_2017_06/593957404a08f_02--.png.a2de8c37e24b66f91eef08b094a1ebdd.png" rel=""><img alt="02-شريط-الصيغة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23561" data-unique="4cdp8e95n" src="https://academy.hsoub.com/uploads/monthly_2017_06/59395740d5be1_02--.thumb.png.53c261e1ef7ccbe63e0a443d8c9a52ae.png"></a>
		</p>

		<ul>
<li>
				مربع الاسم Name Box: يعرض اسم (ويسمى أيضًا مرجع Reference) الخلية الذي يتكون من حرف يمثل عنوان العمود ورقم يمثل عنوان الصف. وهذا الاسم يكون مفيدًا عند كتابة الصيغ.
			</li>
			<li>
				مرشد الدوال Function Wizard: يفتح مربع حوار يمكنك من خلاله البحث في مجموعة كبيرة من الدوال المتوفرة. وهو مفيد لأنه يعرض الصيغة العامة للدالة.
			</li>
			<li>
				المجموع Sum: عند النقر على أيقونة المجموع، يتم إيجاد مجموع الأرقام في الخلايا التي تقع فوق الخلية المحددة حاليًا، ثم تُرجع النتيجة في الخلية المحددة. إذا لم يكن هناك أرقام فوق الخلية المحددة، فسيتم جمع الأرقام في الخلايا التي تقع على يمينها.
			</li>
			<li>
				الدالة Function (أيقونة <code>=</code>): عند النقر على أيقونة <code>=</code> تُضاف علامة <code>=</code> في الخلية المحددة، ويُفعَّل سطر الإدخال في شريط الصيغة ليسمح بإدخال صيغة.
			</li>
			<li>
				سطر الإدخال Input Line: يعرض محتويات الخلية المحددة (بيانات، صيغة، أو دالة) ويسمح لك بتحرير محتوى الخلية عن طريق النقر على منطقة داخل السطر ومن ثم إدخال المدخلات المرغوبة. ويمكن أيضًا تحرير محتوى الخلية بالنقر بشكل مزدوج على الخلية نفسها.
			</li>
		</ul>
<p>
			<strong>ملاحظة:</strong> عند تغيير محتوى الخلية أو إدخال محتوى جديد، ستتحول أيقونة الجمع وأيقونة الدالة إلى أيقونتي إلغاء وقبول.
		</p>
	</li>
</ul>
<h2 id="تخطيط-جدول-بيانات-كالك">
	تخطيط جدول بيانات كالك
</h2>

<h3 id="الخلايا">
	الخلايا
</h3>

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

<h3 id="تبويبات-الأوراق">
	تبويبات الأوراق
</h3>

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

<p>
	لتغيير اسم الورقة المبدئي، واستخدام الاسم المرغوب ، انقر على تبويب الورقة بزر الفأرة الأيمن واختر إعادة تسمية الورقة Rename Sheet.
</p>

<p style="text-align: center;">
	<img alt="3-إعادة-تسمية-الورقة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23562" data-unique="xqjs7m4yn" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939574ae8c01_3---.png.4a2a024755047cf65045fb36c1b0588d.png"></p>

<p>
	يمكن أيضًا تغيير لون تبويب الورقة بالنقر عليه بزر الفأرة الأيمن ثم على لون اللسان Tab Color واختيار اللون المرغوب.
</p>

<p style="text-align: center;">
	<img alt="4-لون التبويب.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23563" data-unique="niv5o33pg" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939574bc6229_4-.png.46a4180d0c79724042b282e78fd7c7fc.png"></p>

<h3 id="شريط-الحالة">
	شريط الحالة
</h3>

<p>
	يوفر شريط الحالة معلومات عن جدول البيانات وطرق سهلة لتغيير بعض خصائصه على نحو سريع. تعرض حقول شريط الحالة ما يلي (من اليمين إلى اليسار).
</p>

<p style="text-align: center;">
	<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23564" href="https://academy.hsoub.com/uploads/monthly_2017_06/5939574e122b9_5-.png.fe334806f3e736cd55a14bb91cefe068.png" rel=""><img alt="5-شريط الحالة.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23564" data-unique="nzbd865xv" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939574e70729_5-.thumb.png.f19c6fc4b3b208dbd28c7475fe75a063.png"></a>
</p>

<ul>
<li>
		تسلسل رقم الورقة: يعرض رقم الورقة الحالية وعدد الأوراق الكلي في المستند. ويمكن ألّا يكون تسلسل الورقة مماثلًا للاسم على تبويب الورقة إذا تم نقل الورقة مسبقًا. يمكن فتح مربع الحوار المتصفح Navigatorعند النقر بشكل مزدوج على هذا الحقل.
	</li>
	<li>
		نمط الصفحة: يعرض نمط الصفحة المطبّق على الورقة الحالية، والذي يمكن تغييره بالنقر نقرا مزدوجًا على هذا الحقل لفتح مربع الحوار نمط الصفحة Page Style.
	</li>
	<li>
		وضع الإدراج: يعرض وضع الكتابة المستخدم حاليا في البرنامج. الوضع المبدئي (الافتراضي) هو الإدراج Insert Mode، ويكون عنده هذا الحقل فارغًا. يمكن تشغيل وضع الكتابة الفوقية Overwrite بالنقر على مفتاح INS من لوحة المفاتيح، وعنده ستظهر عبارة “الكتابة على” في هذا الحقل.
	</li>
	<li>
		وضع التحديد: عند النقر على هذا الحقل ستظهر قائمة يمكنك من خلالها اختيار نوع التحديد:
		<ul>
<li>
				التحديد القياسي Standard Selection: يتم تحديد الخلية وتفعيلها بمجرد النقر عليها بزر الفأرة الأيسر، وسيتم إلغاء أي تحديد آخر في الورقة.
			</li>
			<li>
				تمديد التحديد Extend Selection: عند النقر على أي خلية سيتم تمديد أو تقليص التحديد الحالي.
			</li>
			<li>
				إضافة تحديد Adding Selection: سيتم إضافة تحديد جديد إلى التحديد الحالي، والنتيجة ستكون تحديدًا متعددا.
			</li>
			<li>
				اختيار الوحدة Block Selection: لتحديد كتلة نصية.
			</li>
		</ul>
</li>
	<li>
		تغييرات غير محفوظة: تدل هذه الأيقونة على أنّ هناك تغييرات أجريت على المستند ولم يتم حفظها بعد. انقر نقرا مزدوجا عليها لحفظ التغييرات.
	</li>
	<li>
		التوقيع الرقمي: إذا وُقِّع المستند رقميًا، ستظهر أيقونة في هذا الحقل، ويمكنك النقر نقرا مزدوجًا على تلك الأيقونة لعرض شهادة التوقيع (لا يمكن توقيع المستند إن لم يُحفَظ أولًا).
	</li>
	<li>
		معلومات الخلية أو العنصر: يعرض هذا الحقل معلومات ذات صلة بالخلية أو العنصر المحدد. عند تحديد مجموعة خلايا تحتوي على بيانات رقمية، سيظهر مجموع ومتوسط تلك الأرقام في هذا الحقل مبدئيا. انقر بزر الفأرة الأيمن على هذا الحقل لاختيار دوال أخرى تطبق عند تحديد مجموعة خلايا.
	</li>
	<li>
		الشريط المنزلق للتكبير/التصغير: اسحب المنزلق إلى اليمين أو اليسار لتصغير أو تكبير مساحة العمل. يمكنك أيضًا استخدام علامة -/+ لنفس الغرض.
	</li>
	<li>
		نسبة التقريب: تعرض رقمًا يشير إلى مستوى التقريب في المستند. انقر بزر الفأرة الأيمن على هذا الحقل لفتح قائمة القيم المبدئية للتقريب التي يمكنك الاختيار من بينها. أو انقر عليه نقرا مزدوجا لفتح مربع الحوار التكبير/التصغير وتخطيط العرض لإدخال قيمة التقريب المرغوبة يدويًا.
	</li>
</ul>
<h2 id="إنشاء-فتح-وحفظ-جداول-بيانات-كالك">
	إنشاء، فتح، وحفظ جداول بيانات كالك
</h2>

<h3 id="إنشاء-جدول-بيانات-جديد">
	إنشاء جدول بيانات جديد
</h3>

<p>
	افتح مركز البداية لحزمة LibreOffice (النافذة التي تُعرض عند فتح البرنامج وليس عند فتح مستند محدد)، ومن قسم أنشئ Create انقر على جدول كالك ممتد لفتح جدول بيانات جديد.
</p>

<p style="text-align: center;">
	<br><a class="ipsAttachLink ipsAttachLink_image" data-fileid="23551" href="https://academy.hsoub.com/uploads/monthly_2017_06/5939572317cbf_6-.png.9290c3072d03c4b2d61ffa798d6dd691.png" rel=""><img alt="6-إنشاء ملف كالك جديد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23551" data-unique="8khyhwofa" src="https://academy.hsoub.com/uploads/monthly_2017_06/59395724a68d0_6-.thumb.png.b85062bc056cecf03a702783e7bcc216.png"></a>
</p>

<p>
	بإمكانك أيضًا إنشاء جدول بيانات جديد إذا كنت تعمل على أحد مستندات LibreOffice عبر المسار <strong>ملف</strong> &gt; <strong>جديد</strong> &gt; <strong>جدول ممتد</strong>:
</p>

<p style="text-align: center;">
	<br><img alt="7-جدول ممتد.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23552" data-unique="6t0wmxvfu" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939572602130_7-.png.7c0217e75f71a4215d0d4b68ff559739.png"></p>

<p>
	سيُفتح في الحالتين جدول بيانات فارغ.
</p>

<h3 id="إنشاء-جدول-بيانات-من-قالب">
	إنشاء جدول بيانات من قالب
</h3>

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

<p style="text-align: center;">
	<br><img alt="8-قوالب كالك.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23553" data-unique="qeakezxwo" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939572c0f4f4_8-.png.19855e688dcbfe2e30bc8d86db2f8c0a.png"></p>

<p>
	يمكنك بعد ذلك تخصيص القالب وإدخال بياناتك.
</p>

<h3 id="فتح-مستند-موجود-مسبقا">
	فتح مستند موجود مسبقًا
</h3>

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

<ul>
<li>
		إمّا بالنقر على زر افتح ملفًا من مركز البداية.
	</li>
	<li style="text-align: center;">
		<a class="ipsAttachLink ipsAttachLink_image" data-fileid="23554" href="https://academy.hsoub.com/uploads/monthly_2017_06/5939572d464cf_9-.png.5537102262ad92c5d5729086329ccf3a.png" rel=""><img alt="9-افتح ملفًا.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23554" data-unique="mt7r9j0ne" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939572e4145a_9-.thumb.png.d5c33f0824bec6bdca152baecaeb1179.png"></a>
	</li>
	<li>
		أو عبر المسار <strong>ملف</strong> &gt; <strong>فتح</strong>:
	</li>
	<li style="text-align: center;">
		<img alt="10-فتح.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23555" data-unique="xs2qrmaf8" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939573035db6_10-.png.2448afe41ed6d137adb86c9ca53da66b.png">
</li>
	<li>
		أو بالضغط على مفتاحي الاختصار <code>Ctrl + O</code>.
	</li>
</ul>
<p>
	من مربع الحوار <strong>Open</strong>، اذهب إلى المجلد الذي تحفظ عليه المستند ثم حدد المستند وافتحه.
</p>

<h3 id="حفظ-جداول-بيانات-كالك">
	حفظ جداول بيانات كالك
</h3>

<p>
	لحفظ جدول البيانات بعد الانتهاء من العمل عليه، انقر على أيقونة الحفظ في شريط الأدوات القياسي (أو اضغط على مفتاحي الاختصار Ctrl +S).
</p>

<p style="text-align: center;">
	<br><img alt="11-حفظ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23556" data-unique="vgbykqmbt" src="https://academy.hsoub.com/uploads/monthly_2017_06/59395735496fd_11-.png.4c505f33ac2ff3686de649f6f3af98c9.png"></p>

<p>
	عندما تحفظ الجدول لأول مرة، سيُطلب منك إدخال اسم الملف وتحديد مجلد الحفظ، وسيحفظ الملف مبدئيّا بصيغة وامتداد<code>ods</code> (اختصار لـ Open Document Spreadsheet، جدول بيانات المستند المفتوح). فإذا رغبت في حفظ نسخة أخرى من المستند باسم مختلف، على مجلد مختلف، أو بصيغة مختلفة، انقر على <strong>ملف</strong> &gt; <strong>حفظ باسم..</strong>.
</p>

<p style="text-align: center;">
	<br><img alt="12-حفظ باسم.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23557" data-unique="s5t4p3e7b" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939573789334_12-.png.361f5a68bcfe07cd07f8e6f3f3345590.png"></p>

<p>
	من مربع الحوار <strong>حفظ باسم Save As</strong>، أدخل اسم الملف وحدد مجلد الحفظ، حدد صيغة جدول البيانات التي ترغب في استخدامها من قائمة <em>* نوع الملف Save as type*</em>، ثم انقر على <strong>احفظ Save</strong>.
</p>

<p style="text-align: center;">
	<br><img alt="13-نوع الملف.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23558" data-unique="d3th5pwz5" src="https://academy.hsoub.com/uploads/monthly_2017_06/59395739554e4_13-.png.25b0208e4477aa888060ebbe8f9e54dd.png"></p>

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

<p style="text-align: center;">
	<img alt="14-تأكيد الحفظ.png" class="ipsImage ipsImage_thumbnailed" data-fileid="23559" data-unique="f15mzu2ej" src="https://academy.hsoub.com/uploads/monthly_2017_06/5939573a2a616_14-.png.d098d7212681868d8f25de48678b2b53.png"></p>

<h3 id="خاتمة">
	خاتمة
</h3>

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

<p>
	ترجمة - بتصرّف - ل<a href="http://www.libreoffice.org/assets/Uploads/Documentation/en/GS51-GettingStartedLO.pdf" rel="external nofollow">دليل المستخدم الخاص بالحزمة المكتبية LibreOffice</a>.
</p>
]]></description><guid isPermaLink="false">267</guid><pubDate>Thu, 08 Jun 2017 21:00:00 +0000</pubDate></item></channel></rss>
