超初心者でもわかるエクセルVBA(マクロ)

セルに文字(値)を入力する

では、早速簡単なプログラムを書いてみましょう
VBE(プログラムを書きこむ画面)を開いてください。わからない方はVBAはどこに書く?を参照してください
Module1が選択されていることを確認して

赤い枠のエリアに下記のようにプログラムを入力してください

Sub sample1()
Worksheets(1).Cells(1, 1) = "hello"
End Sub

入力が終わったら早速実行してみましょう
通常のエクセルの画面を開き、マクロをクリックします

sample1が選択されていることを確認して実行をクリックしてください

helloと表示されれば成功です

では、それぞれの命令がどんな意味を持っているのか解説していきたいと思います
1行目のSub sample1()はsample1という名前の処理のまとまり(プロシージャと言います)を作るよ。という命令になります
2行目のWorksheets(1)の部分はワークシート番号1番を指定する命令です。ワークシートの番号は一番左が1番、隣が2番という
ように左から番号が振り分けられています

.Cells(1, 1)は表示するセル(行番号1、列番号1)を指定する命令です

お使いの環境によっては列番号がアルファベットになっているケースもあります
数字の方が見やすいという方はファイル→オプション→数式→R1C1参照形式を使用するにチェックを入れると
上記の画像のように列番号を数字に変更することができます

= "hello"はhelloという文字を入力(表示)しなさいという命令になります
3行目のEnd Subはsample1という処理のまとまりの終わりだよ。という命令になります

もう一つやってみましょう
先ほど入力したプログラムに
Worksheets(1).Cells(3, 1) = 1000を一行追加します

実行してみてください。下記のようになれば成功です

ワークシート番号1番の行番号3、列番号1に1000という値を入力(表示)しなさいという命令です
今回は数値のため1000をダブルクォーテーションで括っていません
VBAでは文字列は"hello"のようにダブルクォーテーションで括る、数値はダブルクォーテーションで括らずそのまま扱う
というルールがあることを覚えておきましょう

チャレンジ[実際に書いてみよう!]
先ほどのプログラムを全部消去した後、sample2という名前で
ワークシート番号1番の行番号2、列番号3にVBAという文字を
ワークシート番号2番の行番号5、列番号5に123という値を入力するプログラムを書いてみましょう

答え

実行結果(sheet1)

実行結果(sheet2)

補足:上記の例ではWorksheets(1).Cells(1, 1) = "hello"という表現を使用していますが
正式にはWorksheets(1).Cells(1, 1).Value = "hello"とセル番号の後ろにValueを付けます
Valueは省略しても同じ働きをするため、今回は説明をより簡潔にするため省略した記述を使用しました


前の記事へ ホームへ戻る 次の記事へ
©2023 TSM-engineering.