ここでタイトルのCellは純粋にCellという意味ではなくWorksheetに対してその中身という意味でCellとタイトルをつけています。ここではCellだけではなくRange、Row、Columnなどについても説明しています。CellsもRows、ColumnsもRangeのメンバーでほとんどのメソッドとプロパティーが共通です。
1.メソッド †主なメソッド
2.プロパティー †主なプロパティー
注1:標準スタイルは、ツールバーの[書式]-[スタイル]で表示されるダイアログボックスで、ブック単位で設定できます。[ツール]-[オプション]の[全般]パネルからはExcelのシステム単位でも設定できますが、この場合、変更を反映させるにはExcelの再起動が必要です。 3.Column、Rowの指定方法 †ColumnやRowを指定する場合、文字列で指定することもできますが、マクロを使用する場合数値で指定した方が便利です。特に列は文字の場合A,B,C...とアルファベットで指定するので、数値で扱うと便利です。
4.Rangeの指定方法 †複数の範囲を指定する場合は、以下のようにUnionを使用します。パラメータにRangeをコンマで複数列挙します。 Dim sht As Worksheet Set sht = ActiveSheet Union(sht.Range("A1:C5), sht.Range("A10:C12") ,sht.Range("E3:G7")).????? Rangeを行と列の値で設定する場合は以下のようにCellsで範囲を設定します。 Dim sht As Worksheet Set sht = ActiveSheet sht.Range(sht.Cells(1, 1), sht.Cells(10, 10)).????? 一つのCellをRangeとして指定する場合、説明は不要と思いますが、以下のようになります。 Dim sht As Worksheet Set sht = ActiveSheet sht.Cells(11, 11).????? 5.最終行・列をもとめる(End) †Sub example401(sht As Worksheet, rw As Long, cl As Integer) Dim workRange As Range Set workRange = sht.Cells(65536, cl) MsgBox workRange.End(xlUp).Row Set workRange = Nothing Set workRange = sht.Cells(rw, 256) MsgBox workRange.End(xlToLeft).Column Set workRange = Nothing End Sub 6.データ数(Rowの行数)を求める †CurrentRegionは現在のセルから空白に囲まれたデータのある範囲を返します。空白がある場合は範囲はそこまでです。そのため以下の例のCells(4,5)はデータがある範囲内である必要があります。 Count = MsgBox Cells(4, 5).CurrentRegion.Rows.Count 7.内容のリセット †ワークシート内のデータを空白にしたり、背景色を無しにリセットするなどよく使用する処理のサンプルです。他のクリアーについては上記のメソッドの中でClearで始まるメソッドを使用します。 Public Sub Example() Dim sht As Worksheet Dim Clear_Range As Range Set sht = ActiveSheet Set Clear_Range = sht.Cells '←シート全体をクリアーする場合 '↓Rangeでクリアーする範囲を指定する場合 Set Clear_Range = sht.Range(sht.Cells(1, 1), sht.Cells(10, 10)) Clear_Range.ClearContents '←データのクリアー Clear_Range.Interior.ColorIndex = xlNone '←背景色のリセット '↓罫線のクリアー。使用した種類の罫線をクリアーしてください。 Clear_Range.Borders(xlDiagonalDown).LineStyle = xlNone Clear_Range.Borders(xlDiagonalUp).LineStyle = xlNone Clear_Range.Borders(xlEdgeLeft).LineStyle = xlNone Clear_Range.Borders(xlEdgeTop).LineStyle = xlNone Clear_Range.Borders(xlEdgeBottom).LineStyle = xlNone Clear_Range.Borders(xlEdgeRight).LineStyle = xlNone Clear_Range.Borders(xlInsideVertical).LineStyle = xlNone Clear_Range.Borders(xlInsideHorizontal).LineStyle = xlNone Set Clear_Range = Nothing End Sub 8.Group化(行・列) †
9.AutoFit †開始列と終了列間の列幅を自動調整します。 Sub Column_AutoFit(sht As Worksheet, startCol As Integer, endCol As Integer) sht.Range(sht.Columns(startCol), sht.Columns(endCol)).Columns.EntireColumn.AutoFit End Sub 10.入力値の自動大文字変換 †次の関数は入力値を大文字に変換すると同時に変換後の値を戻します。変換後の値を戻り値として使用しない場合は、最後の処理は不要です。 Function To_Upper(cel As Range) As String cel.Value = UCase(cel.Value) To_Upper = cel.Value End Function Last-modified: 2014-03-11 (火) 01:58:42 (3921d)
|