第3回.セルに数字や文字を入れる(RangeとCells)
エクセルは、セルが基本単位です。
セルが縦横に集まってシートが出来ていて、シートが集まってブックが出来ています。
以下で、Enterと書いているのは、Enterキーを押すという意味です。
セルに文字を入れる
Enter
TAB
range("A1")="おはよう"
Enter
では入力カーソルが、
Sub 練習3 ~ End Sub の間にある状態で実行F5
おはよう
と表示されました。
この時、セルの番地である、
A1
これは大文字で書くようにして下さい。
大文字で書くのは、
シートに数式を入れたときA1は大文字になりますよね、これと同じようにしたいからで見易さの為です。
セルに数字を入れる
こんどは、
練習3の中に追加する形で書きます。
の下の行に、
range("A2")=12345
Enter
=の前後は、半角の空白を入力しなくても、勝手に前後に半角の空白が入って見やすくなります。
また、
何も書かれていない行が出来ますが気にしなくて大丈夫です。
何も書かれていない空白行は、VBAでは何の影響もなく、空白行があっても無くても動作に違いはありません。
マクロVBAを実行
以上のように、セルに数字を入れるには、
シートの数式と同じように、
文字を書くときは、"ダブルクオーテーションで囲む規則があります。
それ以外は、数字も文字も同じように扱えます。
本題はこれからです。
VBAでは、セルの書き方が多数あります。
エクセルの基本の単位ですから、いろいろな書き方が用意されています。
RangeとCells
Enter
TAB
cells(3, 1)="こんばんは"
Enter
cells(4, 1)=54321
Enter
Cells(行数, 列数) = 数字
列記号,行数
Cellsでは、
行数, 列数
このように指定します。
とても間違えやすいのですが、慣れてください、慣れるしかありません。
Cells(行数, 列記号)
このような書き方が出来ます。
ただし、Cellsにおいて列記号での指定は補助的なものです。
これから他の人の書いたマクロを目にすることも多くなると思いますが、列記号での指定は限定的にしか使われていません。
セル範囲(複数セル)に一括入力
RangeもCellsも説明しました、これでセルの指定が終わりかというと・・・
もう少しだけあります、そして、ちょっと難しくなります。
複数のセルに値を入れたい時は・・・
さらに追加して書いていきます。
Enter
開始セル:終了セル
これでセル範囲を指定できます。
これは、シートの計算式でセル範囲を指定するときの書き方と同じ書き方になりますので理解しやすいはずです。
range(cells(7,1),cells(7,3))="一括入力2"
Enter
Range(開始セル, 終了セル) = 数字
Rangeの中に書くセル指定は、RangeでもCellsでも、どちらでも問題ありません。
Range(Cells(7, 1), Cells(7, 3)) = "一括入力"
Range(Range("A7"), Range("C7")) = "一括入力"
Range(Cells(7, 1), Range("C7")) = "一括入力"
Range(Range("A7"), Cells(7, 3)) = "一括入力"
セルの指定方法は、数限りなくあります。
本当にたくさんあるのです。
ですが、ここで取り上げた書き方だけ覚えれば十分です。
これ以上の、複雑な指定方法を覚える必要はありません。
RangeとCellsのどちらを使えば良いのか・・・
Range(Cells(7, 1), Cells(7, 3)) = "一括入力2"
「これなら、上の指定の方が簡単だよね!」
その通りなのですが、マクロをいろいろ書いていくと、上のRangeだけの指定では都合が悪い場合が出てきます。
その為にも、今のうちに基本中の基本である、セルの指定については、しっかりと覚えてください。
従って、範囲を指定する最後の一括入力のようなセル範囲を指定する場合は、Rangeでしか書くとが出来ませんので、当然Rangeを使います。
それ以外で、単一のセルを指定する場合ですが、
基本はCellsです。
ただし、シート上で今後移動する可能性の少ない固定位置のセルを指定する時は、Rangeも使います。
つまり、このセルに決まっている、セル位置を明確にしたい場合です。
そのような場合は、セル番地を文字で指定できるRangeの方が、後々見やすいだろうという事です。
「セルに数字や文字を入れる」のまとめ
複数セル範囲を指定する時は、Range
移動しない固定セルを指定する時は、どちらでも良いがRangeの方が見やすい
今は、これで覚えてください。
今後も、セル指定はずーと出てきます、色々とでてきますので、都度解説します。
ExcelマクロVBA入門の対応ページ
第9回.Rangeでのセルの指定方法
第10回.Range以外の指定方法(Cells,Rows,Columns)
第11回.RangeとCellsの使い方
同じテーマ「マクロVBA再入門」の記事
第1回.マクロを書く準備をする(VBAとVBE)
第2回.マクロを書いて動かす(SubとF5)
第3回.セルに数字や文字を入れる(RangeとCells)
第4回.セルの値を使って計算する(四則演算)
第5回.同じ計算を行数分繰り返す(For~Next)
第6回.表の先頭から最終行まで繰り返す(ForとEnd(xlUp).Row)
第7回.セルの値によって計算を変える(Ifステートメント)
第8回.表範囲をまとめて消去する(OffsetとClearContents)
第9回.関数という便利な道具(VBA関数)
第10回.ワークシートの関数を使う(WorksheetFunction)
第11回.分からない事はエクセルに聞く(マクロの記録)
新着記事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入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。