6)セルの操作

目次

Excel VBA ベーシック出題範囲

  1. マクロの概念
  2. マクロ記録
  3. モジュールとプロシジャー
  4. VBAの構文
  5. 変数と定数
  6. セルの操作
  7. ステートメント
  8. 関数
  9. ブックとシート操作 マクロの実行

サンプルプログラムの実行方法

6-1)セルを操作する

6-1-1)RanegとCallの使い方

Range: セルのアドレス範囲を指定します

Range (“セルアドレス”)

'Range ("セルアドレス")
 Range("B4") = " Range(""B4"") "
 Range("B5:D8") = " Range(""B5:D8"")"
 Range("B9,E9") = " Range(""B9,E9"") "

Cells: 行番号と列番号を使用してセルを指定します

Cells( 行,列 )

'Cellsプロパティ: 行番号と列番号を使用してセルを指定します
'Cells( 行,列 )
 Cells(10, 2) = " Cells(10, 2) "
 Cells(11, "B") = "Cells(11, ""B"") "
 Cells(11, "C") = "Cells(11, ""C"") "
'行を調べる時
 '=COLUMN()

6-2)Valueプロパティ

‘Valueプロパティは、セルの中の値を表すプロパティです。

セルに値を書き込む

 Dim a As String
 a = InputBox("名前")
 Range("F4").Value = a

セルの値を取り出す

a = Cells(4, 6).Value
 MsgBox "名前は" & a & "です" 

B10の値を、D10に移す

  Range(“D10”).Value = Range(“B10”).Value

計算式のセルは計算結果が表示されます

MsgBox “名前は” & Cells(4, 6).Value & “です”

6-2)Valueプロパティ

Valueプロパティは省略可能です

Range(“F4”) = 100

Range(“F4”).Value = 100

6-3)セルの様子を表すプロパティ

6-3-1)Textプロパティ

 ‘ TEXT プロパティは、セルの文字列を取り出します。

 ‘ TEXT プロパティは、読み取り専用です。

Dim s1 As String
    s1 = Range("C5").Text
    Debug.Print s1
  
  Dim s2 As String
    s2 = Range("C6").Text
  Debug.Print s2

6-3-2)Fomulaプロパティ

‘ Formula プロパティは、セルの数式を取り出します。

‘ Formula プロパティは、数式をセルに書き込みます。

  Range("F8").Formula = "=SUM(F5:F7)"
  Debug.Print Range("F8").Formula

6-4)別のセルを表すプロパティ

6-4-1)Offset

Offset プロパティは、基準となるセルから見て相対的に指定したセルを表します。

  Range(“B5”).Offset(2, 1).Value = 100

6-4-2)Resizeプロパティ

Resizeプロパティは、基準となるセルから見て相対的に指定したセル範囲を表します。

  Range(“F5”).Resize(4, 3).Value = 100

6-4-3)Endプロパティ

基準となるセルから、Endモードで移動するであろうセルを返す

End モード=Cntl+方向キーで、データで移動するであろうセルを示す

‘  ※途中に空白セルがあると、そこで止まる

移動する方向

上 xlUp
下 xlDown
左 xlToLeft
右 xlToRight

B4 から下方向の最後の行を示す

Debug.Print Range(“B4”).End(xlDown).Address

行の最大行数

  Debug.Print Rows.Count

列の最大行数

  Debug.Print Columns.Count

行の最大行数から、上方向にデータのあるセルを探す

  Debug.Print Cells(Rows.Count, 2).End(xlUp).Address

列の最大列数から、左方向にデータのあるセルを探す

  Debug.Print Cells(4, Columns.Count).End(xlToLeft).Address

6-4-4)CountRegionプロパティ

Ctrl + Shift + * アクティブセルを含むひと固まりのデータを示す。

Range(“E4”).CurrentRegion _
.Interior.Color = RGB(255, 255, 0)

6-5)セルを表すその他の単語

6-5-1)ActivCell

‘ActiveCellは、アクティブセルを示します

  ‘アクティブセルの存在するシートをアクティブシートという

  ‘アクティブセルの存在するブックをアクティブックという

  ActiveCell.Value = “Active”

6-5-2)Selection

‘Selectinは、選択された範囲を示します

   Selection.Value = “Selection”

6-6)セルのメソッド

6-6-1)Activate

セルをアクティベイトします。

   Range(“B4”).Activate

