yadmarket



نمایش نتایج: از 1 به 3 از 3

موضوع: کنترل اندازه فونت بخش های فارسی و انگلیسی در پاورپوینت(powerpoint)

  1. #1
    وضعیت
    آفلاین
    High-Momentum آواتار ها
    عضو ثابت
    تاریخ عضویت
    Apr 2015
    نوشته ها
    260
    تشکر
    445
    تشکر شده 129 در 67 پست

    پیش فرض کنترل اندازه فونت بخش های فارسی و انگلیسی در پاورپوینت(powerpoint)

    سلام
    چطوری میتونم مثل ورد، توی پاورپوینت روی اندازه فونت ها کنترل داشته باشم؟
    توی ورد میشه تنطیماتی داد که انگلیسی رو با یه اندازه فونت و فارسی رو با یه اندازه ی فونت دیگه بنویسه
    توی پاورپوینت فقط میشه نوع فونت را به نرم افزار داد
    تشکر

  2. #2
    وضعیت
    آفلاین
    Mahdi098 آواتار ها
    کاربر نیمه فعال مباحث نرم افزار
    نام اصلی
    مهدی
    تاریخ عضویت
    Jul 2017
    محل سکونت
    مازندران
    سیستم عامل 
    Windows 8.1 x86
    مرورگر 
    Mozilla Firefox
    آنتی ویروس 
    Microsoft
    نوشته ها
    200
    تشکر
    625
    تشکر شده 737 در 158 پست

    پیش فرض

    سلام
    چطوری میتونم مثل ورد، توی پاورپوینت روی اندازه فونت ها کنترل داشته باشم؟
    توی ورد میشه تنطیماتی داد که انگلیسی رو با یه اندازه فونت و فارسی رو با یه اندازه ی فونت دیگه بنویسه
    توی پاورپوینت فقط میشه نوع فونت را به نرم افزار داد
    تشکر
    سلام
    آیا جنابعالی قصد دارید که به فونت کلمات لاتین یک اندازه خاص بدین (مثلا 30) و به فونت کلمات فارسی یک اندازه دیگه (مثلا 50)؟
    تا جایی که بنده میدونم این چیزی که شما میخواین از طریق GUI پاورپوینت ( در منوی Font و حتی منوی Slide Master ) امکان پذیر نیست.
    کاری که بنظرم میتونید انجام بدید اینه:
    اول تمام متن ها را با فونت دلخواه داخل اسلایدها بنویسید. مثل تصویر زیر که از 2 فونت متفاوت با اندازه های متفاوت استفاده شده.

    نمایش متن


    سپس کد زیر را در کنسول پاورپوینت اجرا کنید تا اندازه فونت همه کلمات فارسی بشه 40
    کد:
    Dim MySlide As Slide Dim MyBox As Shape Dim MyRange As TextRange Dim i As Integer On Error Resume Next For Each MySlide In ActivePresentation.Slides For Each MyBox In MySlide.Shapes If MyBox.HasTextFrame Then If MyBox.TextFrame.HasText Then Set MyRange = MyBox.TextFrame.TextRange For i = 1 To MyRange.Runs.Count With MyRange.Runs(i) If .LanguageID = msoLanguageIDFarsi Then .Font.Size = 40 End If End With Next i End If End If Next Next Exit Sub
    توجه: کد بالا فقط روی متن های عادی اثرگذار است و تاثیری روی متن جدول ها و چارت ها و ..... نداره. که البته اونم تاحدودی میشه به کد اضافه کرد.
    نتیجه میشه یه چیزی شبیه تصویر زیر: که اندازه کلمه های فارسی میشه 40 درحالی که اندازه کلمات انگلیسی تغییری نمیکنه.

    نمایش متن



    همون طور که دیدید، با این روش شما باید ابتدا متن خودتون را تایپ کنید و سپس با کد بالا اندازه فونت فارسی را تغییر بدین.
    ضمنا ممکنه دوست داشته باشید که اندازه عنوان ها مثلا 50 باشه و اندازه متن تون 25 باشه که در این صورت میتونید با کمک Slide Master یک فونت خاص برای عنوان و یک فونت خاص برای متن تعیین کنید و با ایجاد تغییراتی در کد بالا، به هدف تون برسید. اگه نیاز به توضیح بیشتر داشتید بنده درخدمتم.

    سلام
    چطوری میتونم مثل ورد، توی پاورپوینت روی اندازه فونت ها کنترل داشته باشم؟
    توی ورد میشه تنطیماتی داد که انگلیسی رو با یه اندازه فونت و فارسی رو با یه اندازه ی فونت دیگه بنویسه
    توی پاورپوینت فقط میشه نوع فونت را به نرم افزار داد
    تشکر
    ------------------------------------------------------------------------------------------------------
    سلام مجدد
    مدتیه که از پاسخ قبلیم میگذره ولی امشب همینطور که توی انجمن بی هدف میگشتم چشمم دوباره به این سوال افتاد دیدم جوابم ناقصه. شروع کننده تاپیک راه حلی می خواست که در حین تایپ بتونه اندازه فونت را بر اساس زبان تعیین کنه نه بعد از اتمام تایپ. برای همین سعی میکنم یه راه حل دیگه را پیشنهاد بدم.
    توجه: خدا شاهده بنده فقط یه کامپیوتر دارم و اونم ۳۲ بیتیه و این کد فقط روی نگارش ۳۲ بیت تست شده پس اگه از نگارش ۶۴ بیت استفاده می کنید و احیانا کد مشکل داشت متاسفانه نمیتونم رفع اشکال کنم. قسمت مربوط به نگارش ۶۴ بیت حسابا باید کار کنه ولی خب احتمال خطا زیاده
    ۱. شرایط اجرای کد را فراهم کنید. مثلا پاورپوینت را توی سندباکس اجرا نکنید و ... چرا که این کد از کدهای داخل یک dll ویندوز استفاده میکنه و بهتره چیزی مانعش نشه.
    ۲. از منوی view گزینه macros را انتخاب کرده و پس از انتخاب یک نام صوری و زدن دکمه create وارد صفحه کدنویسی شوید. سپس صفحه را از هرگونه حرف و عبارت پاک کرده و کد زیر را وارد کنید
    کد:
    Option Explicit
    #If VBA7 = True And Win64 = True Then
    Private Declare PtrSafe Function GetKeyboardLayout Lib "user32" _
    (ByVal idThread As LongPtr) As LongLong
    Private Declare PtrSafe Function SetTimer Lib "user32" _
    (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, _
    ByVal uElapse As LongLong, ByVal lpTimerFunc As LongPtr) As LongLong
    Private Declare PtrSafe Function KillTimer Lib "user32" _
    (ByVal hwnd As LongPtr, ByVal uIDEvent As LongPtr) As LongLong
    Public StarterID As LongLong
    Public StopperID As LongLong
    Public StillRunning As Boolean
    #ElseIf VBA7 = True Then
    Private Declare PtrSafe Function GetKeyboardLayout Lib "user32" _
    (ByVal idThread As LongPtr) As LongPtr
    Private Declare PtrSafe Function SetTimer Lib "user32" _
    (ByVal hwnd As LongPtr, ByVal nIDEvent As Long, _
    ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
    Private Declare PtrSafe Function KillTimer Lib "user32" _
    (ByVal hwnd As LongPtr, ByVal uIDEvent As Long) As LongPtr
    Public StarterID As LongPtr
    Public StopperID As LongPtr
    Public StillRunning As Boolean
    #Else
    Private Declare Function GetKeyboardLayout Lib "user32" _
    (ByVal idThread As Long) As Long
    Private Declare Function SetTimer Lib "user32" _
    (ByVal hwnd As Long, ByVal nIDEvent As Long, _
    ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Private Declare Function KillTimer Lib "user32" _
    (ByVal hwnd As Long, ByVal uIDEvent As Long) As Long
    Public StarterID As Long
    Public StopperID As Long
    Public StillRunning As Boolean
    #End If
    
    Private Sub FontSizes()
    With ActiveWindow.Selection
    If .Type = ppSelectionText Then
    If Right(Hex(GetKeyboardLayout(0)), 3) = 429 Then
    If .TextRange.Characters.Count < 1 And .TextRange.Font.Size <> 40 Then
    .TextRange.InsertAfter(" ").Font.Size = 40
    SendKeys "{BS}"
    End If
    ElseIf .TextRange.Characters.Count < 1 And .TextRange.Font.Size <> 30 Then
    .TextRange.InsertAfter(" ").Font.Size = 30
    SendKeys "{BS}"
    End If
    End If
    End With
    End Sub
    
    Sub START_macro()
    On Error Resume Next
    If Not StillRunning = True Then
    StarterID = SetTimer(0, 0, 1000, AddressOf FontSizes)
    If StarterID = 0 Then
    MsgBox "ERROR. Macro Did Not Start. Try Again"
    Exit Sub
    End If
    StillRunning = True
    MsgBox "Started"
    Else
    MsgBox "The Macro Is Already Running"
    End If
    End Sub
    
    Sub STOP_macro()
    On Error Resume Next
    If StillRunning = True Then
    StopperID = KillTimer(0, StarterID)
    If StopperID = 0 Then
    MsgBox "ERROR. Macro Did Not Stop. Try Again"
    Exit Sub
    End If
    StillRunning = False
    MsgBox "Stopped"
    Else
    MsgBox "You Should Run START_macro First"
    End If
    End Sub
    ۳. حالا پنجره کدنویسی را بسته تا به صفحه اصلی پاورپوینت برگردید. از منوی view گزینه macros را انتخاب و سپس START_macro را اجرا کنید. پیامی مبنی بر شروع دریافت میکنید (پیام ها را تا جایی که میتونستم به انگلیسی ساده و گویا نوشتم)
    ۴. برای تست ابتدا چیزی را به فارسی و سپس به انگلیسی تایپ کنید. ان شاء الله که وقتی زبان فارسی را انتخاب می کنید، اندازه فونت به ۴۰ تغییر پیدا میکنه و وقتی غیرفارسی تایپ کنید اندازه فونت ۳۰ میشه. این اعداد را میتونین در کد تغییر بدین.
    ۵. بعد از اتمام کار، حتما حتما حتما STOP_macro را اجرا کنید تا به حالت عادی برگردید.
    روی نگارش ۳۲ بیت تست شده و کار میکنه.
    موفق باشید
    ویرایش توسط A N G E L : 2018-10-09 در ساعت 04:17 دلیل : ترکیب شد /A N G E L

  3. 3 کاربر از این پست تشکر کرده اند


  4. #3
    وضعیت
    آفلاین
    High-Momentum آواتار ها
    عضو ثابت
    تاریخ عضویت
    Apr 2015
    نوشته ها
    260
    تشکر
    445
    تشکر شده 129 در 67 پست

    پیش فرض

    سلام
    موفق باشید

    نمایش متن

    ویرایش توسط WITCHER : 2018-10-17 در ساعت 21:18 دلیل : رفع مشکل ادغام پست های متوالی + کوتاهسازی نقل قول

  5. کاربر زیر از پست مفید High-Momentum تشکر کرده است .


مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
^ بازگشت به بالا