|
|
|||||||||
| 本章では、セルや行・列に関するコードサンプルを例示しています。 | |||||||||
|
|||||||||
|
Cellsプロパティは、セルをセル番地またはセル範囲で指定できる。
Range(セル番地(またはセル範囲)) <記述例> Range("A1") Range("A1:A10") Range("A1","B10","C32") Range("A" & i) |
|||||||||
|
|||||||||
|
|
Cellsプロパティは、セルを行・列番号で指定できる。 Cells(行番号,列番号) <記述例> Cells(1, 1) Cells(1, 2) Cells(RowNo, ColNo) Range(Cells(1,1),Cells(3,4)) Range(Cells(x1,y1),Cells(x2,y2)) |
||||||||
|
|||||||||
| 指定したセル位置から、行列方向に指定した数だけずらした位置のセルに、アクセスできるようになる。 Offset(行数, 列数) <記述例> Range("A1").Offset(10, 5) |
|||||||||
|
|
|||||||||
|
|||||||||
|
条件に一致するセルを把握することができる。
たとえば、表の中で空白のセルだけを選択して値を代入したい場合などは、このメソッドを使用する。 SpecialCells(Type, Value) <使用例 表の中の空白のセルだけを選択し「---」と入力する> Worksheets("Sheet5").Range("B7:F26"). SpecialCells(xlCellTypeBlanks) = "---" 引数 Type -------------------------------------------- xlCellTypeNotes コメントが含まれているセル xlCellTypeConstants 定数が含まれているセル xlCellTypeFormulas 数式が含まれているセル xlCellTypeBlanks 空の文字列 xlCellTypeLastCell 使われたセル範囲内の最後のセル xlCellTypeVisible すべての可視セル 引数 Value ------------------------------------------- xlErrors xlLogical xlNumbers xlTextValues xlAllFormatConditions xlSameFormatConditions 引数「Value」は、引数「Type」に 定数「xlCellTypeConstants」 または「xlCellTypeFormulas」を設定した時に使用すると、特定の種類の定数や数式を含むセルを把握することができる。 この引数を省略すると、すべての定数または数式が対象になる。 |
|||||||||
|
|||||||||
|
指定したセル範囲の列番号や行番号を把握する。
Columns(列番号) Rows(列番号) <記述例> Columns(1) Columns("A:D").Select Rows(1) Rows("5:11") |
|||||||||
|
|||||||||
|
Object.Select
<記述例> Range("A1:D10").Select Rows.Select |
|||||||||
|
|||||||||
|
セルをマウスでクリックしたのと同じ状態にする。
Object.Activate <記述例> Range("A1").Activate Cells(1,1).Activate |
|||||||||
|
|||||||||
|
Object.ActiveCell
<記述例> ActiveCell = "アクティブ" ActiveCell.Interior.ColorIndex = 3 |
|||||||||
|
|||||||||
| 現在選択されているオブジェクトを返す。 Selection.プロパティ(またはメソッド) <記述例> Selection.Font.Size = 12 |
|||||||||
|
|||||||||
| 現在アクティブなウィンドウのワークシートで選択されているセル範囲を返す。 Window.RangeSelection <記述例> ActiveWindow.RangeSelection.Address |
|||||||||
|
|||||||||
| 複数のセル範囲を1つのオブジェクトとして扱う(Unionメソッド) Union(引数11, 引数2, ...) <記述例> Union(Range("B8:B26"), Range("D8:D26")).Font.Bold = True |
|||||||||
|
|||||||||
| Object.Name = 文字列 <記述例> Range("a1:b1").Name = "apple" Range("apple").Font.Bold = True |
|||||||||
|
|||||||||
| With ActiveSheet If Not .AutoFilterMode Then .Range("A1").AutoFilter ' フィルターのセット End Wit Selection.AutoFilter Field:=1, Criteria1:="b" '文字列"b"の行を選択 |
|||||||||
|
|||||||||
| If AutoFilterMode Then AutoFilterMode = False | |||||||||
|
|||||||||
| Const hensu1 As Integer = 21 Const hensu2 As String = "B" Sheets("Sheet1").Activate Range("A" & hensu1).Select 'A21 Range(hensu2 & "21").Select 'B21 |
|||||||||
|
|||||||||
| セル A1 を最優先させるキー フィールド、セル C1 を 2 番目に優先させるキー フィールドとし、コード順に従って昇順になるように、行単位で並べ替えます。範囲の先頭行も、見出しではなく、データとして扱われます。 Worksheets("Sheet1").Range("A1:G37").SortSpecial _ sortMethod:=xlCodePage, _ key1:=Range("A1"), order1:=xlAscending, _ key2:=Range("C1"), order2:=xlAscending |
|||||||||
|
|||||||||
| 次の使用例は、Sheet1 のアクティブ セルから 3 列右、3 行下のセルをアクティブにします。 Worksheets("Sheet1").Activate ActiveCell.Offset(rowOffset:=3, columnOffset:=3).Activate 次の使用例は、Sheet1 で見出し行のあるリストから、見出し行は選択せずに、データ部分だけを選択します。この使用例を実行する前に、リストのいずれかのセルをアクティブにしておいてください。 Set tbl = ActiveCell.CurrentRegion tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select |
|||||||||
| セル内の氏名の末尾に様を追加する ↑ このページの最初へ | |||||||||
|
|||||||||
| Range("A1").Select Do Until ActiveCell.Value = "" ActiveCell.Value = ActiveCell.Value & "様" ActiveCell.Offset(1).Select Loop |
|||||||||
|
|||||||||
| Sheet1 の使用されたセル範囲の列 A、B、および C の数式を計算します。 Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate |
|||||||||
|
|||||||||
| Sheets("Sheet1").Activate Range("A1:E5").Select Application.CutCopyMode = False Selection.Copy Range("A6:E10").Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=True *TransposeにTrue を指定すると、貼り付けの際にデータの行と列を入れ替えます。 |
|||||||||
|
|||||||||
| Dim stRow, edRow As Integer Worksheets("Sheet1").Activate stRow = 3 edRow = 13 Rows("" & stRow & ":" & edRow & "").Select |
|||||||||
|
|||||||||
| Dim myRange As Range '項目定義シートの範囲 Set myRange = Sheets(Sheet2).Range(Cells(8, 5), Cells(20, 5)) rlen = Application.Sum(myRange) |
|||||||||
|
|||||||||
| 'SpecilaCells(xlLastCell)は終端セルではなく、最後に使用されたセルを返す Dim gyo As Integer Dim ret As Integer Worksheets("Sheet1").Activate gyo = ActiveSheet.Cells.SpecialCells(xlLastCell).Row ret = ActiveSheet.Cells.SpecialCells(xlLastCell).Column '最後の行から上に向かって空白でないセルを探す gyo = Range("A65536").End(xlUp).Row |
|||||||||
|
|||||||||
| Sheet1 で使われたセル範囲の最後のセルを選択します。 Worksheets("Sheet1").Activate ActiveSheet.Cells.SpecialCells(xlLastCell).Activate |
|||||||||
| 指定されたセル範囲をコレクション内の他のすべてのワークシートの同じ領域にコピーする | |||||||||
|
|||||||||
| 指定されたセル範囲をコレクション内の他のすべてのワークシートの同じ領域にコピーする 次の使用例は、Sheet1 のセル範囲 A1:C5 の内容を、Sheet5 および Sheet7 の同じ範囲にも 入力します。 x = Array("Sheet1", "Sheet5", "Sheet7") Sheets(x).FillAcrossSheets _ Worksheets("Sheet1").Range("A1:C5") |
|||||||||
|
|||||||||
| Dim stRow, edRow As Integer Worksheets("Sheet1").Activate stRow = Selection.Row edRow = Selection.Row + Selection.Rows.Count - 1 MsgBox (stRow & "To" & edRow) |
|||||||||
|
|||||||||
| Dim stRow, edRow As Integer Worksheets("Sheet1").Activate stRow = 3 edRow = 13 Rows("" & stRow & ":" & edRow & "").Select |
|||||||||
|
|||||||||
| セル「A1」のフォントを青色にする Worksheets("Sheet1").Range("A1").Font.ColorIndex = 5 「A1」のフォントを赤色にする Worksheets("Sheet1").Range("A1").Font.Color = &HFFF 「A1」のフォントをサーモン色に設定する Worksheets("Sheet1").Range("A1") _ .Font.Color = RGB(250, 80, 160) セル「A1」をマジェンタで塗りつぶす Worksheets("Sheet1").Range("A1") _ .Interior.ColorIndex = 7 「A1」を黄色で塗りつぶす Worksheets("Sheet1").Range("A1") _ .Interior.Color = RGB(255, 255, 0) |
|||||||||
| ご意見・ご感想をお寄せください。info@beagle-hc.com ‖ このサイトについて | |||||||||
| Copyright 2006 - 2009 uTRAM Corp. All Rights Reserved | |||||||||