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

أريد حل مشكلة الشعر في ال Word بأوامر الماكرو

مغلق
بدأه أبو محمد الهذلي في 19 مارس 2002 · 7 رد · 1,786 مشاهدة · في طلب و دراسة وشرح البرامج
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

بعد الإطلاع على هذا الرابط

http://www.arabteam2000.com/vb/showthread....?threadid=10132

هل يمكن حل المشكلة بماكرو فيه أمر يجعل الأبيات مصفوفة متساوية مضبوطة بدون ضغط Shift + Enter

أريد أمر أضيفه إلى الماكرو الذي سجلته وأين أضيفه

وجزاكم الله خيراً

#2

والله يا أخي ماعندي فكرة بس في أداة ممكن تحملها من موقع ميكروسوفت (حجمها شي 4 ميغا) بتدعم مسألة الشعر باللغة العربية بس لا أذكر كيف أسلوبها بالضبط. على كل حال يمكنك البحث عنها في موقع Microdoft

#3

للمحاذة بعد الكتابة

    Selection.WholeStory
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify

لمعرفة أين تكتب الماكرو و كيف تشغله راجع دروس فيجوال ييزيك التطبيقات فى الاكسيل المنشورة هنا ، فالموضوع متماثل

#4

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

أشكركما على الرد السريع

وأوضح قصدي أكثر وهو أني أريد شطري البيت في الجدول يمتدان بعرض العمودين في الجدول

(كل شطر من البيت في عموده) بدون أن أضغط Shift + Enter بعد كل شطر من البيت أكتبه.

ولكن يا أخ محمد طاهر لما أضفت الكود إلى الماكرو المسجل عمل للنص (ضبط) فقط

وهذا هو الماكرو الذي سجّلته

[l]

Sub شعر()



ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:= _

        3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _

        wdAutoFitFixed

    With Selection.Tables(1)

        If .Style <> "جدول عادي" Then

            .Style = "جدول عادي"

        End If

        .ApplyStyleHeadingRows = True

        .ApplyStyleLastRow = True

        .ApplyStyleFirstColumn = True

        .ApplyStyleLastColumn = True

    End With

    Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend

    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify

    Selection.MoveLeft Unit:=wdCharacter, Count:=1

    Selection.Tables(1).Columns(1).PreferredWidthType = wdPreferredWidthPoints

    Selection.Tables(1).Columns(1).PreferredWidth = CentimetersToPoints(6.5)

    Selection.Range.Cells(1).VerticalAlignment = wdCellAlignVerticalCenter

    Selection.Move Unit:=wdColumn, Count:=1

    Selection.SelectColumn

    Selection.Columns.PreferredWidthType = wdPreferredWidthPoints

    Selection.Columns.PreferredWidth = CentimetersToPoints(1.5)

    Selection.Move Unit:=wdColumn, Count:=1

    Selection.SelectColumn

    Selection.Tables(1).Rows.Alignment = wdAlignRowCenter

    Selection.Columns.PreferredWidthType = wdPreferredWidthPoints

    Selection.Columns.PreferredWidth = CentimetersToPoints(6.5)

    Selection.MoveLeft Unit:=wdCharacter, Count:=3

End Sub

[/l]
#5

أخي العزيز

يبدو أنالمشكة لدي فى فهم " البيت و الشطر " فليس لي علم بالشعر

أرجو وضع ملفي وورد

الأول قبل عمل ما تريد

و الثاني بعد عمل ما تريد لكي أفهم ما تريد

مع اني لست ضليعا لا فى الشعر و لا فى قواعد اللغة العربية

الا ان لي ملحوظة علي الشعر فى توقيعك

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

و لكن أسعي البه فأحرم

( مجرد احساس بصرف النظر عن الوزن و القافية و قواعدها )

#6

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

أخي الكريم

أما أنا فأحب الشعر ، وأموت في اللغة العربية وخاصة في شيء اسمه ((النحو)) مررررة :D .

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

ولكن ليس عندي إمكانية الآن لأضع الملف على النت فهل بريدك هو

mtarafa@yahoo.com

فإن هو فقد أرسلت إليك الملف الذي يشرح لك كل ما تريد

ولتعم الفائدة البيت من الشعر ينقسم إلى قسمين القسم الأول ويسمى الشطر و الثاني ويسمى العجز ويطلق عليهما شطران أي قسمان هذا باختصار وليس المكان لدروس العربية

#7

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

