総務畑のエクセルマクロ  | 準備 | 記述基礎 | 文字入力 | 条件文 | ループ文 | メッセージ | 小技 | エラー |

文字入力教材(年齢計算ツール)をダウンロード

4: セルに文字を入力しよう

では、セルに文字を入力するVBA記述方法を覚えていきましょう。これから↑でダウンロードできるエクセル教材を参考にしながら取り組んで下さい。
どのようなマクロを作っていくのかは、ダウンロードしたエクセル教材に詳しく記述しております。

@セルに入力する記述は、Range("B1") = "文字列"  あるいは、Range("B1") = 変数

…例えば↑の例ではセル“B1”に文字を入力する記述方法です。
 そのまま文字列を入力したい場合は、""で文字列を挟みます
 変数の値を入力したい場合は、""を挟まずそのまま変数名を入力します。

Aここでひとつ、Dateという変数を使って、セル"B1"に現在の日付を入力してみましょう。
 Dateはマイクロソフトが用意した変数で、現在の日付を値として返します。
 記述基礎編で学習した手順を踏まえて、VBA記述欄に以下のように記述してみましょう。

Bでは↑の記述が終わりましたらエクセルに戻って、これまでのマクロをボタンに登録(記述基礎編参照)し、実行してみましょう。 セル“B1”に現在の日付が入力されましたでしょうか?
*変な5桁の数字が入ってしまった方は、セルの書式設定の表示形式を“日付”に変えてください。


5: セルの値を変数として読み込み、文字列を合成してみよう

次に、セルの値を変数として読み込み、新たな文字列を合成してみましょう。 なお、これから先はダウンロードしたエクセルファイルを真似して↓のようなシートを用意するか、 『短縮1』のシートを使用してください。なお、『完成形』ではA列および1行目は非表示になっていますので、再表示させてください。

@作成したい変数名= Range("変数にしたいセル座標").value

…↑と記述しますと、指定した座標の値が変数に格納されます。変数名は半角英数字なら何でも良いですが、“Date”のようにマイクロソフトが用意した 変数と名前がかぶらないようにする為、my〜を頭につけることをお勧めします。マイクロソフトが用意した変数の中でmy〜で始まるものはありませんので、 変数名が混同してしまうことがないからです。
なお、.valueは必ず付けてください。セルの情報には、値の他に、数式、書式、罫線、コメント等、様々な情報があり、どの情報を変数化するのかを はっきりさせる為に値の情報であるという意味の.valueを添加します。
↓では、現在の西暦、誕生月、誕生日をそれぞれmyYEAR、myMONTH、myDAYという変数に変換しています。

A↑のように、演算子“&”を使って、文字列や変数を連結し、新たな文字列を作成することができます

例)"ABC" & "DEF" ⇒ "ABCDEF"
 "ABC" & 変数(返り値は123)⇒"ABC123"
 変数(返り値は123) & 変数(返り値は456)⇒"123456"

では、実際マクロを実行するとどのような文字列が出来上がっているのか確認してみましょう。
見本では“計算”という名前のボタンにこのマクロを登録させています。
セル“E1”に、“現在の西暦/誕生月/誕生日”が入力されましたでしょうか。


6: 文字入力の裏技

@文字列記述と同じ要領で、 Range("座標") = "=数式" と記述しますと、数式やエクセル関数を入力することができます。 ↓では、実際年齢を計算する数式をセルG8に挿入する記述です。

結果は↓のようになりましたか?

ARange("座標") = "" と記述すると、セルの値が削除されます。要するに、2つの"の間に何も文字がないので、 文字がない情報が上書きされるからです。

↑では新たな初期化マクロというのを作り、記入したデータや表示されたデータを消去するマクロです。 『完成形』では“初期化”ボタンで呼び出されます。
ここで特記すべき情報として、C6:G6のように、":"を間に挟むとC6〜G6の範囲が選択されたことになります。 さらに、G6,G8のように間に","を記述することで複数の範囲まとめて選択することができます。

さて、以上で文字の入力ができました。年齢計算ツールも上手く作成できましたか?ツール内でも極力解説を加えるようにしいましたので、 うまく作れなかった方は解説を見ながら研究するようにしてみてください。
次は条件文に進んで、状況により命令を変更できる方法を学習していきましょう。