- 日時: 2012/06/06 19:14
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:Excel VBA,Excel2010,行の挿入,列の挿入,セルの挿入,行の削除,列の削除 * *********************************************************************************** '=================================================================================================== '投 稿 日:2012.05.06 '投 稿 者:VBレスキュー(花ちゃん) 'タイトル:VB2010 から Excel の Worksheet 上で行・列・セルの挿入及び削除 '========1=========2=========3=========4=========5=========6=========7=========8=========9=========0
Private Sub Button16_Click(sender As System.Object, e As System.EventArgs) Handles Button16.Click Call ExcelOpen("", "") '新規ファイルをオープンして、Excel を起動 '===================== 行・列・セルの挿入及び削除 ============================
'-------------------- 下記のVB6.0用コードを移植 --------------------------- ' http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=128&no=11 '--------------------------------------------------------------------------
'何も記入していないと解らないので仮データを記入(R1ToA1 関数の使用例もかねて) Dim xlRange As Excel.Range = Nothing For c As Integer = 1 To 10 For r As Integer = 1 To 20 xlRange = xlSheet.Range(R1ToA1(r, c), R1ToA1(r, c)) xlRange.Value = r + c MRComObject(xlRange) 'ここも直ちにデクリメントの事 Next r Next c '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'--------------------------------------------------------- '4行目と5行の間に1行挿入します。 Dim xlRows As Excel.Range Dim xlRow As Excel.Range xlRows = xlSheet.Rows xlRow = DirectCast(xlRows.Item(5), Excel.Range) xlRow.Insert() '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000) xlRow.Insert(Shift:=Excel.XlInsertShiftDirection.xlShiftDown) '上記と同じ MRComObject(xlRow) MRComObject(xlRows) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'4行目と5行の間に1行挿入します。 '下記の場合は、"A1" のように指定するとセルの挿入になる xlRange = xlSheet.Range("5:5") xlRange.Insert() MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'下記の場合は、"B5" として行の挿入になる xlRange = xlSheet.Range("B5") Dim xlEntireRow As Excel.Range xlEntireRow = xlRange.EntireRow xlEntireRow.Insert() MRComObject(xlEntireRow) MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'------------------ 以上 4行挿入 ---------------------
'4列目と5列の間に1列挿入します。 Dim xlColumns As Excel.Range Dim xlColumn As Excel.Range xlColumns = xlSheet.Columns xlColumn = DirectCast(xlColumns.Item(5), Excel.Range) xlColumn.Insert() MRComObject(xlColumn) MRComObject(xlColumns) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
xlRange = xlSheet.Range("E:E") xlRange.Insert() '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
Dim xlEntireColumn As Excel.Range xlEntireColumn = xlRange.EntireColumn xlEntireColumn.Insert() MRComObject(xlEntireColumn) MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'------------------ 以上 3列挿入 ---------------------
'C列の5行目にセルを挿入します。 xlRange = xlSheet.Range("C5") xlRange.Insert() MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'C列の3行目のセルを右に挿入します。 xlRange = xlSheet.Range("C3") xlRange.Insert(Shift:=Excel.XlInsertShiftDirection.xlShiftToRight) MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'5行目を削除します。 xlRows = xlSheet.Rows xlRow = DirectCast(xlRows.Item(5), Excel.Range) xlRow.Delete() MRComObject(xlRow) MRComObject(xlRows) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
xlRange = xlSheet.Range("5:5") xlRange.Delete() MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
xlRange = xlSheet.Range("A5") xlEntireRow = xlRange.EntireRow xlEntireRow.Delete() MRComObject(xlRange) MRComObject(xlEntireRow) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'C列の3行目のセルを左に削除します。 xlRange = xlSheet.Range("C3") xlRange.Delete(Shift:=Excel.XlDeleteShiftDirection.xlShiftToLeft) MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'5列目を削除します。 xlColumns = xlSheet.Columns xlColumn = DirectCast(xlColumns.Item(5), Excel.Range) xlColumn.Delete() MRComObject(xlColumn) MRComObject(xlColumns) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
xlRange = xlSheet.Range("A5") xlEntireRow = xlRange.EntireRow xlEntireRow.Delete() MRComObject(xlRange) MRComObject(xlEntireRow) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
xlRange = xlSheet.Range("E:E") xlRange.Delete() MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
xlRange = xlSheet.Range("E:E") '再度指定しないと削除済みなのでエラーとなります。 xlEntireColumn = xlRange.EntireColumn xlEntireColumn.Delete() MRComObject(xlRange) MRComObject(xlEntireColumn) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'C列の5行目のセルを削除します。 xlRange = xlSheet.Range("C5") xlRange.Delete() MRComObject(xlRange) '動作確認の為に1秒間表示しておく System.Threading.Thread.Sleep(1000)
'============================================================================= 'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行 Call ExcelClose(IO.Path.GetFullPath(".\Test.xlsx"), False) 'False の場合保存しないで終了 'Excel.EXE がタスクマネージャに残っていないか調査(実使用時は必要なし) Call ProcessCheck() End Sub
|