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

فیل اشاره می کند که Word در بزرگ کردن خودکار حرف اول جملات عالی است. با این حال، او داستان های محاوره ای می نویسد، به این معنی که او جملات زیادی دارد که با علامت نقل قول شروع می شوند. Word به طور خودکار حرف اول را در یک نقل قول که یک جمله را شروع می کند بزرگ نمی کند، بنابراین فیل به این فکر می کند که آیا تنظیماتی وجود دارد که بتواند این مشکل را اصلاح کند.

هیچ تنظیمی در Word وجود ندارد که بتواند این وضعیت را مدیریت کند. با این حال، می توانید به راحتی یک ماکرو ایجاد کنید تا مطمئن شوید که کاراکترهای مورد نظر بزرگ هستند. ماکرو می تواند بر این واقعیت تکیه کند که می توانید از Find and Replace برای انجام کار برای شما استفاده کنید. با فرض اینکه دیالوگ رفت و برگشت شما منجر به نقل قول هایی می شود که از پاراگراف های خودشان شروع می شوند، شما فقط باید به دنبال یک بازگشت سخت و به دنبال آن یک علامت نقل قول و سپس یک حرف باشید. این می تواند به راحتی با بازگشت سخت، علامت نقل قول و نسخه بزرگ حرف جایگزین شود. در اینجا نمونه ای از ماکرو است که این کار را انجام می دهد:

Sub QuoteCaps1()
    Dim J As Integer
    Dim sFind As String
    Dim sRep As String

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    For J = 97 To 122
        sFind = "^p" & Chr(34) & Chr(J)
        sRep = "^p" & Chr(34) & Chr(J - 32)

        With Selection.Find
            .Text = sFind
            .Replacement.Text = sRep
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next J
End Sub

قلب ماکرو حلقه For...Next است که از میان تمام حروف کوچک (کدهای ASCII 97 تا 122) عبور می‌کند و رشته‌های جستجو و جایگزینی را کنار هم قرار می‌دهد. رشته جستجو (ذخیره شده در متغیر sFind) شامل بازگشت سخت (^p) به دنبال علامت نقل قول و سپس کاراکتر کوچک است. رشته جایگزین (ذخیره شده در متغیر sRep) یکسان است، با این تفاوت که از یک کاراکتر بزرگ استفاده می کند که با کم کردن 32 از مقدار ASCII کاراکتر کوچک محاسبه می شود.

ماکرو به طور موثر 26 عملیات یافتن و جایگزینی را در سند شما انجام می دهد، اما آنها را خیلی سریع انجام می دهد. اگر سند شما کوتاه است، به نظر می رسد ماکرو تقریباً بلافاصله اجرا می شود. اگر سند شما بسیار طولانی‌تر است، ممکن است چند لحظه طول بکشد تا اجرا شود.

با این حال، شاید دیالوگ شما همیشه از ابتدای یک پاراگراف شروع نشود، مانند مثال زیر:

Morris nodded his head. "of course it works that way."

اگر می‌خواهید که ماکرو حروف کوچک را به دنبال هر علامت نقل قول ابتدایی بگیرد، تنها کاری که باید انجام دهید این است که ماکرو را تغییر دهید تا «^p» را که به ابتدای متغیرهای sFind و sRep اضافه می‌شود، حذف کنید. با این حال، اگر گفتگوی شما شبیه به این باشد، ممکن است عواقب ناخواسته ای داشته باشد:

Morris lunged across the desk. "where is she," he demanded, "and is she OK?"

در این شرایط، کلان هم «کجا» و هم «و» را با حروف بزرگ می‌نویسد، اگرچه احتمالاً نمی‌خواهید «و» با حروف بزرگ باشد. اگر نثر شما ممکن است چنین استفاده‌ای داشته باشد، به یک کلان پیچیده‌تر نیاز دارید. ، مانند موارد زیر:

Sub QuoteCaps2()
    Dim J As Integer
    Dim K As Integer
    Dim sFind As String
    Dim sRep As String
    Dim sTerm As String

    sTerm = ".!?"

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    For J = 97 To 122
        sFind = "^p" & Chr(34) & Chr(J)
        sRep = "^p" & Chr(34) & Chr(J - 32)

        With Selection.Find
            .Text = sFind
            .Replacement.Text = sRep
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next J

    For J = 1 To Len(sTerm)
        For K = 97 To 122
            sFind = Mid(sTerm, J, 1) & " " & Chr(34) & Chr(K)
            sRep = Mid(sTerm, J, 1) & " " & Chr(34) & Chr(K - 32)

            With Selection.Find
                .Text = sFind
                .Replacement.Text = sRep
                .Forward = True
                .Wrap = wdFindContinue
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            Selection.Find.Execute Replace:=wdReplaceAll
        Next K
    Next J
End Sub

این نسخه از ماکرو همچنان از حروف نقل‌قول‌شده در ابتدای پاراگراف‌ها عبور می‌کند و با حروف بزرگ می‌نویسد، اما سپس شروع به جستجو برای هر نقل قولی می‌کند که جملات را شروع می‌کند. به استفاده از رشته sTerm توجه کنید که شامل کاراکترهایی است که می توانند جملات را پایان دهند - نقطه، علامت تعجب و علامت سوال. (در صورت تمایل می توانید تعداد کاراکترهای پایان دهنده جمله را افزایش دهید.) ماکرو از هر یک از این کاراکترها عبور می کند و متغیرهای sFind و sRep را که از کاراکتر، یک فاصله، یک علامت نقل قول و یک حروف کوچک این ها با معادل های بزرگ جایگزین می شوند.

همانطور که می توانید تصور کنید، اجرای این ماکرو فقط کمی بیشتر طول می کشد. چرا؟ زیرا در جایی که اولین ماکرو 26 عملیات پیدا و جایگزینی انجام داد، این یکی حداقل 104 عملیات را انجام می دهد، و اگر آنچه را در متغیر sTerm است طولانی کنید، هر کاراکتر جدید 26 عملیات یافتن و جایگزینی اضافی اضافه می کند.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 22 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 32 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 20 visibility

23.7k سوال

9.0k پاسخ

614 دیدگاه

11.2k کاربر

206 نفر آنلاین
0 عضو و 206 مهمان در سایت حاضرند
بازدید امروز: 7109
بازدید دیروز: 17853
بازدید کل: 20319295
...