こんにちはののです。
本日よりExcelのツールを作ります。
Pythonとかもありますが、まずはVBAを使って学びます。
理由はExcelさえあればすぐにプログラミングができるからです。
今後どんどん使い勝手の良いツールを作っていこうと思っていますよ。
こちらは、自己紹介>運営方針>チャレンジ企画の内容となります。
良かったらこちらもご覧ください。
自己紹介・目標について - 知的財産アンテナ 〜当たり前なこと〜
ExcelのVBAの使い方について
Excelはインストール当初は開発することができないため、設定を変更し、マクロ使えるようにすることと、開発メニューを開くようにしないといけません。
手順:
1. エクセルを起動する
2. オプションを選択する
「Excelのオプション」画面が開く
3. リボンのユーザー設定の開発のチェックボックスをオンにする
これをやるとメニューに開発メニューが表示される。
4.ファイルで新規ページを作成する
5. 開発メニューを選択
6. マクロを選択する
マクロ画面が表示されるので、マクロ名のところに適当な名前(行う処理名)入力する。
※今回はtestと入力
入力が完了すると、作成ボタンがアクティブになるので押下する。
セルに値を入力してみよう
プログラムでA1に10という数字を入力するプログラミングを書いてみましょう。
例えば、Range("A1").Value = 10と入力します。
Range("A1")というのはA1セルオブジェクトということを意味します。
Valueはプロパティを意味します。
オブジェクトにはオブジェクトに適した処理だったり、値だったりを入力することができます。
Valueは値という情報を管理するものなので、そこに10を入力してあげるというのが上記のコードとなります。
これができたら実行してみましょう。
画面上の実行(R)を選択し、「Sub/ユーザーフォームの実行」を選択してみましょう。
そうするとマクロ画面が立ち上がりますので、実行(R)ボタンをおしてください。
A1セルに10が入力されたと思います。
セルに入ってる値を取得してみよう
Range("A1").Value = 値で値をA1に入れられることを説明しました。
今回は、B1セルに入力されている値を取って、A1に入力してみましょう。
セルに入ってる値を見ることをセルの値を参照すると言いますが、こちらの方法は、入力時と同じです。
Range("B1").Valueに20という値が入っています。
これをA1に入れましょう。
Range("A1").Value = Range("B1").Value
これをやると、A1セルが20に変わると思います。
条件によって値を入力するかどうかを決めよう
A1の値がB1の値よりも小さい場合は置き換えるプログラムを書いてみましょう。
条件式を決めるには、If分を使います。
英語でもifはもし~ならばなのでわかりやすいですよね。
If 条件 Then
条件満たす処理
Else
条件満たさない時の処理
End If
で書いていきましょう。
今回は、A1の値がB1の値よりも小さいときなので、
Range("A1").Value < Range("B1").Valueを条件の部分に入れましょう。
条件を満たす処理のところに先ほどの内容を記載
条件を満たさない時はわかりやすくするためにA1にエラーという文字列を記載しましょう。
---
If Range("A1").Value < Range("B1").Value Then
Range("A1").Value = Range("B1").Value
Else
Range("A1").Value = "エラー"
End If
---
A1セルの値をいろいろ変更して試してみてください。
最後に
これができるようになると、値を見て、どうするということができるようになります。
セルはオブジェクトで、オブジェクトには値を管理するプロパティといわれるものがあるということを説明し、入力と取得もやりました。
条件を見てどうするということもやれるようになりました。
次回は繰り返しをやろうと思います。
繰り返しができるようになると、いろんなツールが作れるようになりますので、いろいろとやってみようと思います。
良かったら今後ともよろしくお願いいたします。