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

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

هیچ تابع یا ابزار ورد داخلی برای انجام این کار وجود ندارد. با این حال، در VBA می توانید به مجموعه Words دسترسی داشته باشید که شامل تمام کلمات موجود در سند است. با در نظر گرفتن این موضوع، می توانید یک ماکرو ایجاد کنید که یک لیست مرتب شده از کلمات منحصر به فرد در سند ایجاد می کند و سپس آن کلمات را به انتهای سند اضافه می کند.

Sub UniqueWordList()
    Dim wList As New Collection
    Dim wrd
    Dim chkwrd
    Dim sTemp As String
    Dim k As Long

    For Each wrd In ActiveDocument.Range.Words
        sTemp = Trim(LCase(wrd))
        If sTemp >= "a" And sTemp <= "z" Then
            k = 0
            For Each chkwrd In wList
                k = k + 1
                If chkwrd = sTemp Then GoTo nw
                If chkwrd > sTemp Then
                    wList.Add Item:=sTemp, Before:=k
                    GoTo nw
                End If
            Next chkwrd
            wList.Add Item:=sTemp
        End If
nw:
    Next wrd

    sTemp = "There are " & ActiveDocument.Range.Words.Count & " words "
    sTemp = sTemp & "in the document, before this summary, but there "
    sTemp = sTemp & "are only " & wList.Count & " unique words."

    ActiveDocument.Range.Select
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.TypeText vbCrLf & sTemp & vbCrLf
    For Each chkwrd In wList
        Selection.TypeText chkwrd & vbCrLf
    Next chkwrd
End Sub

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

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

    sTemp = "There are " & ActiveDocument.Range.Words.Count & " words "
    sTemp = sTemp & "in " & ActiveDocument.Name & ", but there "
    sTemp = sTemp & "are only " & wList.Count & " unique words."

    Documents.Add
    ActiveDocument.Range.Select
    Selection.Collapse Direction:=wdCollapseEnd
    Selection.TypeText vbCrLf & sTemp & vbCrLf
    For Each chkwrd In wList
        Selection.TypeText chkwrd & vbCrLf
    Next chkwrd
End Sub

توجه داشته باشید که تنها یک تغییر اساسی در کلان وجود دارد: اضافه کردن روش "Documents.Add" برای ایجاد سند جدید برای خلاصه.

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

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 40 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 33 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 33 visibility

23.7k سوال

9.0k پاسخ

614 دیدگاه

11.2k کاربر

147 نفر آنلاین
0 عضو و 147 مهمان در سایت حاضرند
بازدید امروز: 7427
بازدید دیروز: 17853
بازدید کل: 20319613
...