- 日時: 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
|