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

رابرت پوشه ای دارد که اسناد زیادی در آن وجود دارد. او راهی می‌خواهد که تمام کلمات غلط املایی را از اسناد بیرون بکشد و آن کلمات را در یک سند جدید قرار دهد.

خوشبختانه Word این کار را با استفاده از ماکرو نسبتاً آسان می کند. این به این دلیل است که خطاهای املایی در VBA با بررسی مجموعه .SpellingError قابل دسترسی هستند. هر مورد در این مجموعه ویژه نشان دهنده یک خطای املایی در سند است.

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

Sub CheckFolderForSpellErrors()
    "Copy all misspelled words in each document
    "from one directory to a new document.
    "Also lists all documents that have no spelling errors

    Dim cWords As New Collection
    Dim cDocs As New Collection
    Dim vItem As Variant
    Dim rng As Range
    Dim docSourse As Document
    Dim docNew As Document
    Dim vDirectory As String
    Dim vFile As String
    Dim bNoSpellingErrors As Boolean

    Application.ScreenUpdating = False

    vDirectory = "C:MyFolder"           " Path to check

    " Find first file to check
    vFile = Dir(vDirectory & "*.doc*")

    Do While vFile <> ""
        Documents.Open FileName:=vDirectory & vFile
        Set docSource = ActiveDocument

        If docSource.SpellingErrors.Count > 0 Then
            cWords.Add Item:="Spelling errors found in " & vFile & vbCrLf

            " add each word to the collection
            For Each rng In docSource.SpellingErrors
                cWords.Add Item:=rng.Text & vbCrLf
            Next
        Else " doc has no spelling errors
            bNoSpellingErrors = True
            cDocs.Add vFile & vbCrLf
        End If

        ActiveDocument.Close (wdDoNotSaveChanges)
        vFile = Dir
    Loop

    Set docNew = Documents.Add

    For Each vItem In cWords
        Selection.TypeText vItem
    Next

    If bNoSpellingErrors Then
        Selection.TypeText "These documents have no spelling errors." & vbCrLf

        For Each vItem In cDocs
            Selection.TypeText vItem & vbCrLf
        Next
    End If

    Application.ScreenUpdating = True
End Sub

ماکرو از دستور Dir برای یافتن هر فایلی در پوشه مشخص شده (متغیر vDirectory) استفاده می کند که به نوعی از "doc" ختم می شود. هر کدام از این فایل ها به نوبه خود در Word بارگذاری می شوند. در حین بارگیری، مجموعه .SpellingErrors بررسی می شود تا ببینیم آیا خطا دارد یا خیر. اگر اینطور باشد، متن کلماتی که املای اشتباه دارند به مجموعه cWords اضافه می شود. اگر نشد، نام فایل به مجموعه cDocs اضافه می شود.

هیچ چیز خاصی در مورد cWords یا مجموعه های cDocs وجود ندارد. آنها به سادگی برای نگهداری هر گونه خطای املایی و نام فایل ها در هنگام بررسی پرونده ها ایجاد شده اند. ماکرو به همین راحتی می توانست از آرایه های متغیر به جای مجموعه ها استفاده کند.

هنگام اجرای این ماکرو باید به چند نکته توجه داشت. اولاً، بسته به تعداد اسناد موجود در پوشه و طول هر یک از آن اسناد، ممکن است مدت زیادی طول بکشد. وقتی ماکرو را اجرا کردم، این کار را در پوشه ای انجام دادم که شامل 9 سند بود که به طور متوسط ​​حدود 97 صفحه در هر سند بود. فقط کمتر از 8 دقیقه طول کشید تا ماکرو کامل اجرا شود، و در حالی که در حال اجرا بود، من نمی‌توانستم کار دیگری در Word انجام دهم. (در واقع، ممکن است به راحتی از خود بپرسید که آیا سیستم شما "هنگ شده است.")

نکته دیگری که باید در نظر داشت این است که خروجی می تواند بسیار طولانی باشد و نسبتاً اضافی به نظر برسد. این به این دلیل است که کلمات غلط املایی می توانند چندین بار در مجموعه .SpellingErrors ظاهر شوند. به عنوان مثال، فرض کنید سندی دارید که حاوی کلمه "Cftype" است، که آشکارا به عنوان اشتباه املایی علامت گذاری شده است. اگر این کلمه 30 بار در سند استفاده شود، 30 بار علامت گذاری می شود و در نتیجه 30 بار به پایان می رسد. اگر چه خارج از محدوده این نکته است، می توانید ماکرو را تغییر دهید تا بررسی کنید که آیا یک کلمه قبلاً به عنوان غلط املایی علامت گذاری شده است یا خیر و سپس آن را فقط در صورتی که دارای غلط املایی منحصر به فرد باشد اضافه کنید.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 23 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 24 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 0 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 23 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 28 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

135 نفر آنلاین
0 عضو و 135 مهمان در سایت حاضرند
بازدید امروز: 1248
بازدید دیروز: 25180
بازدید کل: 20338606
...