セルの文字を読込むエクセルマクロを作成してみる
エクセルはセルにデータや文字等を書き込んだり、書き込んであるデータを読んだりすることが多いですが、ココではデータの読み書きを行えるマクロを例に記載しようと思います。
セルの書き込みと読み込みは、いくつかの方法(コード)が有りますが、自分が便利と思うコードを記載しておきます。
やり方は色々とあるので他でも調べていただき、自分に合ったやり方をしてください。
こちらのページも参考になれば幸いです。
1・セルに文字を書き込むマクロを準備
「エクセルのお勉強(HOME)」の「セルに文字を入れるエクセルマクロを作成してみる」を参照ください。このマクロに追記してセルA2に「テスト読込」と文字を書き込む場合を記述します。
※B1にテストと書き込むだけでも良いです。
2・セルの読込みと、書き込むマクロを記述
コードはSub test1()のEnd Subの下から記載していきます。関数名はSub test2()とします。
(例)
Sub test2()
Dim 列, 行 As Variant
Dim read As String
列 = 2
行 = 1
read = Cells(行, 列).Value
列 = 列 - 1
行 = 行 + 1
Cells(行, 列).Value = read & “読込”
End Sub
(解説)
・Sub test2()
関数の名前です。Sub ***()で***が関数名になります。
・Dim 列, 行 As Variant
物(数字)を入れる箱をイメージしてください。
ココでは列と行という名前の箱を用意します。(数値をいれるエリアを定義します。)
・Dim read As String
物(文字)を入れる箱をイメージしてください。
ココではreadという名前の文字を入れる箱を用意します。(文字をいれるエリアを定義します。)
・列 = 2
列の数値を代入します(B列)
・行 = 1
行の数値を代入します(1行)
・read = Cells(行, 列).Value
セルに書き込まれている文字をreadという箱に文字を入れます。
・列 = 列 - 1
列の数値を減算します(B列からA列にしています)
・行 = 行 + 1
行の数値を加算します(1行から2行にしています)
・Cells(行, 列).Value = read & “読込”
セルを読み込んだreadの中身(テスト)と「読込」という文字を結合して「テスト読込」という文字をセルに書き込んでいます。
・End Sub
Sub test2()の終了を意味します。
★POINT
ココで重要なのは行、列のコントロールと読込んだ文字に文字をさらに追加できることです。また、行、列のコントロールは加減算でコントロールでき、セル位置が指定できます。3・ブレークポイントを設定しましょう
マクロを記述すると以下にようになり、関数名の左側でマウスをクリックすると行の色が変わり●が付きます。ここがブレークポイントとなります。プログラムを走らせると停止する部分です。
※test1の関数処理を終了しておいてください。
4・プログラムを起動してみましょう
カーソルをSub test2()に持っていき、赤丸を押下するとプログラムが動作し、ブレークポイントで行の色が変わり矢印が表示されプログラムが停止します。5・プログラムをステップで進めていきましょう
4番でプログラム停止後、キーボードの「F8」を押下すると、矢印が1行づつ進んでいきプログラムが進んでます。「F8」を何回か押して矢印を「End Sub」の行まで進めてみましょう。
もう一回「F8」を押下してEnd Subから抜けましょう。(色と矢印を消してプログラムを終了しましょう)
★POINT
ココで重要なのは、読込んだデータを確認でき文字を追加できること、列や行を加減算するだけでセルの位置を移動できることです。