اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته

إخواني وأحبابي في الله

أقدم لكم اليوم كيفية فتح مستند نصي (مستند ورد) عن طريق فتح تطبيق الورد من داخل الإكسيل ..

في الملف المرفق يوجد ملف إكسيل وملف ورد لعمل اختبار عليه .. قم بفك الضغط عن الملف المرفق على سطح المكتب مثلاً

 

عند الضغط على زر الأمر في ورقة العمل ، سيقوم الكود بفتح صندوق حواري (مستعرض الملفات) لتقوم بتحديد مكان أو موقع المستند الذي تريد فتحه ..

قم بالذهاب إلى مسار المستند وقم بتحديده ثم اضغط Open لفتح الملف ..

إذا لم يتم اختيار ملف ستظهر رسالة تفيد بذلك ..

 

يوجد أيضاً دالة معرفة داخل الموديول تقوم بفحص ما إذا كان الملف مفتوح أم لا ، فإذا كان الملف مفتوح مسبقاً يتم الخروج من الإجراء الفرعي ..

 

إذا أردت التخلص من الدالة وتقليل حجم الكود قم بمسح الدالة Function (الجزء الثاني في الموديول) كما قم بمسح هذا السطر من الكود

If IsFileOpen(Sheet1.Range("A1").Value) Then Exit Sub

هذا السطر تمت إضافته لفحص الملف إذا ما كان مفتوح أم لا ..لأنه في حالة إذا كان الملف مفتوح مسبقاً وقمت بفتحه مرة أخرى ، سيتسبب ذلك في بطء عمل الكود ، وينتهي برسالة خطأ ..

شكل الكود المسئول عن فتح المستند ببرنامج الورد

Sub Browse()
'تعريف المتغيرات
'----------------
    'تعريف المتغير الذي سيأخذ قيمة مستعرض الملفات
    Dim strFileToOpen
    'تعريف المتغير الذي يشير إلى إنشاء كائن تطبيق الورد
    Dim objWord
    'تعريف المتغير الذي يشير إلى المستند النصي
    Dim objDoc
    
'نافذة المستعرض
'--------------
    'تعيين قيمة المتغير ليساوي قيمة نافذة مستعرض الملفات ، والذي يمثل مسار المستند الذي يتم اختياره
    strFileToOpen = Application.GetOpenFilename(Title:="Please Choose A File To Open", FileFilter:="Word Files *.doc* (*.doc*),")
    
'اختبار اختيار المستند
'---------------------
    'إذا لم يتم اختيار مستند يتم إظهار رسالة تنبيه ثم الخروج من الإجراء الفرعي
    If strFileToOpen = False Then
        MsgBox "لم يتم اختيار ملف", vbExclamation, "تنبيه"
        Exit Sub
    'إذا كان المستند مفتوح يتم الخروج من الإجراء الفرعي
    Else
        'تساوي قيمة نافذة مستعرض الملفات [A1]الخلية
        'يتم وضع مسار المستند بالكامل في الخلية
        Sheet1.Range("A1").Value = strFileToOpen
        'إذا كان المستند مفتوح مسبقاً يتم الخروج من الإجراء الفرعي
         If IsFileOpen(Sheet1.Range("A1").Value) Then Exit Sub
        'تعيين قيمة المتغير ليساوي تطبيق الورد
        Set objWord = CreateObject("Word.Application")
        'تعيين قيمة المتغير ليساوي المستند الذي سيتم فتحه بتطبيق الورد
        Set objDoc = objWord.Documents.Open(strFileToOpen)
        'إظهار تطبيق الورد
        objWord.Visible = True
    End If
End Sub

والدالة المسئولة عن عملية فحص الملف ما إذا كان مفتوح أم لا

Function IsFileOpen(filename As String)
    '[False]أو إلى[True]هذه الدالة تقوم باختبار إذا ما كان الملف مفتوح مسبقاً وترجع القيمة إما إلى
    Dim filenum As Integer, errnum As Integer

    On Error Resume Next   'هذا السطر لتجنب رسائل الخطأ
    filenum = FreeFile()   'الحصول على رقم للملف
    'محاولة فتح الملف ثم إغلاقه
    Open filename For Input Lock Read As #filenum
    Close filenum          'إغلاق الملف
    errnum = Err           'حفظ رقم الخطأ الذي يحدث
    On Error GoTo 0        'استعادة خاصية رسائل الخطأ

    'فحص رقم الخطأ
    Select Case errnum

        'في حالة عدم وجود خطأ ، إذاً الملف غير مفتوح
        Case 0
         IsFileOpen = False

        'الرقم 70 يعني أن الملف مفتوح وغير مصرح بالدخول عليه
        Case 70
            IsFileOpen = True

        'في حالة حدوث خطأ آخر
        Case Else
            Error errnum
    End Select
End Function

أترككم مع الملف .. ويوجد شرح لأسطر الكود

دمتم في عز الله وطاعته

:fff: :fff: :fff:

Open Word Document.rar

  • Like 2
قام بنشر

أخي الكريم ياسر .. مشكور على مرورك العطر ، وعلى تشجيعك

وما أنا إلا قطرة في محيط المنتدى ، (بس القاطرة دي مش مؤنث ..بل رجل ، لتفكرني قاطرة .. وتاخدني للقطر يعاكسني)

  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information