ExcelマクロVBA再入門 | 第3回.セルに数字や文字を入れる(RnageとCells) | マクロが覚えられないという初心者向けに理屈抜きのやさしい解説



最終更新日:2016-03-29

第3回.セルに数字や文字を入れる(RnageとCells)


エクセルは、セルが基本単位です、

セルが縦横に集まってシートが出来て、

シートが集まってブックが出来ます、

今回より、その基本単位のセルの扱い方に進みます。

さっそく書いてみましょう。


sub 練習3
Enter
TAB
range("A1")="おはよう"
Ente
r



このようになっていますね、
では入力カーソルが、
Sub 練習3 〜 End Sub の間にある状態で実行F5

A1セルに、
おはよう
と表示されました。



このように、セルに文字を入れる場合は、

Range("ここにセルの番地を書く") = "文字"

これで、指定のセルに文字が入ります。

この時、セルの番地である、
A1
これは大文字で書くようにして下さい。

大文字で書くのは、
シートに数式を入れたとき、A1は大文字になりますよね、これと同じようにしたいからで、見易さの為です。

続けて書いていきます。
こんどは、
練習3の中に追加する形で書きます。

Range("A1") = "おはよう"
の下の行に、
range("A2")=12345
Enter




こうなりましたね。
=の前後は、半角の空白を入力しなくても、勝手に前後に半角の空白が入って見やすくなります。
また、
何も書かれていない行が出来ますが気にしなくて大丈夫です。
何も書かれていない空白行は、VBAでは何の影響もなく、空白行があっても無くても動作に違いはありません。

それでは、実行F5



A2セルに12345と表示されます。

以上のように、セルに数字を入れるには、

Range("ここにセルの番地を書く") = 数字

これで、指定のセルに数字が入ります。

シートの数式と同じように、
文字を書くときは、"ダブルクオーテーションで囲む規則があります。
それ以外は、数字も文字も同じように扱えます。

ここまでは簡単だったかと思います。
本題はこれからです。

VBAでは、セルの書き方が多数あります。
エクセルの基本中単位ですから、いろんな書き方が用意されています。

では、プロシージャーを追加して、書き進めます。

sub 練習4
Enter
TAB
cells(3, 1)="こんばんは"
Enter
cells(4, 1)=54321
Enter




これを実行F5すると、



このように表示されます。

Cells(行数, 列数) = "文字"
Cells(行数, 列数) = 数字

先のRangeとちょっと違いますね。

Rangeでは、シートでのセル指定と同じように、
列記号行数
Cellsでは、
行数, 列数
このように指定します。
とても間違えやすいのですが、慣れてください、慣れるしかありません。

ただ、少しだけエクセルでは親切なところがあって、
Cells(行数, 列記号)
次のような書き方が出来ます。



これを実行すれば、



このような結果になります。
ただし、Cellsにおいて列記号での指定は補足的なものです。
これから他の人の書いたマクロを目にすることも多くなると思いますが、列記号での指定は限定的にしか使われません。

さて、
RangeもCellsも説明しました、これでセルの指定が終わりかというと・・・
もう少しだけあります、そして、ちょっと難しくなります。

ここまでは、1つのセルだけに値を入れました。
複数ノセルに値を入れたい時は・・・
さらに追加して書いていきます。

range("A6:C6")="一括入力"
Enter




実行結果は、



Rangeの中に指定するセル範囲は、シートでの計算式と同様に、
開始セル:終了セル
これでセル範囲を指定できます。
これは、シートの計算式でセル範囲を指定するときの書き方と同じ書き方になりますので理解しやすいはずです。

さらに、このような書き方もします。

range(cells(7,1),cells(7,3))="一括入力2"
Ente
r



実行結果は、



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("A6:C6") = "一括入力"
Range(Cells(7, 1), Cells(7, 3)) = "一括入力2"

「これなら、上の指定の方が簡単だよね!」
その通りなのですが、マクロをいろいろ書いていくと、上のRangeだけの指定では都合が悪い場合が出てきます。
その為にも、今のうちに基本中の基本である、セルの指定については、しっかりと覚えてください。

Rangeは、範囲の意味の英単語です。
従って、範囲を指定する最後の一括入力のようなセル範囲を指定する場合は、Rangeでしか書くとが出来ませんので、当然Rangeを使います。
それ以外で、単一のセルを指定する場合ですが、
基本はCellsです。
ただし、シート上で今後移動する可能性の少ない固定位置のセルを指定する時は、Rangeも使います。
つまり、このセルなんだという、セル位置を明確にしたい場合です。
そのような場合は、セル番地を文字で指定できるRangeの方が、後々見やすいだろうという事です。

※※※ まとめ ※※※

基本は、Cells
複数セル範囲を指定する時は、Range
移動しない固定セルを指定する時は、どちらでも良いがRangeの方が見やすい

今は、これで覚えてください。
今後も、セル指定はずーと出てきます、色々とでてきますので、都度解説します。





同じテーマ「ExcelマクロVBA再入門」の記事

第2回.マクロを書いて動かす(SubとF5)
第4回.セルの値を使って計算する(四則演算)
第5回.同じ計算を行数分繰り返す(For〜Next)
第6回.表の先頭から最終行まで繰り返す(ForとEnd(xup).Row)
第7回.セルの値によって計算を変える(ステートメント)
第8回.表範囲をまとめて消去する(OffsetとClearContents)
第9回.関数という便利な道具(VBA関数)

新着記事 ・・・新着記事一覧を見る

スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)
表示の固定|Google Apps Script入門(12月24日)
グラフ|Google Apps Script入門(12月21日)
入力規則|Google Apps Script入門(12月13日)
並べ替え|Google Apps Script入門(12月12日)
メモの挿入・削除と改行文字|Google Apps Script入門(12月6日)
リンクの挿入・編集・削除|Google Apps Script入門(12月6日)
セルに数式を入れる|Google Apps Script入門(12月1日)

アクセスランキング ・・・ ランキング一覧を見る

1.RangeとCellsの使い方|ExcelマクロVBA入門
2.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.CSVの読み込み方法|ExcelマクロVBAサンプル集
9.変数とデータ型(Dim)|ExcelマクロVBA入門
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • セルに数字や文字を入れる(RnageとCells)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP