Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


54228 / 76732 ←次へ | 前へ→

【27301】Re:確認方法
発言  Jaka  - 05/8/4(木) 16:23 -

引用なし
パスワード
   こんにちは。
先々週?作った奴、InputBoxじゃないけど...。
つんさんにあげる。

Sub 許可テスト飛び飛びOK()
  Dim 許可範囲 As Range, 選択範囲 As Range, Flg As Boolean
  'Set 許可範囲 = Columns(3).Resize(, 3)  'OK
  Set 許可範囲 = Range("C3:E5").EntireColumn 'OK
  'Set 許可範囲 = Columns("C:E") 'OK
  'Set 許可範囲 = Rows(3).Resize(3) 'OK
  'Set 許可範囲 = Range("B2:E10") 'OK
  
  For Each 選択範囲 In Selection.Areas
    If 選択許可範囲内か(許可範囲, 選択範囲) = False Then
      Flg = True
      Exit For
    End If
  Next
  If Flg Then
    MsgBox "選択されたセルは、許可範囲 " & 許可範囲.Address(0, 0) & _
       " から、外れている物があります。"
  Else
    MsgBox "選択されたセルは、許可範囲 " & 許可範囲.Address(0, 0) & _
       " 内に全て入ってます。"
  End If
  Set 許可範囲 = Nothing
End Sub

Function 選択許可範囲内か(許可範囲 As Range, 選択範囲 As Range) As Boolean
  Dim 許可行上 As Long, 許可行下 As Long, 許可左列 As Long, 許可右列 As Long
  Dim 選択行上 As Long, 選択行下 As Long, 選択左列 As Long, 選択右列 As Long

  If Application.Intersect(選択範囲, 許可範囲) Is Nothing Then
   選択許可範囲内か = False
   Exit Function
  End If
 
  With 許可範囲
    許可行上 = .Cells(1).Row
    許可行下 = .Cells(.Cells.Count).Row
    許可左列 = .Cells(1).Column
    許可右列 = .Cells(.Cells.Count).Column
  End With
 
  With 選択範囲
    選択行上 = .Cells(1).Row
    選択行下 = .Cells(.Cells.Count).Row
    選択左列 = .Cells(1).Column
    選択右列 = .Cells(.Cells.Count).Column
  End With
 
  If 許可行上 <= 選択行上 And 許可行下 >= 選択行下 And _
   許可左列 <= 選択左列 And 許可右列 >= 選択右列 Then
   選択許可範囲内か = True
  Else
   選択許可範囲内か = False
  End If
End Function

0 hits

【27262】確認方法 じゅん 05/8/3(水) 19:49 質問
【27263】Re:確認方法 つん 05/8/3(水) 20:25 回答
【27265】Re:確認方法 りん 05/8/3(水) 21:26 回答
【27299】Re:確認方法 じゅん 05/8/4(木) 15:46 質問
【27300】Re:確認方法 つん 05/8/4(木) 16:14 回答
【27301】Re:確認方法 Jaka 05/8/4(木) 16:23 発言
【27302】Re:確認方法 つん 05/8/4(木) 16:39 発言
【27303】Re:確認方法 でれすけ 05/8/4(木) 16:52 回答
【27305】Re:確認方法 ichinose 05/8/4(木) 17:01 発言
【27319】Re:確認方法 じゅん 05/8/5(金) 11:42 お礼

54228 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free