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

مایک سندی دارد که حاوی چند کلمه است که با علامت نقل قول احاطه شده است. او می‌خواهد کلمات نقل‌قول‌شده برای درج در فهرست علامت‌گذاری شوند و علامت‌های نقل قول حذف شوند.

بهترین راه برای ایجاد چنین تغییری در سند خود استفاده از ماکرو است. ماکرو باید متن نقل‌قول‌شده را جستجو کند، بفهمد کجا شروع می‌شود و کجا متوقف می‌شود، علامت‌های نقل قول را حذف کرده و سپس علامت فهرست را اضافه کند. (علامت با استفاده از یک فیلد XE اضافه می شود.)

احتمالاً راه های زیادی وجود دارد که می توان چنین ماکرو ساخت. موارد زیر قابل استفاده است:

Sub QuotesToIndexEntries()
    Dim iOpenQuote As Integer
    Dim iCloseQuote As Integer
    Dim sP As String
    Dim sPhrase As String
    Dim iParas As Integer

    If Selection.ExtendMode Then Exit Sub

    iParas = Selection.Paragraphs.Count
    Selection.StartOf unit:=wdParagraph, Extend:=wdMove
    For J = 1 To iParas
        Selection.MoveEnd unit:=wdParagraph
        sP = Selection.Text
        iOpenQuote = InStr(sP, Chr(34))
        If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))

        While iOpenQuote > 0
            iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(34))
            If iCloseQuote = 0 Then
                iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(148))
            End If
            If iCloseQuote > 0 Then
                sPhrase = Mid(sP, iOpenQuote + 1, _
                  iCloseQuote - iOpenQuote - 1)
                Selection.Collapse Direction:=wdCollapseStart
                Selection.MoveRight unit:=wdCharacter, _
                  Count:=iOpenQuote - 1, Extend:=wdMove
                Selection.Delete unit:=wdCharacter, Count:=1
                Selection.MoveRight unit:=wdCharacter, _
                  Count:=Len(sPhrase), Extend:=wdMove
                Selection.Delete unit:=wdCharacter, Count:=1

                Selection.Fields.Add Range:=Selection.Range, _
                  Type:=wdFieldEmpty, _
                  PreserveFormatting:=False
                Selection.MoveLeft unit:=wdCharacter, Count:=1
                Selection.Delete unit:=wdCharacter, Count:=2
                Selection.TypeText Text:="XE " + Chr(34) + _
                  sPhrase + Chr(34)
                Selection.MoveRight unit:=wdCharacter, _
                  Count:=1, Extend:=wdMove
            End If
            Selection.MoveEnd unit:=wdParagraph
            sP = Selection.Text
            iOpenQuote = InStr(sP, Chr(34))
            If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))
        Wend
        
        Selection.MoveStart unit:=wdParagraph, Count:=1
    Next J
End Sub

برای استفاده از ماکرو، فقط متنی را که می‌خواهید روی آن تأثیر بگذارید، قبل از اجرای آن انتخاب کنید. (اگر می خواهید کل سند را تحت تأثیر قرار دهید، Ctrl+A را قبل از اجرای ماکرو فشار دهید.)

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 36 visibility
ارسال شده در 25 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 25 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 42 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 28 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 24 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

365 نفر آنلاین
0 عضو و 365 مهمان در سایت حاضرند
بازدید امروز: 10565
بازدید دیروز: 53446
بازدید کل: 20401313
...