セルの操作
・RangeとCells
・セルにデータを入力する
・セルのデータを取得する
・セルの書式設定
【ここでのポイント】
逆に考えれば、あまり細かいことは出題しづらいとも言えます。
公式テキストおよび以下で説明している部分を重点的に覚えるようにして下さい。
RangeとCells
1つのワークシートを表すオブジェクトとしてWorkSheetオブジェクトがあり、
集合体としてのコレクションがWorkSheetsコレクションとして用意されています。
シートのセルの数を増減させることはできません、行数も列数も一定です。
Rangeオブジェクトは、シート全体のセルの集合としてのコレクションになります。
そして、シート内の位置を指定することで、1つのセルや複数のセルを表すことができるようになっています。
Cells ・・・ 行、列を数値で指定できるので、変数でセル位置を変化させる時に使います
ActiveCell ・・・ アクティブセルです、ワークシートに1つのみ
Rows ・・・ 行全体
Columns ・・・ 列全体
UsedRange ・・・ ワークシートで使用されているセル範囲
その他は、使用頻度は低いのですが、どのセルを指定しているものかは覚えておく必要があります。
セル範囲(複数のセル)を指定
Range("A1:C5")
A1からC5のセル範囲
Range(始点セル, 終点セル)
Range("A1","C5")
A1からC5のセル範囲
Range("A1,C5")
A1セルとC5セルになります。
行全体を指定
1行目全体
1から5行全体
1から5行全体
1行目全体と5行目全体
ですが、Rangeの指定方法を理解する意味で、いろいろなパターンを見ておいてください。
列全体を指定
AからC列全体
AからC列全体
A列全体とC列全体
名前定義で指定
名前定義で定義されたセル範囲
Cells ・・・ 行、列を数値で指定できるので、変数でセル位置を変化させる時に使います
Cells(1, "A")
Cells(5, "C")
Range("C5")と比べると、行列の指定順序が逆になっています。
Rows ・・・ 行全体
Columns ・・・ 列全体
Rangeと他の組み合わせ
Cells、Rows、Columns
これらを使ってセル範囲を指定できます。
A1からE3セルになります。
1から3行め全体になります。
AからC列全体になります。
ワークシートの指定
これらだけの指定では、どのワークシートなのかの記述が省略されています。
WorkSheets("Sheet2").Cells(2, 2)
このようにワークシートを指定するようにします。
WorkBooks("Book1.xlsm").WorkSheets("Sheet2").Cells(2, 2)
Range、Cells、Rows、Columns
これらだけを指定した場合、どのシートのセルになるかがモジュールによって違ってきます。
シートモジュールでは、記述したシートになります。
セルにデータを入力する
数値は、そのまま記述します。
Range("B3") = 123
B2セルに、「こんにちは」
B3セルに、「123
」と入ります。
表示する文字、文字の大きさ、文字の色、背景色、罫線等々
セルの何を、どのようにしたいのか・・・
ここでは、セルの値に、文字を入れています。
値はValueであり、本来は、
↑ ↑ ↑
セル の 値 に 文字を入れる。
つまり、Valueは省略時の既定のプロパティだということです。
Range("セルの番地").Font.Size = 11
このように、プロパティの指定が必要です。
↓ ↓ ↓
Range("セル番地").Value = "文字"
↑ ↑ ↑
セル の 値 に 文字を入れる。
セルに数式を入れる
.Formula
.FormulaLocal
.FormulaR1C1
.FormulaR1C1Local
.Value
計算式も入れる事が出来ます。
先頭に=を付けて計算式を指定すれば良いです。
.Formula
.FormulaLocal
.FormulaR1C1
.FormulaR1C1Local
行位置をRに続けて記述し、列位置をCに続けて記述します。
C ・・・ Cの後に何も記述しない場合は同一列
R1 ・・・ Rの後に数値のみ記述した場合はその絶対行数
C1 ・・・ Cの後に数値のみ記述した場合はその絶対列数
R[1]・・・ Rに続けて[数値]とした場合は、数値行数分、行位置をづらした行
C[1]・・・ Cに続けて[数値]とした場合は、数値列数分、列位置をづらした列
公式テキストには書かれていません。
少なくとも、ベーシックでは出題されないとは思いますが、
VBAをやっていく上では、いずれは覚えた方が良いものです。
R1C ・・・ C1セル
R[1]C[2] ・・・ E6セル
RC[-1] ・・・ B5セル
Localについて
それぞれの違い(Localは除く)
Range("A2").Formula = "=B1+C1"
Range("A4").Value = "=RC[1]"
Range("A5").Formula = "=RC[1]"
Range("A6").FormulaR1C1 = "=RC[1]"
R1C1の場合は、R1C1参照形式で設定する必要がある訳ですが、当然ですね。
それは、設定する時ではなく、その設定された計算式を参照する時に使うからです。
Range("A1").Value = "=B1+C1"
Range("A1").Value ・・・ 計算結果の値
Range("A1").Formula ・・・ =B1+C1
Range("A1").FormulaR1C1 ・・・ =RC[1]
セルのデータを取得する
と入れても、
表示形式によって、見た目は、
12,345
12345
千単位にしていれば、
12
という事もあります。
2018/2/20
見た目は、
2018/2/20
2018/02/20
2018年2月20日
等々、表示形式によって見た目はかなり違ってきます。
さらに、表示形式が標準や数値の場合には、
43151
と表示されている場合もあります。
Value
Value2
Text
Value2プロパティでは、通貨型 (Currency) および日付型 (Date) のデータ型を使用しない点のみが、Value プロパティと異なります。
値を、倍精度浮動小数点型 (Double) をで返します。
セルの見た目を文字列として返します。
Textプロパティは、読み取り専用です。
2018/2/20
と入っている場合、
Value2は、43251 ・・・ 倍精度浮動小数点型 (Double) で取得されます。
Textは、2月20日 ・・・ 文字列型で取得されます。
セルの書式設定
・表示形式
・配置
・フォント
・塗りつぶし
・罫線
これらがあります。
全てのプロパティとその設定値を覚えることはかなり大変なことです。
ですが、全てを覚えることはありませんが、一通りどのようなものがあるかくらいは見ておきましょう。
試験対策としては、
表示形式、フォント、塗りつぶし
このあたりの、良く使われる基本的な設定くらいで良いのではないかと思います。
Range("A1").NumberFormat = "#,##0"
Range("A1").NumberFormat = "yyyy/mm/dd"
Range("A1").NumberFormat = "@"
Range("A1").Font.Bold = True
Range("A1").Font.Color = vbRed
Rangeオブジェクトの、その他のプロパティ、メソッド
Rangeのプロパティ一覧
とても、全てをおぼえられるものではありません。
以下では、良く使われるもの、試験に出る可能性のあるものを選びました。
詳細説明は、マクロVBA入門の各ページをお読みください。
Addressプロパティ
Selectメソッド
ClearContentsメソッド
Cutメソッド
Insertメソッド
上記以外にも、多くの重要なプロパティ、メソッドが多数ありますが、試験に出る可能性は低いと思います。
Valueプロパティの省略 ・・・ リニューアル対応
最終セルを特定する ・・・ リニューアル対応
最終行・最終列の取得方法(End,CurrentRegion,SpecialCells,UsedRange)|VBA技術解説
【業務改善の実務】
しかし、だからこそ奥が深く難しいという事になります。
VBAを一通り覚えた後は、
Rangeオブジェクトのプロパティ、メソッドをすこしずつ増やしていくことで、VBAスキルアップをしていってください。
実務としては、どのような事ができるかを広く知っておくことのが重要です。
実務は試験ではないので、分からないことは必要な時に調べれば良いのです。
しかし、そもそも何が出来るかを知らなければ調べようともしなくなってしまいます。
従って、そもそものExcelの操作全般をしっかり覚えることが最優先です。
操作できるのなら、自動記録でVBAコードは調べることが出来るからです。
【本サイト内の関連ページ】
第56回.Rangeオブジェクト
RangeとCellsの深遠
だまされるな!RangeとCellsの使い分け!
VBAエキスパート公式テキスト
こちらは必須として購入した方が良いでしょう。
ちょっと高いなーとは思いますが、
書籍を購入することで、学習用データが提供されています。
・サンプルブック
・VBAエキスパート模擬問題
これらが使えるようになります。
このシリーズでは、テキストを読みながら学習していることを前提とします。
同じテーマ「VBAエキスパート対策」の記事
マクロの記録
VBAの構文
変数と定数
セルの操作
ステートメント
ブックの操作
シートの操作
デバッグデの基礎
マクロの実行
VBAベーシック試験対策まとめ
プロシージャ
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
- ホーム
- マクロVBA入門編
- VBAエキスパート対策
- セルの操作
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。