[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで指定範囲外にセルがある場合はエラー表示』(マイン)
いつもお世話になっております。
ListBoxにデータを読み込んでアクティブセルに値を転記するコードを作成しています。
※但し、転記したいセルが、指定範囲外に値がある場合は処理をストップさせる
下記コードで、指定範囲外にアクティブセルがある場合に処理をストップさせるためのコードを作成しましたが、指定範囲が2箇所ある場合の処理方法がわからず質問させていただきました。
(現在のコードです)
Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
AppActivate Application.Caption 'フォーカスをセルに移す(カーソル操作可能) '★上段と下段以外はエラー処理 Dim 上段 As Range Dim 下段 As Range '★処理範囲の設定_上段 Set 上段 = Intersect(ActiveCell, Range(Cells(6, 2), Cells(6, 17))) Set 下段 = Intersect(ActiveCell, Range(Cells(28, 2), Cells(28, 17))) If 上段 Is Nothing Then MsgBox "入力範囲外です" 'Exit Sub End If '★処理範囲の設定_下段 If 下段 Is Nothing Then MsgBox "入力範囲外です" 'Exit Sub End If 'アクティブセルが範囲外にあるか判定 If ActiveCell = 上段 Or 下段 Then '範囲外 Exit Sub '範囲内であれば処理 Else 'セル入力 With ActiveCell .Value = Me.ListBox2.Value 'アクティブセルに値転記 .Offset(0, 1).Select '隣のセルを選択 End With End If End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>Set 下段 = Intersect(ActiveCell, Range(Cells(28, 2), Cells(28, 17))) より下は If 上段 Is Nothing And 下段 Is Nothing Then MsgBox "入力範囲外です" Exit Sub '範囲内であれば処理 End If 'セル入力 With ActiveCell .Value = Me.ListBox2.Value 'アクティブセルに値転記 .Offset(0, 1).Select '隣のセルを選択 End With ではどうか? (ねむねむ) 2019/02/20(水) 09:23
Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean) AppActivate Application.Caption
If Intersect(ActiveCell, Range("B6:Q6,B28:Q28")) Is Nothing Then MsgBox "入力範囲外です",vbCritical 'Exit Sub Else With ActiveCell .Value = Me.ListBox2.Value .Offset(0, 1).Select End With End If End Sub (???) 2019/02/20(水) 09:34
・上段 Is Nothing And 下段
・まとめる方法
・・・頭が固くなっていたようです。
試してまたご報告いたします。
(マイン) 2019/02/20(水) 09:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.