tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
指定のセルが指定の範囲内にあるか、どうかを調査(VB.NET) ( No.19 )  [親スレッドへ]
日時: 2012/05/29 11:31
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[エクセル][][]                                                      *
* キーワード:Excel VBA,Excel2010,指定の範囲内にあるか,共有セル範囲,指定のセル    *
***********************************************************************************
'===================================================================================================
'投 稿 日:2012.05.06
'投 稿 者:VBレスキュー(花ちゃん)
'タイトル:指定のセルが指定の範囲内にあるか、どうかを調査
'========1=========2=========3=========4=========5=========6=========7=========8=========9=========0

Private Sub Button17_Click(sender As System.Object, e As System.EventArgs) Handles Button17.Click
   Call ExcelOpen("", "")     '新規ファイルをオープンして、Excel を起動
   '==================== 指定のセルが指定の範囲内にあるか =======================

   '---------------- MS サポート技術情報(文書番号: 259137) -------------------
      'Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
      '    If Not Intersect(Target, Range("MyDefinedRange")) Is Nothing Then
      '        MsgBox(Target.Address & " is in MyDefinedRange.")
      '    Else
      '        MsgBox(Target.Address & " is NOT in MyDefinedRange.")
      '    End If
      'End Sub
   '--------------------------------------------------------------------------

   '指定のセルが、指定のセル範囲内にあるか、どうかを調べる
   Dim xlRange As Excel.Range
   Dim xlTargetRange As Excel.Range
   xlRange = xlSheet.Range("A1:H20")         '指定のセル範囲内
   xlTargetRange = xlSheet.Range("G15")      '指定のセル位置

   'Application.Intersect メソッド : 複数のセル範囲の共有セル範囲を
   '表す Range オブジェクトを返します。
   '共有セル範囲を調べているので、xlTRange と xlRange は入れ替えても同じです。
   Dim xlIntersect As Excel.Range
   xlIntersect = xlApp.Intersect(xlTargetRange, xlRange)
   If Not xlIntersect Is Nothing Then
      'Range.Address プロパティを使って、A1 形式のアドレスを取得
      MessageBox.Show(Me, " セル[" & xlTargetRange.Address(False, False) & "]は、セル[" & _
                                    xlRange.Address(False, False) & "]の範囲内にあります。")
   Else
      MessageBox.Show(Me, " セル[" & xlTargetRange.Address(False, False) & "]は、セル[" & _
                              xlRange.Address(False, False) & "]の範囲内には、ありません。")
   End If
   MRComObject(xlTargetRange)
   MRComObject(xlIntersect)
   MRComObject(xlRange)

   xlTargetRange = xlSheet.Range("A1:G21")
   xlRange = xlSheet.Range("A1:H20")
   xlIntersect = xlApp.Intersect(xlTargetRange, xlRange)
   If Not xlIntersect Is Nothing Then
      'Excel の裏に隠れたりしますので、オーナーウィンドウ(Me)を指定下さい。
      MessageBox.Show(Me, " セル[" & xlTargetRange.Address(False, False) & "]は、セル[" & _
                                    xlRange.Address(False, False) & "]の範囲内にあります。")
   Else
      MessageBox.Show(Me, " セル[" & xlTargetRange.Address(False, False) & "]は、セル[" & _
                              xlRange.Address(False, False) & "]の範囲内には、ありません。")
   End If
   MRComObject(xlTargetRange)
   MRComObject(xlIntersect)
   MRComObject(xlRange)

   '=============================================================================
   'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行
   Call ExcelClose(IO.Path.GetFullPath(".\Test.xlsx"), False)  'False の場合保存しないで終了
   'Excel.EXE がタスクマネージャに残っていないか調査(実使用時は必要なし)
   Call ProcessCheck()
End Sub



 [スレッド一覧へ] [親スレッドへ]