マクロ記録でVBA
複数セルに文字を入れる

Excelマクロの自動記録を使って、エクセルVBAの初心者向け入門解説
公開日:2013年5月以前 最終更新日:2013-02-18

第3回.複数セルに文字を入れる


前回作成したマクロです。


Sub Macro1()

  Range("A3").Select
  ActiveCell.FormulaR1C1 = "マクロを書いたぞ!"

End Sub


さて、おそらく誰でも思う事は、1行で書けないのかってことだと思います。


書けます!


Range("A3").Select
は、セルA3を選択し、アクティブにしています。

そして、

ActiveCell.・・・

つまり、ここでのアクティブセルとは、A3になる訳です。

これを消しこみます。

Range("A3").Select
ActiveCell
.FormulaR1C1 = "マクロを書いたぞ!"

このように、Select=ActiveCellなのですから、

同時に消しこめるのです。

結果、

Range("A3").FormulaR1C1 = "マクロを書いたぞ!"

となります。

Range("A3")のFormulaR1C1に"マクロを書いたぞ!"を入れる

になります。


では、マクロを実行してみて下さい。

ちゃんと、A3に「マクロを書いたぞ!」と入りましたよね。



次は、複数セルに同時に同じ文字を入れて見ましょう。


1.「マクロの記録」を開始

2.セルA1~セルB2をドラッグで選択

3.「複数セルに一括入力」と入力し、Ctrl+Enter

4.「記録終了」


では、マクロの中身をみてみましょう。




Sub Macro1()
'
' Macro1 Macro
'

'
  Range("A1:B2").Select
  Selection.FormulaR1C1 = "複数セルに一括入力"
  Selection.Characters(1, 2).PhoneticCharacters = "フクスウ"
  Selection.Characters(6, 2).PhoneticCharacters = "イッカツ"
  Selection.Characters(8, 2).PhoneticCharacters = "ニュウリョク"
End Sub

前回同様、読み仮名の行は無視して、削除します。


まずは、

Range("A1:B2")

見た通りではありますが、

セルA1~セルB2の方形のセル範囲(A1,A2,B1,B2の4つのセル)の指定になります。

Range("開始セル:終了セル")

ですね。


そして、次が、前回とちょっと違いますね。

前回は、

ActiveCell.FormulaR1C1

だったのに、

今回は、

Selection.FormulaR1C1

となっています。

ActiveCellは1つのセルです。

複数選択した場合は、最初に選択したセルで、バックが白いままになっているセルです。

これに対し、今回は、

Range("A1:B2").Select
で選択したセル範囲全てに対して、文字を入れています。

そこで、ActiveCellではなく、Selectionとの記述になっています。

前回も、Selectionでも良かったのですが、「マクロの記録」がActiveCellと記録しただけです。


これ、もうお分かりですよね。

Selectionが消しこめます。

Range("A1:B2").Select
Selection
.FormulaR1C1 = "複数セルに一括入力"

結局、

Range("A1:B2").FormulaR1C1 = "複数セルに一括入力"

で良い事になります。


では、実際にマクロを起動して確認して下さい。

ちゃんと、A1~B2に「複数セルに一括入力」と入りましたよね。



おそらく、ずーと疑問なのが、FormulaR1C1ですよね。


ちょっとウザイ気がします。


そもそも何者なんだってことですね。


身元の詮索は止めましょう。(笑)


詮索せずに、消えてもらいましょう。


そうです、

Range("A1:B2") = "複数セルに一括入力"

これだけでやってみましょう。


どうでしたか、ちゃんと動きましたよね。


つまりは、不要ということです。


ではなぜ、不要なものが、「マクロの記録」で作成されているのかって、聞きたいですか。


それは、そのうち説明します、今はとにかくFormulaR1C1はいらないのです。



ではさらに、とびとびのセルにもじの一括入力をしてみましょう。


1.「マクロの記録」を開始

2.セルA1を選択
3.Ctrlを押しながら、セルA3、セルA5を選択

3.「とびとびセル」と入力し、Ctrl+Enter

4.「記録終了」


では、マクロの中身をみてみましょう。


Sub Macro2()
'
' Macro2 Macro
'

'
Range("A1,A3,A5").Select
Range("A5").Activate
Selection.FormulaR1C1 = "とびとびセル"
End Sub


Range("A1,A3,A5").Select
今度は、とびとびのセルの指定です。

,」(カンマ)で区切って、複数のセルを指定します。


また、変なのが出てきました。

Range("A5").Activate
これは、どのセルをアクティブにするかの指定です。

ドラッグで複数セルを選択した場合は、最初のセルがアクティブセルになっています。

しかし、

Ctrlを押しながらの選択は、最後のセルがアクティブになるのです。

これを、VBAで書くとこうなるのです。

そして、結局のところ、文字を入れる事には、関係が無いと言う事です。


すると、もう大丈夫ですね。

Range("A1,A3,A5").Select
Range("A5").Activate
Selection.FormulaR1C1
= "とびとびセル"

つまり、

Range("A1,A3,A5") = "とびとびセル"
で良い事になります。


では、実際にマクロを起動して確認して下さい。

大丈夫ですよね、ちゃんと入りましたよね。



今回は、いっぱい覚えちゃいましたね。


整理しておきます。




Range("A3").Select
ActiveCell.FormulaR1C1
= "マクロを書いたぞ!"

Range("A3") = "マクロを書いたぞ!"

Range("A1:B2").Select
Selection.FormulaR1C1
= "複数セルに一括入力"

Range("A1:B2") = "複数セルに一括入力"

Range("A1,A3,A5").Select
Range("A5").Activate
Selection.FormulaR1C1
= "とびとびセル"

Range("A1,A3,A5") = "とびとびセル"


大分わかってきましたでしょうか。


もう文字をいれるだけなら、大丈夫でしょう。


でもねー、同じ文字ばかり入れてもねー・・・


おっしゃる通り、意味無いです。キッパリ


次回はVBAらしく、変化のある入れ方をしましょう。





同じテーマ「マクロの記録でVBA」の記事

マクロの記録で覚えるVBA
第1回.マクロを記録して実行
第2回.セルに文字を入れる
第3回.複数セルに文字を入れる
第4回.連続数値を入れる
第5回.100マスに数値を入れる
第6回.別のシートにコピーする
第7回.別のシートにコピーする2
第8回.計算式を入れる
第9回.計算式をコピーする
第10回.計算結果を入れる


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

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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