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

شلی در حال توسعه یک کلان است که همه جایگشت‌های حروف بزرگ عبارت "به شرط آن" ("به شرط آن"، "مطمئن شد که" و غیره) را به حروف کوچک تغییر می‌دهد. انجام این کار به اندازه کافی آسان است، اما اگر عبارت یک جمله را شروع می کند، "P" باید با حروف بزرگ نوشته شود. شلی متعجب است که آیا راهی وجود دارد، در کلان، که بگوید عبارتی مانند "به شرطی که" در ابتدای جمله باشد یا خیر.

چند راه وجود دارد که می توانید در این مورد استفاده کنید. ابتدا می توانید از Find and Replace برای انجام جستجوها و جایگزینی های متوالی استفاده کنید. ماکرو می تواند کارهای زیر را انجام دهد:

  1. همه تغییرات "به شرط آن" را به حروف کوچک تغییر دهید.
  2. «. به شرط آن» (دوره، فاصله، «به شرط آن») جستجو کنید و آن را با «. مشروط بر آن» (با حروف بزرگ) جایگزین کنید.
  3. جستجو را تکرار کنید و در مرحله 2 با استفاده از سایر علائم نگارشی پایان جمله مانند علامت تعجب، علامت سوال یا هر یک از آن علائم نگارشی و به دنبال آن علامت نقل قول جایگزین کنید.

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

Sub ChangeCase1()
    Dim vFindText As Variant
    Dim vReplaceText As Variant
    Dim orng As Range
    Dim i As Long

    vFindText = Array(". provided that", _
                      "! provided that", _
                      "? provided that", _
                      "."" provided that", _
                      "!"" provided that", _
                      "?"" provided that")
    vReplaceText = Array(". Provided that", _
                         "! Provided that", _
                         "? Provided that", _
                         "."" Provided that", _
                         "!"" Provided that", _
                         "?"" Provided that")

    " Set all occurrences to lowercase
    Set orng = ActiveDocument.Range
    With orng.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        Do While .Execute(FindText:="provided that", _
          Forward:=True, _
          Wrap:=wdFindStop) = True
            orng.Select
            orng = "provided that"
            orng.Collapse wdCollapseEnd
        Loop
    End With

    " Account for end-of-sentence
    For i = 0 To UBound(vFindText)
        Set orng = ActiveDocument.Range
        With orng.Find
            .ClearFormatting
            .Replacement.ClearFormatting
            Do While .Execute(FindText:=vFindText(i), _
              MatchCase:=True, _
              Forward:=True, _
              Wrap:=wdFindStop) = True
                orng.Select
                orng = vReplaceText(i)
                orng.Collapse wdCollapseEnd
            Loop
        End With
    Next
End Sub

یکی از کاستی‌های این رویکرد این است که اجازه نمی‌دهد «به شرطی که» در ابتدای یک پاراگراف اتفاق بیفتد.

با این حال، یک رویکرد متفاوت وجود دارد که می توانید از آن استفاده کنید. این یکی بر یک تنظیم نسبتاً باطنی برای ویژگی Case متکی است: wdTitleSentence. این تنظیم همه کاراکترها (به استثنای یک استثنای قابل توجه) را به حروف کوچک تغییر می دهد و اگر عبارت در ابتدای جمله باشد، کاراکتر اول را به حروف بزرگ تغییر می دهد. در اینجا نحوه استفاده از آن در ماکرو آمده است:

Sub ChangeCase2()
    With Selection.Find
        .ClearFormatting
        .Wrap = wdFindContinue
        .Forward = True
        .Format = True
        .MatchCase = False
        .MatchWildcards = False
        .Text = "provided that"
        .Execute
        While .Found
            Selection.Range.Case = wdLowerCase
            Selection.Range.Case = wdTitleSentence
            Selection.Collapse Direction:=wdCollapseEnd
            .Execute
        Wend
    End With
End Sub

توجه داشته باشید که در حلقه while دو تخصیص به ویژگی Case داده شده است. اولی انتخاب (آنچه پیدا شد) را با حروف کوچک و دومی آن را روی حروف عنوان برای جمله تنظیم می کند. تنظیم حروف کوچک برای رسیدگی به "یک استثنای قابل توجه" که ذکر کردم مشخص شده است - اگر متن "PROVIDED that" در ابتدای جمله باشد، تنظیم wdTitleSentence به دلایلی آن را به "Provided that" تغییر نخواهد داد. با این حال، "به شرط اینکه" (که "PROVIDED that" پس از تنظیم آن به حروف کوچک تبدیل می شود) بدون مشکل به "Provided that" تغییر می کند.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

106 نفر آنلاین
0 عضو و 106 مهمان در سایت حاضرند
بازدید امروز: 4542
بازدید دیروز: 14408
بازدید کل: 15453462
...