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