エクセルで毎日のように繰り返し行なっている作業はないでしょうか?
もし繰り返し作業であればプログラミングを利用してExcel作業を自動化することができるかもしれません。
労働者の人口は年々減っており、今後も少ない人材でたくさんの仕事をこなす必要があります。
エクセルのプログラミングはそのほかのプログラミングと比べて取得難易度が低く、最初に学ぶ言語としては最適だと思います。
とは言っても、プログラミングでどんなことができるのか、どうやって始めれば良いのかが分からないと思います。
私も最初の頃の学習で苦労しました。どこから手をつけていいか悩んでました・・・
そこで、自分が苦労した経験を活かしてまずはエクセルのプログラミング(VBA)で、作業の効率化や自動化はどうやって行なっていくのかを説明します。
私は全くの未経験からExcelのプログラミング(VBA)を学び、50時間かけて行なっていた業務を30分に短縮することができました。
現在はITエンジニアとして働いていて、職員にExcelについて教えることも行なっています
なので、より未経験の方に寄り添えた説明ができると思います。
目次
エクセルのプログラミング(VBA)を始める前の初期設定
エクセルがインストールされているパソコンを用意する
ご自宅にエクセルがインストールされているパソコンがあるかどうか確認してみましょう。大抵は入っていると思います
Excelが見つからない場合、画面下の検索バーで「Excel」と検索して出てくるか確認しましょう
入っていない場合、購入する必要があります
保存形式をマクロ有効ブックへ変更
エクセルでプログラミングをするために開発タブを表示します
まずはエクセルを開きます
「ファイル」→「オプション」の順にクリック
Excelのオプションが表示されるので「保存」を選択し、「ファイルの保存形式」を「Excelマクロ有効ブック(*.xlsm)」にします
これでプログラミングを実行できる形式でエクセルを保存できるようになります
開発タブの表示
次に「リボンのユーザー設定」を選択します。
画面右側にタブ一覧が表示されるので「開発」タブのチェックをいれて「OK」を押します
ここまでは一度設定すれば、今後新しいエクセルファイルを作っても、そのパソコンでは再設定は不要です。
プログラムを書く画面を表示させる
ここ以降は新しくエクセルファイルを作るたびに必要な設定です。
もしうまくいかなかったら、一度エクセルファイルを保存しないで閉じ、再度ここからやり直してみましょう
開発タブを開く
先ほどの設定をしたことでエクセル画面の上側に「開発」タブが表示されます。
この「開発」タブを開き、「VisualBasic」を選択します
すると、別の画面が開かれます。
次はモジュールと呼ばれる、「コードを書くための画面」を表示させます
モジュールを追加する
画面左側で「Microsoft Excel オブジェクト」と書かれているところを右クリックし、「挿入」→「標準モジュール」を選択します。
そうすると画面左側に「モジュール」フォルダが作成され、その下に「Module1」が作成されていればOKです
これでプログラムを書くための画面を表示できました。
次は画面にコードを書きます
sub ⚪︎⚪︎ () を作る
次に白い画面の中にこのように書きます
Sub renshuu
subとrenshuuの間には半角のスペースが含まれます
この状態でEnterキーを押すとこのように書き換えられると思います
Sub renshuu()
End Sub
※ ちなみにrenshuuの部分はなんでもOKです。testとかkeisanとか、わかりやすいものに変えても良いです。実際に仕事で使用するときは何をするプログラムなのか分かるような名前をつけます
このSub renshuu()の行とEnd Subの間にプログラムは書いていきます。
この枠の外に書いてもうまく動かないので注意しましょう
これでプログラミングの前準備は終わりです。
次の章で実際にプログラムを書いて動かしてみましょう
エクセルのプログラミング(VBA)でできること
値の自動入力
まずは王道ですが値を自動で入力することができます。
Cells(2, 1) = 300
このように入力すると、「2行目1列目のセル(A2セル)」に300が入力されるようになります。
ちなみに下のコードのように書いても同じ意味です。しかしこの場合は、A2のようなセルの値を””(ダブルクォーテーション)で囲む必要があります
Range(“A2”) = 300
また、「今日の日付」のような毎日変わる値を入力することもできます
Cells(3, 1) = Date
このように入力すると、「3行目1列目のセル(A3セル)に今日の日付が入力されます)
これを利用すれば、毎回日付を入力するルーチンがあれば自動化できそうですよね
数値の自動計算
これはSUMのような関数でも行うことができますが、VBAでも数値の自動計算ができます。
例えば、このように入力してみましょう
Cells(4, 1) = Cells(2, 1) * 3
実行すると2行1列目を3倍した値が4行1列目に入力されます
次は割り算をしてみます
Cells(5, 1) = Cells(2 ,1) / 3
これなら割り算が行われますね
うまく動かなかった場合は、コピペをして動くか試してみてください
不要な行(列)の削除
エクセルの表の作業で「この行は要らないから削除しよう」と行をまとめて削除することがあると思います。
この行削除もプログラムすることができます
Rows(3).Delete
こう入力すると、3行目をまとめて削除することができます
列の場合はRowsをColumnsに変えます
Columns(3).Delete
Excelでよく行う行削除ですが、
「不要なデータを目で確認して見つけて、それを削除する」業務は結構大変です。
間違って必要なデータを消してしまうこともあると思います。
このような神経を使う作業はプログラムを組んで自動化してしまいましょう
更にプログラミング(VBA)を深めたいなら
プログラミング(VBA)を試してみて、
「もっとVBAに詳しくなりたい!」
そう思った方は、書籍を使って勉強することで学習スピードを加速できると思います
ネットで勉強するのも良いですが、本で勉強することでより全体的に学べると思います
ちなみに私がVBAを勉強するきっかけとなった書籍はこちらです
たった1秒で仕事が片づく Excel自動化の教科書
こちらはエクセルの自動化でできることを、初心者向けにとても丁寧に解説されています。
今回私が紹介したような初期設定の方法から、より実務寄りな内容まで幅広く網羅されています。
しかもこの本の良いところはコードがひたすら書いているのではなく、実際に業務で使用することを想定しながら解説しているので、「自分が仕事にどう活かすか」が頭に入ってきやすいです。
私もこの本をきっかけにプログラミング素人の医療者だった頃でも自分でプログラムを組んで、病院で患者さんに配布する資料を自動作成することができるようになりました。
リンクを貼っておきますので、気になった方はどうぞ。
IT化が進む世の中で、エンジニアでなくてもプログラミングの知識が求められてきています
そのプログラミング学習の第一歩として、まずは身近なエクセル作業を自動化できるVBAを学んでみるのはどうでしょうか?
この記事を読んでくれた皆さんがITの流れに乗り遅れずに、新しい知識・技術を身につけていかれることを願っています。