جلوگیری تغییر سایز شیپ و نمودار در اکسل
- آخرین بروزرسانی: 15 خرداد 1402
در نرمافزار اکسل برای جلوگیری تغییر سایز شیپ و نمودار در اکسل ، میتوانید از تغییر اندازه شیپها (اشیاء گرافیکی) با گزینه “Don’t move or size with cells” جلوگیری کنید. این گزینه باعث میشود که Shape ها ثابت بمانند و هنگام تغییر اندازه سلولها یا حرکت در صفحه، اندازه یا مکان شیپها تغییر نکند.
برای استفاده از این گزینه، مراحل زیر را دنبال کنید:
- در صفحه اکسل، اشیاء گرافیکی را انتخاب کنید. میتوانید از Ctrl + کلیک بر روی هر شیپ برای انتخاب چند شیپ به صورت همزمان استفاده کنید.
- روی شیپ مورد نظر یا نمودار کلیک راست کنید.
- الان اگر شما روی نمودار راست کلیک کرده باشید گزینه Format Chart Area را انتخاب کنید.
جلوگیری از تغییر سایز شیپ و نمودار در اکسل

جلوگیری از تغییر سایز شیپ و نمودار در اکسل
- اما اگر روی یک شیپ (Shape) راست کلیک کرده باشید گزینه Size and Properties را انتخاب کنید.
- با توجه به انتخاب شما گزینه مربوط به آن نمایش داده می شود مثل Format Chart Area یا Size and Properties، در سمت راست، یک پنلی ظاهر می شود. دقیقا مانند تصویر زیر

تغییر سایز شیپ و نمودار در اکسل
تغییر سایز شیپ و نمودار در اکسل
- به تب سوم رفته و به قسمت Properties وارد شده و خواهید دید که بصورت پیشفرض گزینه Move and size with cells فعال است.
- با فعال بودن این گزینه همیشه سایز نمودار یا شیپ Shape با تغییر سایز و پهنای سلول های اکسل تغییر می کند.
- برای جلوگیری از تغییرات چارت یا Shape در اکسل کافیست که گزینه Don’t move or size with cells را فعال کنید.
حالا شیپهای شما تنها در مکان و اندازهای که قبلاً تعیین کردهاید باقی خواهند ماند و تغییر اندازه یا حرکت سلولها تأثیری بر آنها نخواهد داشت.
سلام و درود.ممنون از مطلب مفید و کاربردیتون
چطور میتونم از تغییر ابعاد سلولها در اکسل جلوگیری کنم؟
سلام و درود بر شما 🌷
خیلی ممنون از لطفتون، خوشحالم که براتون مفید بوده
برای جلوگیری از تغییر ابعاد سلولها (یعنی جلوگیری از تغییر عرض ستون و ارتفاع ردیف) میتونید از کد VBA استفاده کنید تا کاربر نتونه با ماوس یا منوها این مقادیر رو تغییر بده. 👇
✅ روش ۱: قفل کردن تغییر ابعاد سلولها با VBA
کد زیر رو در ماژول ThisWorkbook قرار بدید تا به محض باز شدن فایل اعمال بشه:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
' جلوگیری از تغییر اندازه ستونها
ws.Protect UserInterfaceOnly:=True, AllowFormattingColumns:=False, AllowFormattingRows:=False
' غیر فعال کردن تغییر اندازه ردیف و ستون
ws.EnableOutlining = False
Next ws
End Sub
📌 توضیح:
UserInterfaceOnly:=True باعث میشه کدهای VBA هنوز بتونن تغییرات لازم رو بدن، ولی کاربر نتونه.
AllowFormattingColumns:=False و AllowFormattingRows:=False مانع تغییر اندازه میشن.
این تنظیم برای هر شیت در فایل انجام میشه.
✅ روش ۲ (اختیاری): جلوگیری از تغییر با ماوس
اگر بخواید حتی با ماوس هم نتونه کسی اندازه ستون یا ردیف رو بکشه، میتونید این رویداد رو هم به شیت اضافه کنید:
در شیت مورد نظر (با دوبار کلیک روی نام شیت در پنجره Project) بنویسید:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CommandBars("Format").Enabled = False
End Sub
Private Sub Worksheet_Deactivate()
Application.CommandBars("Format").Enabled = True
End Sub
✅ نکته مهم:
اگر میخواید هنگام محافظت از شیت کاربر هنوز بتونه دادهها رو وارد کنه:
قبل از اجرای کد، سلولهایی که باید قابل ویرایش باشند رو انتخاب کنید.
راستکلیک > Format Cells > Protection > تیک Locked رو بردارید.
بعد فایل رو ذخیره کنید.
خیلی خوب بود
خواهش میکنم! اگر سوال دیگری دارید یا به اطلاعات بیشتری نیاز دارید، خوشحال میشوم که کمک کنم.