زمان های زیادی وجود دارد که هنگام نوشتن ماکروها باید تعیین کنید که آیا کاربر انتخابی انجام داده است یا خیر. راه های زیادی وجود دارد که می توانید این کار را در ماکرو انجام دهید. کد زیر یک روش ممکن برای انجام این کار در VBA را نشان می دهد. اگر در حال حاضر انتخابی وجود داشته باشد، مقدار یک پرچم، bInSelection را روی True تنظیم می کند. در غیر این صورت bInSelection روی False تنظیم می شود.
Dim bInSelection As Boolean
bInSelection = False
If Selection.Type=wdSelectionIP Then
bInselection=True
End If
ممکن است تعجب کنید که آیا می توانید از روشی برای بررسی اینکه آیا طول انتخاب بزرگتر از صفر است استفاده کنید، مانند این روش:
Dim bInSelection As Boolean
bInSelection = False
If Len(Selection) > 0 Then
bInselection=True
End If
این روش کار نمی کند. دلیل آن این است که وقتی هیچ انتخابی انجام نشده است (نقطه درج جمع شده و فقط چشمک می زند)، Word همچنان طول انتخاب 1 را برمی گرداند. این کمی تشدید کننده است زیرا منطقی نیست. بنابراین مانند مثال اول، باید ویژگی Type شیء Selection را بررسی کنید. اگر میخواهید آن را حتی بیشتر کوتاه کنید، میتوانید از موارد زیر استفاده کنید:
Dim bInSelection As Boolean
bInselection=(Selection.Type=wdSelectionIP)