tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
VB2010からExcelのWorksheetの使用済みのセル範囲を取得(VB.NET) ( No.15 )  [親スレッドへ]
日時: 2012/06/06 19:08
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[エクセル][][]                                                      *
* キーワード:Excel VBA,Excel2010,使用済みのセル範囲,Activateセル領域,A1 形式   *
***********************************************************************************
'===================================================================================================
'投 稿 日:2012.05.06
'投 稿 者:VBレスキュー(花ちゃん)
'タイトル:VB2010 から Excel の Worksheet の使用済みのセル範囲を取得
'========1=========2=========3=========4=========5=========6=========7=========8=========9=========0

Private Sub Button13_Click(sender As System.Object, e As System.EventArgs) Handles Button13.Click
   Call ExcelOpen("", "")     '新規ファイルをオープンして、Excel を起動
   '======================== 使用済みのセル範囲を取得 ===========================

   '-------------------- 下記のVB6.0用コードを移植 ---------------------------
   ' http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=128&no=8
   '--------------------------------------------------------------------------
   Dim xlRange As Excel.Range
   Dim Dat(2, 5) As Object
   Dat(0, 0) = 4 : Dat(0, 1) = 4 : Dat(0, 2) = 5 : Dat(0, 3) = 8 : Dat(0, 4) = 9 : Dat(0, 5) = ""
   Dat(1, 0) = 3 : Dat(1, 1) = 3 : Dat(1, 2) = 5 : Dat(1, 3) = 9 : Dat(1, 4) = "" : Dat(1, 5) = ""
   Dat(2, 0) = 1 : Dat(2, 1) = 7 : Dat(2, 2) = 1 : Dat(2, 3) = 6 : Dat(2, 4) = 4 : Dat(2, 5) = 3
   xlRange = xlSheet.Range("A1:F3")    'データの入力セル範囲
   xlRange.Value = Dat                                   'セルへデータの入力
   '1秒間表示しておく
   MRComObject(xlRange)
   System.Threading.Thread.Sleep(1000)

   'データの入力範囲の取得
   '指定のセル位置を含む空白行と空白列に囲まれた最小のセル範囲を取得
   'Activateなセル("A1")があるActivateセル領域を選択します。
   xlRange = xlSheet.Range("A1")
   xlRange.Activate()
   Dim xlCurrentRegion As Excel.Range
   xlCurrentRegion = xlRange.CurrentRegion
   xlCurrentRegion.Select()
   '----------------------------------------------
   'Address プロパティでその範囲を A1 形式で取得。
   Dim xlRange1 As Excel.Range
   xlRange1 = xlSheet.Range("A5")  '又は、xlRange1 = xlSheet.Range(R1ToA1(5, 1))
   xlRange1.Value = "セル A1 があるActivateセル領域は " & _
         xlCurrentRegion.Address(False, False, Excel.XlReferenceStyle.xlA1) & " の範囲です。"
   MRComObject(xlRange1)
   MRComObject(xlRange)
   MRComObject(xlCurrentRegion)
   '1秒間表示しておく
   System.Threading.Thread.Sleep(1000)
   '----------------------------------------------

  'xlSheet 上の使用済みのセル範囲を取得
   Dim xlCells As Excel.Range
   xlCells = xlSheet.Cells
   xlRange1 = DirectCast(xlCells(6, 1), Excel.Range)
   Dim xlUsedRange As Excel.Range
   xlUsedRange = xlSheet.UsedRange
   xlRange1.Value = "使用済みセル領域は " & _
         xlUsedRange.Address(False, False, Excel.XlReferenceStyle.xlA1) & " です。"
   MRComObject(xlUsedRange)
   MRComObject(xlCells)
   MRComObject(xlRange1)
   '1秒間表示しておく
   System.Threading.Thread.Sleep(1000)

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



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