ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
21 visibility
موضوع: آفیس توسط:

لوری روشی آسان برای تعیین اینکه آیا یک پاراگراف به بیش از یک سطر می ریزد درخواست کرد. به نظر می‌رسد زمانی که لوری برچسب‌ها را ادغام می‌کرد، اگر یک خط (پارگراف) روی برچسب بپیچد و به خط بعدی روی برچسب بپیچد، می‌خواست اندازه نقطه روی متن را کاهش دهد تا خط فقط همان یک خط را اشغال کند.

خطوط بسته بندی یک ویژگی بلادرنگ (و زمان چاپ) Word است. Word محاسبات داخلی را به طور مداوم انجام می دهد تا بفهمد چه چیزی روی صفحه نمایش داده شود یا چه چیزی روی کاغذ چاپ شود. در جایی که متن از یک خط به خط دیگر می پیچد، در واقع چیزی برای علامت گذاری نقطه پیچیدن وجود ندارد (همانطور که در برخی دیگر از واژه پردازها وجود دارد)، بنابراین چیزی برای جستجو یا یافتن وجود ندارد. علاوه بر این، ویژگی Find Word این کار را انجام می دهد. گزینه ای (ویژه یا غیر خاص) برای جستجوی چیزها و گفتن اینکه مطالب یافت شده در چند خط پخش می شود، ندارید.

می توان یک سری طولانی از عملیات جستجو و جایگزینی را انجام داد تا سعی شود خطوط بسیار طولانی را کشف کند. به عنوان مثال، می توانید این مراحل کلی را دنبال کنید:

  1. همه فضاهای موجود در یک سند ادغام شده را با ترکیبی از کاراکترهای استاندارد، مانند [s] جایگزین کنید.
  2. همه خط تیره ها را در یک سند ادغام شده با ترکیبی از کاراکترهای استاندارد، مانند [d] جایگزین کنید.
  3. اکنون، تمام پاراگراف‌های سند از یک کلمه واحد تشکیل شده‌اند.
  4. ابزار خط فاصله را اجرا کنید تا سند را به صورت دستی خط خط خطی کنید.
  5. هر زمان که Word خطی را پیدا کرد که باید خط خطی شود، می توانید اندازه نقطه آن خط را کاهش دهید.
  6. جایگزین های خود را دوباره انجام دهید، [s] و [d] را به فضاها و خط تیره های معمولی خود بازگردانید.

این ممکن است کمی پیچیده به نظر برسد، و اینطور است. اما نسبتاً خوب کار خواهد کرد، مگر اینکه بخواهید وارد نوشتن یک ماکرو شوید. (باور کنید یا نه، حتی اگر اغلب از ماکروها استفاده نمی کنید، این ماکرو خاص بسیار ساده تر از انجام مکرر مراحل بالا است.)

هنگامی که می خواهیم تصمیم بگیریم چگونه ماکرو را کنار هم بگذاریم، یک کشف غم انگیز در انتظار ما در VBA است. کاربران کهنه کار Word به یاد خواهند داشت که وقتی از ویژگی Word Count در Word استفاده می کنید، برنامه تعداد خطوط سند شما را به شما نشان می دهد. این بدان معناست که شما می توانید از VBA برای تعیین تعداد خطوط در یک انتخاب استفاده کنید. متأسفانه، ویژگی ReadabilityStatistics در VBA، آماری را برای تعداد خطوط برمی‌گرداند. این بدان معناست که آمار نشان داده شده در کادر محاوره‌ای Word Count به صورت داخلی محاسبه می‌شود.

تنها راه حل ظاهری تکیه بر ویژگی Information برای wdFirstCharacterLineNumber است که شماره خط را برای اولین کاراکتر در یک انتخاب برمی گرداند. متأسفانه، wdLastCharacterLineNumber در VBA مشخص نشده است، بنابراین ماکرو باید برای اولین کاراکتر یک پاراگراف انتخابی انجام دهد، آن را با انتخابی از آخرین کاراکتر در یک پاراگراف مقایسه کند و ببیند آیا همان دو شماره خط برگردانده شده است یا خیر. اگر آنها نباشند، می توان اندازه نقطه پاراگراف را کاهش داد و محاسبه دیگری انجام داد.

ماکرو VBA زیر، ParaforceOneLine، این فرآیند را انجام می دهد. هر پاراگراف در یک سند را بررسی می‌کند و اگر پاراگراف معینی روی یک خط اجرا شود، اندازه نقطه آن پاراگراف خاص کاهش می‌یابد تا زمانی که بتواند در یک خط قرار گیرد.

Sub ParaForceOneLine()
    Dim objPara As Paragraph
    Const ChangeSize = 0.5

    For Each lobjPara In ActiveDocument.Paragraphs
        With objPara.Range
            While .Information(wdFirstCharacterLineNumber) <> _
              .Characters(Len(.Text)).Information(wdFirstCharacterLineNumber)
                .Font.Size = .Font.Size — ChangeSize
            Wend
        End With
    Next objPara
End Sub
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

117 نفر آنلاین
0 عضو و 117 مهمان در سایت حاضرند
بازدید امروز: 2256
بازدید دیروز: 13001
بازدید کل: 19456558
...