تعويضاً لمشاركة محذوفة (من ضمن ما حذف) وهي للاستاذ طاهر ، فقد وضغ رابطاً إلى أحد المنتديات ولا أذكر هذا الرابط ولا ذلك المنتدى للأسف.

ولكن حتى لا تضيغ الفائدة أحببت أن أذكر ما فيها :

طريقة كتابة الشعر في الورد

الطريقة الأولى :

ادرج جدول من ثلاثة حقول ، اكتب الصدر في الحقل الأول والعجز في الثالث ، ثم SHIFT + ENTER لكتابة بيت جديد ، بعد ذلك حدد الكل ثم ضبط كلي من تنسيق ، ثم غير عرض الأعمدة لتتناسب مع بعضها.

الطريقة الثانية :

1- ادرج جدول من ثلاثة حقول ، اكتب الصدر في الحقل الأول والعجز في الثالث ثم حدد الصف كاملا وانقر عليه بالزر الأيمن للماوس ثم اختر خصائص الجدول .

2- اختر لسان التبويب " خلية " من نافذة " خصائص الجدول " ثم انقر على الزر " خيارات " .

3- ضع اشارة صح على مربع الاختيار " احتواء النص " في صندوق حوار خصائص الخلية .

4- اضغط موافق مرتين وتمتع بكتابة القصيدة داخل الجدول بدون عناء التنسيق لكل بيت من القصيدة .

الطريقة الثالثة :

إضافة إلى الطريقة الثانية باستخدام الماكرو " برمجة حلوة وسهلة " :

1- من قائمة " أدوات " Tools اختر " ماكرو Macro " .

2- اختر تسجيل ماكرو جديد باسم Adjustmenet ثم سجل التسجيل Create.

3- اختر ماكرو مرة أخرى من قائمة أدوات ثم اختر" وحدات ماكرو" وحدد اسم الماكرو Adjustmenet ثم اختر " تحرير " .

4- يفتح عندك الفيجيوال بيسك Visual Basic ، ألصق نص الماكرو التالي في الـ Sub :

ثم أغلق مايكروسوفت فيجيوال بيسك Visual Basic .

5- اتبع المسار : أدوات / تخصيص / اختر لسان التبويب " الأوامر " / اختر من الفئات " وحدات الماكرو " .

6- اسحب الماكرو Normal.NewMacro.Adjustment إلى اشرطة الأدوات .

7- لتنسيق الشعر بهذه الطريقة افتح ملف الشعر المراد ضبطه ثم ضع مؤشر الماوس في أي مكان داخل العمود المطلوب تنسيقه ثم اضغط على المفتاح المسمى Normal.NewMacro.Adjustment فتلاحظ بدء تنسيق الجدول آليا .

يضبط الماكرو أبعاد الجدول بما يتناسب مع حجم الخط ، ويجب تعديل الرقم 24 إلى 1000 مثلا إذا كان الشعر المراد تنسيقه يحتوي على ألف بيت شعر .

Selection.SelectColumn 

Selection.ParagraphFormat.Alignment = wdAlignParagraphJustjfy 

Selection.Cells.SetHeight RowHeight:=8+ 

Selection.Font.SizeBi, HeightRule:=wdRowHeightExactlyWith Selection.Rows 

.TableDirection = wdTableDirectionRtl 

.Alignment = wdAlignRowRight 

.AllowBreakAcrossPages = True 

.SetLeftIndent LeftIndent:=CentimetersToPoints(0), 

RulerStyle:=wdAdjustN one 

End With 

Selection.Rows.SpaceBetweenColumns = CentimetersToPoints(0.38) 

Selection.MoveLeft Unit:=wdCharacter, Count:=l 

For I = 1 To 24 

Selection.EndKey Unit:=wdLine 

Selection.TypeText Text:=Chr(ll) 

Selection.MoveDown Unit:=wdLine, Count:=l 

Next I 

End Sub

مع الاعتذار لذلك المنتدى وذلك الكاتب، ومن كان يعرف الراط فليعيد كتابته.

ملاحظة :

حاولت استخدام الطريقة الثالثة ولكن تظهر مشاكل عند تطبيق الماكرو، فما طريقة استخدامه ؟

#8

جزاك الله خيرا أخونا محمد

الرابط الاصلي

http://alnaadi.com/showthread.php?threadid=1723

بالمناسبة أنا حاولت مع الملف السابق الذي تم ارساله لي

ولكن لم أستطع الوصول الي نتيجة مفيدة

و اعتذر علي التأخير

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…