
لینک کوتاه : https://magicfile.ir/?p=4653
🎯 دانلود برنامه ساخت جدول کلمات متقاطع هوشمند در اکسل با VBA — سرگرمی، آموزش و خلاقیت در یک قاب!
این پروژه با استفاده از VBA در اکسل یک جدول کلمات متقاطع (Crossword) هوشمند میسازد که بر پایه لیستی از سوالات و پاسخها عمل میکند. کاربر ابتدا در شیت "Words" سوالات را در ستون A و پاسخها را در ستون B وارد میکند. سپس با اجرای کد، از کاربر اندازه جدول پرسیده میشود و برنامه بهطور خودکار تلاش میکند تا کلمات را با رعایت منطق جدولهای متقاطع در خانههای مناسب جای دهد، طوریکه حروف مشترک میان کلمات در محلهای درست همپوشانی پیدا کنند.
کلمات در جدول بهصورت افقی یا عمودی قرار میگیرند و اولین کلمه معمولاً در مرکز جدول گذاشته میشود. سایر کلمات با بررسی موقعیتهای ممکن و تعداد تطابقهای حرفی، در بهترین جای ممکن جای میگیرند. خانههایی که شامل حرف هستند سفید و قابلنوشتن هستند و باقی خانهها خاکستری و قفلشدهاند. روی خانههایی که ابتدای یک کلمهاند، عددی برای مشخص شدن سوال مربوطه اضافه میشود.
پس از ساخت جدول، دو لیست جداگانه از سوالات افقی و عمودی در کنار جدول درج میشود. علاوه بر این، دو دکمه کاربردی در پایین جدول اضافه میشود؛ یکی برای بررسی پاسخهای واردشده که پاسخهای صحیح را سبز و اشتباه را صورتی میکند، و دیگری برای نمایش تمام پاسخهای درست در جدول. اطلاعات مکان و جهت هر کلمه نیز به صورت پنهان در یک شیت مخفی ذخیره میشود تا قابلیت بررسی و نمایش دوباره آنها فراهم باشد.
این پروژه قابلیت استفاده در محیطهای آموزشی، بازیهای گروهی، یا آزمونهای خلاقانه را دارد و ویژگیهایی چون طراحی زیبا، قفلگذاری هوشمند، اعتبارسنجی ورودی و تعاملپذیری را داراست. با کمی سفارشیسازی، میتوان امکانات بیشتری همچون زمانسنج، ثبت نتایج یا نمایش مراحل ساخت جدول را نیز به آن افزود و آن را به ابزاری قدرتمند برای ساخت و حل جدولهای متقاطع در اکسل تبدیل کرد.
نمونه تصاویر در زمان اجرا
🔤 ساخت جدول کلمات متقاطع حرفهای و تعاملی در اکسل با VBA
در این پست یک کد پیشرفته و زیبا با استفاده از VBA معرفی میکنیم که میتواند به طور خودکار جدول کلمات متقاطع (Crossword Puzzle) را بر اساس لیستی از سوالات و پاسخها بسازد، آن را در شیت جدید نمایش دهد، دکمههایی برای بررسی و نمایش جوابها اضافه کند و همچنین از قابلیتهایی مانند رنگآمیزی، اعتبارسنجی داده و قفلگذاری سلولها بهره ببرد.
📌 ساختار کلی پروژه
-
ورودی اولیه:
-
شیت به نام
Words
با دو ستون:-
ستون A: سوالات (کلیدواژه)
-
ستون B: پاسخها (کلمات)
-
-
-
خروجی:
-
شیت به نام
Crossword
برای نمایش جدول -
شیت مخفی
CrosswordData
برای ذخیره اطلاعات محل، جهت و پاسخها
-
🧠 عملکرد کد
بخش 1: دریافت اندازه جدول
gridSize = Application.InputBox(...)
-
از کاربر اندازه جدول را میپرسد (مثلاً 15 یا 20) و بررسی میکند که مقدار بین 5 تا 50 باشد.
بخش 2: بارگذاری سوالات و آمادهسازی دادهها
clues(i - 1) = Trim(wsInput.Cells(i, 1).Value) answers(i - 1) = UCase(Trim(wsInput.Cells(i, 2).Value))
-
دادهها از شیت
Words
بارگذاری شده و به صورت آرایه در حافظه ذخیره میشوند.
بخش 3: قرار دادن کلمات در جدول
-
ابتدا اولین کلمه را وسط جدول و به صورت افقی قرار میدهد.
-
سپس با استفاده از الگوریتم "بیشترین تطابق حرفی" بقیه کلمات را به صورت عمودی یا افقی در بهترین محل ممکن قرار میدهد.
بخش 4: ساخت جدول در شیت
wsOut.Cells(r, c).Interior.Color = RGB(255, 255, 255)
-
خانههایی که دارای حروف هستند سفید و قابل ویرایشاند.
-
خانههای بدون حرف به رنگ خاکستری و قفل شدهاند.
-
هر خانه دارای شمارهی سرکلمه به صورت فوقنویس و Comment مخفی است.
بخش 5: افزودن سوالات
-
سوالات افقی و عمودی در ستونهای 23 و 28 (W و AB) شیت جدید درج میشوند.
بخش 6: دکمههای تعاملی
دو دکمه پایین جدول ایجاد میشوند:
-
بررسی جوابها: با اجرای Sub
CheckUserAnswers
، پاسخهای کاربر بررسی و با رنگ مشخص میشوند:-
سبز: درست ✅
-
صورتی: نادرست ❌
-
-
نمایش جوابها: با اجرای Sub
ShowCrosswordAnswers
، تمام پاسخها در جدول ظاهر میشوند.
📁 اطلاعات پنهان
در شیت CrosswordData
، اطلاعات زیر برای هر کلمه ذخیره میشود:
-
متن پاسخ
-
محل شروع (ردیف و ستون)
-
جهت قرارگیری (افقی یا عمودی)
این اطلاعات برای بررسی و نمایش استفاده میشود و شیت به صورت VeryHidden
باقی میماند.
🎯 مزایای این پروژه
✅ ساخت خودکار جدول از لیست سوالات
✅ استفاده از الگوریتم هوشمند جایگذاری کلمات
✅ طراحی زیبا و حرفهای با فونت، رنگ و قفل
✅ اعتبارسنجی برای جلوگیری از ورود چند کاراکتر
✅ قابلیت بررسی و نمایش پاسخها با کلیک روی دکمهها
✅ بدون نیاز به افزونه، فقط با VBA
🧪 نکات پایانی
-
تابع
CheckUserAnswers
وShowCrosswordAnswers
باید در همان ماژول قرار داشته باشند. -
برای افزایش امنیت یا زیباتر شدن پروژه، میتوانید رمز قفل را تغییر دهید یا استایل بیشتری اضافه کنید.
-
اگر کلمهای نتواند در جدول جای بگیرد، در خروجی نمیآید و در گزارش نهایی لحاظ نمیشود.
برای شما کاربران عزیز پیشنهاد دانلود داده می شود.