برگزیده های پرشین تولز

*** دوستان عزیز، راه حل ارائه کنن!***

zarei175

Registered User
تاریخ عضویت
22 مارس 2005
نوشته‌ها
318
لایک‌ها
0
محل سکونت
mahshahr
با سلام:)
دوستان، چطور میشه تو محیط word، کاری کرد که در یک متن ترتیب قرار گرفتن کلمات در جمله، وارونه بشه. مثلا جمله " من مخلص شما هستم" رو به صورت " هستم شما مخلص من" تغییر بده؟ ممکنه بگین که خب حالا این به چه دردی میخوره! راستش راه حل این سئوال، یه جایی، اساسی مشکل منو حل میکنه! و حل این مشکل، برای من به شدت هیجان انگیزه پس اگر دوستان، راه حلی براش سراغ دارن، من به شدت استقبال میکنم
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
شما باید از امکانات کدنویسی vba خود word استفاده کنی
 

MehranVB

Registered User
تاریخ عضویت
18 جولای 2006
نوشته‌ها
162
لایک‌ها
5
محل سکونت
Tehran
من با word امتحان نکردم، اما این کار را می توانید با برنامه نویسی در Visual Basic به راحتی انجام دهید. متاسفانه من فرصت ساختن برنامه اش را ندارم، اما بهتر است در قسمت برنامه نویسی VB آن را مطرح نمایید.
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
شما اول از منوی Macro یک ماکرو جدید ایجاد کن و بهش یک اسم بده (برای چگونگی ایجاد ماکرو به راهنمای word مراجعه کن)

بعد این کد رو برای ماکرو بگذار
کد:
x = Split(StrReverse(Trim(Selection.Text)))
For i = 0 To UBound(x) - 1
    x(i) = StrReverse(x(i))
Next
MsgBox (Join(x))

حالا هر متنی رو که میخوای برعکسش کنی اول select و بعد این ماکرو رو اجرا کن!
 

zarei175

Registered User
تاریخ عضویت
22 مارس 2005
نوشته‌ها
318
لایک‌ها
0
محل سکونت
mahshahr
شما اول از منوی Macro یک ماکرو جدید ایجاد کن و بهش یک اسم بده (برای چگونگی ایجاد ماکرو به راهنمای word مراجعه کن)

بعد این کد رو برای ماکرو بگذار
کد:
x = Split(StrReverse(Trim(Selection.Text)))
For i = 0 To UBound(x) - 1
    x(i) = StrReverse(x(i))
Next
MsgBox (Join(x))

حالا هر متنی رو که میخوای برعکسش کنی اول select و بعد این ماکرو رو اجرا کن!


mazoolagh جان! فرمایشات شما رو انجام دادم، ولی در آخر که ماکرو رو اجرا میکنم یه پنجره ظاهر میشه که فقط علامت های سئواله و ok هم که میکنم جمله هیچ تغییری نمیکنه. البته اون علامت های سئوال به این دلیله که جمله انتخاب شده فارسیه و در صورتی که جمله انتخابی انگلیسی باشه تو پنجره ای که ظاهر میشه، خوب کلمات رو در جمله وارونه میکنه ولی ok که میشه جمله بدون تغییر باقی میمونه.
 

فایل های ضمیمه

  • untitled.JPG
    untitled.JPG
    236.2 KB · نمایش ها: 5
  • untitled2.JPG
    untitled2.JPG
    119.5 KB · نمایش ها: 5

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
خوب اگر میخواین درجا متن رو عوض کنه کافی هست خط آخر رو با کد زیر جایگزین کنین:
کد:
Selection.Text = Join(x)


ضمنا" اون منهای یک رو از UBound(x) - 1 بردارین چون درستش UBound(x) هست:D
 

zarei175

Registered User
تاریخ عضویت
22 مارس 2005
نوشته‌ها
318
لایک‌ها
0
محل سکونت
mahshahr
mazoolagh عزیز! از شما بسیار ممنون و سپاسگزارم بابت پاسخهای راهگشاتون! اما باز یه مشکل وجود داره! با این کد، هم ترتیب کلمات در جمله وارونه میشه و هم ترتیب حروف در کلمه در صورتی که من میخوام فقط ترتیب کلمات در جمله وارونه بشه. امیدوارم که تونسته باشم منظور رو برسونم:blush:
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
قرار شد فقط خط آخر جایگزین بشه:
HTML:
x = Split(StrReverse(Trim(Selection.Text)))
For i = 0 To UBound(x)
    x(i) = StrReverse(x(i))
Next
Selection.Text = Join(x)
 

zarei175

Registered User
تاریخ عضویت
22 مارس 2005
نوشته‌ها
318
لایک‌ها
0
محل سکونت
mahshahr
با سلام! یه مشکل دیگه ای که وجود داره اینه که با این فرمان، ترتیب جملات در متن هم وارونه میشه! یعنی جمله آخر میاد اول و به همین ترتیب. اگه این مشکل هم حل کنین خیلی ممنون میشم:blush: ببخشید خیلی زحمتتون دادم:D
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
خوب این کد رو بعنوان راهنما برای شما گذاشتم چون میدونستم بدون نمونه مشکل هست که word vba رو شروع کنین - اما تغییراتش به عهده خودتون;)
 
بالا