Excelで効率化するなら、Excelマクロのスキルは必要だと感じトレーニングしています。
超入門編として、じぶんなりのポイントをまとめてみました。
Excelを使って効率化
インプットだけをしていても、アウトプットをしないことには、スキルも磨かれていきません。
それを考えると、仕事をしながらでもアウトプットがしやすいパソコンのスキルは、独立前であったとしても身につけやすいと言えるでしょう。
とくにExcel。使わない日がないというくらい日々使っているツールの1つです。
ピボットテーブルでも集計はラクになりますし、データを使う前提なら使わない手はない機能でしょう。
そんな中、独立後になって使うようになったのがExcel VBA。
マクロで処理できるようになれば、効率化の裾野を広げることができます。
それに、プログラミングを書くということ自体の必要性も感じたこともきっかけの1つです。
マクロを書けるようになれば、仕事に役立つのはもちろん、AIや他のスキルとの応用もきくだろうと感じたからです。
過去にも記事にしてみようかと試みたこともあるのですが、ここにきてようやく…。
とはいえ、こういうジャンルは先人も多くツワモノ揃い。ブログにあえて書くというのは気合いもそれなりに必要になります。
ただ、じぶんの中で「今さら」は禁句。
アウトプットの場は多い方がいいと考えて、書くことにしました(前置き長い…)。
マクロを書く設定
マクロを使うとどんなことができるのか。
ChatGPTに聞いてみましたが、まあ、なんとなくそうだろうなぁという回答が。
ChatGPTさんの答え > >
実際には、手を動かして体験してみるとわかります。
それにはまず、Excelの設定が必要です。
大きく分けると次のような設定です。
[開発]タブの表示
まず、マクロを使えるようにするため、[開発]タブを表示させます。
Excelを起動して、[ファイル]→[オプション]とクリックし、
[リボンのユーザー設定]で[開発]にチェックを入れておきます。
このように[開発]タブが表示されていれば大丈夫です。
ファイル保存形式[xlsx]→[xlsm]へ
書くマクロを使えるようにするために、ファイル形式を変えておきましょう。
[名前を付けて保存]→[Excelマクロ有効ブック]に変えて保存しておきます。
セキュリティレベルの設定
Excelファイルを開いたときのセキュリティの設定です。
同じく、Excelの[ファイル]→[オプション]から[トラストセンター]を選び、[トラストセンターの設定]をクリック。
「警告して、VBAマクロを無効にする」にチェックします。
「Alt」+「F11」→ VBEを起動→マクロを書く
次にマクロを書くための画面の準備です。VBEと言われるものです。
「Alt」+「F11」のショートカットキーでこのVBEを呼び出してみましょう。
すると、Excelとは別にこのような画面が起動します。
ここで「Alt」→「I」→「M」と(順に押しっぱなしで)操作すると、このような白い画面が表示されます。
ここにマクロを書いていきます。
このVBEの画面でもいくつか設定しておきます。
まず[ツール]→[オプション]から[編集]タブを開いて、「自動構文チェック」のチェックをはずし、「変数の宣言を強制する」にチェックを入れておきます。
次に[エディターの設定]タブに移り、キーワードの前景やフォント名、サイズなどを設定しておきます。
同じように拡張子についても設定を変えておきましょう。
で、VBEを「Alt」+「F11」で閉じます。開くときと同じです。
小さくはじめてみるつもりでマクロを書いてみる
それでは「Alt」+「F11」でVBEを起動して、白いキャンバスにマクロを書いていくとします。
まず最初に「sub test」と入力してEnterを。
すると、このように「End sub」まで自動で入力されます。フォントの色も先ほど選択した色になっているのが確認できます。
このSub testとEnd Subの間にマクロを書いていきます(Sub testがタイトル、End Subが編集後記だと思っていただければ)。
「B3セルに3を表示する」というマクロなら、
Range(“B3”).Valie=5 と書きます。
セルB3を「” “」と囲うのは、「文字ですよ」と指示するためです。
書き始めにスペースを空けているのは、書いたマクロ部分を分かりやすくするためです。
すべてを書かなくても、このように、候補が出てくれアシストしてくれます。
実行するには「F5」をクリック。すると、セルB3に「5」が表示されたのがわかります。
ほかにも、「Cells(6,2) = 5 * 5 」という書き方もあります(2はB、つまり2列目を意味します)。
すると、このようにセルB6に「25」が表示されました。
こういった指定をしてあげても、「F5」をクリックすると一瞬です。文字も数式も色を変えることもできます。
最後に連続するデータを入力するという指示を書いてみます。
「For Next構文」というもので、指定した範囲で入力を繰り返すというものです。
こんな指示を書いてみました。
・A列に「雪降りすぎ」
・B列に「道路べちゃべちゃすぎ」
・C列に「やまちゃん元気?」
・A~C列を3行目~15行目まで繰り返し書いて
書いたのはこういったものです。
Sub fornextで繰り返す()
Dim i As Long
For i = 3 To 15
Range("A" & i).Value = "雪降りすぎ"
Range("B" & i).Value = "道路がべちゃべちゃすぎ"
Range("C" & i).Value = "やまちゃん元気?"
Next
Cells(18, 1) = "札幌"
Cells(19, 2) = "ラーメン"
Cells(20, 3) = "ルウールルルゥ"
End Sub
「 i 」は変数と呼ばれるもので、「3 To 15」で3~15行目まで繰り返します。
「セルA1、A2・・・A15」、「セルB1、B2・・・B15」、「セルC1、C2・・・C15」というイメージで。
あと、マクロは実行すると、「Ctrl」+「X」で戻ることができません。
なので、実行前には「Ctrl」+「S」で保存し忘れないように。
アウトプットしやすいのがExcelの良さ。
そのマクロの超入門。ChatGPTに教えてもらいながら実践で学べるのもいいところです。
■編集後記
昨日は朝のタスクと税務(個人、会社)を中心に。夜は読書と葬送のフリーレンをNETFLIXで(やっと追いつきました)。
■息子(9歳)
昨日は吹雪でしたが、送迎してくれるということで、お友達も通っているデイサービスに。
ただ、雪で道路状況が悪く渋滞、移動時間がけっこうかかったようでした。
息子は久しぶりにお友達にも会えて楽しく遊べたようです。
■昨日の1日1新
・塩わさびラーメン(セコマ)