ExcelのVBA(マクロ)で行えるセルの基本操作についてまとめました。
【Range】セル範囲選択
VBA(マクロ)では、Rangeオブジェクトで操作したい対象のセルを指定できます。
記述方法は次のように色々あります。
Range("A1") 'A1 Range("A1:E5") 'A1~E5 Range("A1,E5") 'A1とE5 Range("A1","E5") 'A1~E5 Range("1:5") '1~5行 Range("A:E") '1~5列 Range(Cells(1, 1)) 'A1セル Range(Cells(1, 1), Cells(3,2)) 'A1~B3 Range(Rows(1), Rows(5)) '1~5行 Range(Rows(1), Columns(1)) '全範囲 Range(Columns(1), Columns(3)) '1~3列 Range("A1", Cells(3,2)) 'A1~B3 Range("名前定義") '「名前定義」したセル全て
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】Rangeオブジェクトでセル指定(複数・行・列・全範囲) |
【Select,Active,Clear】選択、アクティブ、クリア(消去)
VBA(マクロ)でセルの「選択」「アクティブ」「クリア(消去)」をするには次のメソッドを利用します。
メソッド | 説明 |
---|---|
オブジェクト.Select | セルを選択状態にする |
オブジェクト.Active | セルをアクティブ状態にする |
オブジェクト.Clear | セルをクリア状態にする |
※「Rangeオブジェクト」、「Cellオブジェクト」などで対象セルを指定します。
Sub test() Range("A1").Select Range("A2").Active Range("A3").Clear End Sub
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】セルの選択・アクティブ・クリア(消去) |
【Copy】コピー・切り取り・貼り付け
VBA(マクロ)でセルの「コピー」「切り取り」「貼り付け」をするには次のメソッドを利用します。
書式
Range("A1").Copy Range("A2").PasteSpecial (xlPasteAll)
「Copy」メソッドで指定したセルの内容をコピーできます。
もしコピーでなく切り取りも場合は「Cut」メソッドを使います。
また、「PasteSpecial」メソッドでコピーした内容を貼り付けます。
また、引数に入れる定数によって、コピーする内容を細かく設定できます。
定数 | 説明(貼り付ける対象) |
---|---|
xlPasteAll | すべて(デフォルト) |
xlPasteFormulas | 数式のみ |
xlPasteValues | 値のみ |
xlPasteFormats | 書式のみ |
xlPasteComments | コメントのみ |
xlPasteValidation | 入力規則 |
xlPasteAllExceptBorders | 罫線を除くすべて |
xlPasteColumnWidths | 列幅 |
xlPasteFormulasAndNumberFormats | 数式と数値の書式 |
xlPasteValuesAndNumberFormats | 値と数値の書式 |
xlPasteAllUsingSourceTheme | コピー元のテーマを使用してすべて貼り付け |
xlPasteAllMergingConditionalFormats | すべての結合されている条件付き書式 |
Sub test() ' A1セルの内容をコピー Range("A1").Copy ' A2セルに貼り付け Range("A2").PasteSpecial (xlPasteAll) ' コピーモードを解除 Application.CutCopyMode = False End Sub
補足
CopyやCutで次のようにDistinationを使用すると、Pasteメソッドを省略して貼り付けもできます。
' A1セルをコピーしてA2セルに貼り付け Range("A1").Copy Distination:=Range("A1")
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】セルのコピー・切り取り・貼り付け |
【Value】セルに値をセット(挿入)
VBA(マクロ)でセルに値をセット(挿入)するにはValueメソッドを利用します。
書式
Range("A1").Copy オブジェクト.Value = 値 オブジェクト.Value = "文字列"
※操作対象は「Rangeオブジェクト」「Cellオブジェクト」などを利用します。
Sub test() ' A1セルに値をセット Range("A1").Value = 0 ' A2セルに値をセット Range("A2").Value = "零" End Sub
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】セルに値をセット(挿入) |
【Value,Text】セルに入力されたデータを取得
VBA(マクロ)でデータ(値・文字列)を取得するにはValue,Textメソッドを利用します。
記述例 | 説明 |
---|---|
x = Range(“A1”).Value | 値を取得する場合 |
y = Range(“A2”).Text | 文字列を取得する場合 |
※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。
Sub test() ' A1セルの値を取得して変数xに格納 x = Range("A1").Value ' A2セルの文字列を取得して変数yに格納 y = Range("A2").Value MsgBox x MsgBox y End Sub
メッセージボックスに「A1セルの値」「A2セルの文字列」が表示されます。
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】セルのデータ(値・文字列)を取得 |
【Count】行数・列数・セル数を取得
VBA(マクロ)で行数・列数・セル数を取得するにはCountメソッドを利用します。
記述例 | 説明 |
---|---|
Range(“A1:E5”).Cells.Count | A1~E5のセル数を取得 |
Range(“A1:E5”).Rows.Count | A1~E5の行数を取得 |
Range(“A1:E5”).Columns.Count | A1~E5の列数を取得 |
※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。
Sub test() ' A1~E5のセル数を取得・表示 x = Range("A1:E5").Cells.Count MsgBox x ' 25 ' A1~E5の行数を取得 y = Range("A1:E5").Rows.Count MsgBox y ' 5 ' A1~E5の列数を取得 Z = Range("A1:E5").Columns.Count MsgBox Z ' 5 End Sub
メッセージボックスにセル数「25」、行数「5」、列数「5」が表示されます。
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】行数・列数・セル数を取得 |
【Row・Column】行・列番号の取得
VBA(マクロ)で行番号・列番号を取得するにはRow・Columnメソッドを利用します。
記述例 | 説明 |
---|---|
Range(“A2”).Row | A2セルの行番号を取得 |
Range(“A2”).Column | A2セルの列番号を取得 |
※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。
Sub test() ' A2セルの行番号を取得 x = Range("A2").Row MsgBox x ' 2 ' A2セルの列番号を取得 y = Range("A2").Column MsgBox y ' 1 End Sub
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】行番号・列番号を取得 |
【Name】セル名の設定
VBA(マクロ)でセルに名前を設定するにはNameメソッドを利用します。
記述例 | 説明 |
---|---|
Range(“A2”).Name = 任意の名前 | A2セルにセル名を設定 |
※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。
Sub test() ' A2セルに名前を設定 Range("A2").Name = "A2セルです" ' セル操作(値をセット) Range("A2セルです").Value = 10 End Sub
A2セルにセル名「A2セルです」を設定します。
これにより、「A2セルです」でセル操作ができます。
– | 関連記事 |
---|---|
1 | ■【VBA/マクロ】セルに名前を設定 |
【Font】フォントの大きさ・種類・スタイル
VBA(マクロ)でフォントの「大きさ」「種類」を変えるには、「Font」プロパティを使用します。
書式
Range("A1").Font.Name = "MS Pゴシック"
プロパティ | 説明 |
---|---|
Font.Name | フォントの種類(MS Pゴシックなど) |
Font.Size | フォントサイズ(16など) |
Font.Bold | 太字(Trueなら有り、Falseなら無し) |
Font.Color | 色(RGB(255, 0, 0)、RGB(0, 255, 0)、vbRed、vbblueなど) |
Font.FontStyle | 標準、太字、斜体、太字、斜体など |
Font.OutlineFont | フォントのアウトライン化(Trueなら有り、Falseなら無し) |
Font.Italic | 斜体(Trueなら有り、Falseなら無し) |
Font.Underline | 下線(Trueなら有り、Falseなら無し) 下線 |
Font.Strikethrough | 取消線(Trueなら有り、Falseなら無し) |
Font.Superpre | 上付き文字(Trueなら有り、Falseなら無し) |
Font.Subpre | 下付き文字(Trueなら有り、Falseなら無し) |
■参考:Rangeによるセル指定方法
Sub test() ' A1セルに値をセット Range("A1").Value = "イシュタル" ' A1セルの字体 Range("A1").Font.Name = "MS Pゴシック" ' A1セルのフォントの種類 Range("A1").Font.Size = 20 End Sub
コメント