今回はEXCEL講座の第2弾です。
今回はVBAになりますが、こればっかりはいきなり実用性を求めることができないので今回のセミナーはすぐに使えるというより使い方講座だと思ってください。
応用は次回やります!!
VBAとは!?
VBAとはVisual Basic for Applicationの略でプログラミング言語です。
プログラミングと聞くと嫌な雰囲気を感じるかもしれませんが、他のプログラミングよりEXCEL VBAはとっつきやすいのでご安心を!!
じゃあなにやるの??ってことなんですが、普段やってるめんどくさい入力作業やデータ加工を自動でEXCELにやってもらうということが目的です。
それってワークシート関数で十分じゃない??とおもいますが、確かにそれですめばそのほうが手っ取り早いのでそれでOKです。
ただ、それで済まない場合というのがあります。例えば、シートを100個コピーするとか、自動で印刷するとか、そんなこともできてしまいます。
これって実用的だと思いませんか??
今回はそれを行うための基礎的な扱い方を勉強します。
まずは準備
※Microsoft Excel 2019での説明になります。バージョン違いは適宜調べてください。m(_ _)m
[ファイル]から[オプション]を選択してください。
[リボンのユーザー設定]を選択
[開発]にチェックを入れてください。
タブに[開発]がでてきたらOKです。
では試してみましょう
挿入を押して
[フォームコントロール]の左上のアイコンをクリックしてみましょう。
ボタン作成ができるので、適当なサイズで作成してください。
以下のような画面が出てきます。
[マクロ名]はこれから作成するプログラムの名前です。
何でも構わないのですが今回は[TEST]にしておきます。
その後に[新規作成]ボタンを押しましょう。
こんな画面が出ると思います。
次にここにプログラムを書いていきます。
プログラムを書いてみよう。
ではまず、以下の通りに書いてみましょう。
Sub test() Range("A1") = 123 End Sub
さきほど作成したボタンを押してみましょう。
A1に123が挿入されました。
Rangeは、セルの位置を指定できます。
Range以外にcellsというセルの位置指定もできます。
Sub test() Cells(1, 2) = 456 End Sub
以下のようになります。
cells(行,列)という意味になるので、1行目2列を指定しました。
繰り返し
同じような処理を繰り返すとき、for文を使います。
1から100までの数字をセルに代入してみます。
Sub test() For i = 1 To 100 Cells(i, 1) = i Next i End Sub
これを実行すると以下のようになります。
条件分岐
特定の条件において処理をさせたいとき、if文を使います。
例えば、さっきの繰り返しを行って、偶数の時には2列目に”偶数”と表示してみます。
Sub test() For i = 1 To 100 Cells(i, 1) = i If i Mod 2 = 0 Then Cells(i, 2) = "偶数" End If Next i End Sub
結果はこの通りです。
ちょっと遊んで色を付けてあげることもできます。
Sub test() For i = 1 To 100 Cells(i, 1) = i If i Mod 2 = 0 Then Cells(i, 2) = "偶数" '文字色を白にする Cells(i, 2).Font.Color = RGB(255, 255, 255) '背景色を青にする Cells(i, 2).Interior.Color = RGB(0, 0, 255) End If Next i End Sub
こんなかんじです。
ちょっとした応用
九九表を作ってみましょう。
for文だけで簡単に九九表が作れます。
Sub 九九表() For tate = 1 To 9 For yoko = 1 To 9 Cells(tate, yoko) = tate * yoko Next yoko Next tate End Sub
こんな感じの結果です。
保存の際は気を付けよう
VBAのプログラムはxlsmという拡張子で保存しないと消えてしまいます。
保存時は[EXCEL マクロ有効ブック]で保存しましょう。
本日はお疲れ様でした
模範回答はこちらです。
事業紹介
Pythonプログラミングの初心者向け講座やってます。
プログラミング学びたい方で、少人数でじっくり学びたい方!!
ぜひご覧ください!!
データ加工・整理、分析の請負をやってます。
学校向けにサービス展開してますが、企業さま向けにもサービス可能です。
御社の事業のなかで、データ整理や活用にお困りの場合はぜひご相談ください。
データベースの運用代行やシステム開発もやってます。
ぜひ友達登録お願いします!!