6-6-2) Selectメソッド

セル範囲を選択します。

    Range(“E4:G6”).Select

6-6-3) Copyメソッド

‘コピー元セル.copy コピー先

 Range("B9").Copy Range("D9")

‘数式がコピーされる

  Range("D10").Copy Range("D11")

‘Book間のCopy

Workbooks("bookdata.xlsx").Sheets("sheet1").Range("B2:B11").Copy _
   Sheets("sheet1").Range("D3")

6-6-4) ClearContentsメソッド

セルの値をクリアする

 Range(“B5”).ClearContents

6-6-5) Deleteメソッド

Deleteメソッドは、セルを削除します。

削除する時に、セルをシフトする方向を決めます。

‘左にシフト xlToLeft xlShiftToLeft

‘上にシフト xlUp      xlShiftUp

    Range(“F5”).Delete Shift:=xlToLeft

6-7)複数セル(セル範囲)の指定

セルの範囲指定
セルC6 ~C13 をクリア
 Range(“C6:C13”).ClearComments でも可能です。

Rangeオブジェクトで指定が可能
Range( 左上のセル , 右下のセル)

Range(Range("C6"), Range("C13")).ClearComments

'データが増減しても、右下のセルを自動判別する
'右下セルの自動判別 Range("B2").End(xlDown)
MsgBox "右下アドレス" & Range("C6").End(xlDown).Address

Range(Range("C6"), Range("C6").End(xlDown).Address).ClearContents

6-8)行や列の指定

6-8-1)行を指定する

‘行を指定

Rows(5).Interior.Color = RGB(255, 255, 0)

‘行の中のセル全体を指定

Rows(“6:7”).Interior.Color = RGB(255, 128, 128)

‘行の中のセル全体を指定

Range(“8:9”).Interior.Color = RGB(128, 128, 255)

‘選択したセルの行を示す

Range(“B10”).EntireRow.Interior.Color = RGB(128, 255, 128)

6-8-2)列を指定する

‘列を指定

Columns(9).Interior.Color = RGB(0, 0, 128)

Columns(“J”).Interior.Color = RGB(0, 128, 0)

Columns(“K:L”).Interior.Color = RGB(128, 0, 0)

‘列の中のセル全体を指定

Range(“M:N”).Interior.Color = RGB(128, 128, 0)

‘選択したセルの列を示す

Range(“O1”).EntireColumn.Interior.Color = RGB(128, 128, 128)

まとめ

セルの操作

セルに値を設定
Range("A1").Value = "Hello, World!"

セルの値を取得
Dim value As String
value = Range("A1").Value

セルの色を変更
Range("A1").Interior.Color = RGB(255, 0, 0) ' RGB(赤, 緑, 青)

セルの書式を変更
' 数値の書式を小数点以下2桁まで表示
Range("A1").NumberFormat = "0.00"

セルの削除

セルを削除
Cells(行, 列).Delete
左方向にシフト
Cells(行, 列).Delete Shift:=xlToLeft
上方向にシフト
Cells(行, 列).Delete Shift:=xlUp
行全体
Cells(行, 列).EntireRow.Delete
EntireRowは、指定セルが含まれる行全体になります。
EntireRowは、RangeオブジェクトのプロパティでRangeオブジェクトを返します。
列全体
Cells(行, 列).EntireColumn.Delete
EntireColumnは、指定セルが含まれる列全体になります。
EntireColumnは、RangeオブジェクトのプロパティでRangeオブジェクトを返します。

セルの挿入

セルを挿入
Cells(行, 列).Insert
右方向にシフト
Cells(行, 列).Insert Shift:=xlToRight
下方向にシフト
Cells(行, 列).Insert Shift:=xlDown

行全体
Cells(行, 列).EntireRow.Insert
EntireRowは、指定セルが含まれる行全体になります。
列全体
Cells(行, 列).EntireColumn.Insert
EntireColumnは、指定セルが含まれる列全体になります

行・列の削除・挿入

行の削除
Rows(行位置).Delete
Cells(行, 列).EntireRow.Delete
行の挿入
Rows(行位置).Insert
Cells(行, 列).EntireRow.Insert
列の削除
Columns(列位置).Delete
Cells(行, 列).EntireColumn.Delete
列の挿入
Columns(列位置).Insert
Cells(行, 列).EntireColumn.Insert
よかったらシェアしてね!
目次