伊田生活ブログのロゴ
HOME  >  生活
カテゴリー : 生活 - 仕事
•VBA •Excel •業務効率化 •リスキリング



公開日:

技能習得としてのExcelVBAについて


img_2
2024-07-18

「自分にしかできない」というスキルは持っていないけど、今後、職場で役立ちたいと考える人は、エクセルで VBA を学んでみてはいかがでしょうか。


「窓際おじさん」は、「働かないおじさん」や「何もやってない人」、「座ってるだけの人」などとも呼ばれますが、以下の4種類に大別することができると思います。

  1. スキルがあって、バイタリティもある。
  2. スキルがあって、バイタリティはない。
  3. スキルがなくて、バイタリティはある。
  4. スキルがなくて、バイタリティもない。

ここでいうバイタリティとは、「今の職場にとどまりたい」という意欲のことを指します。また、スキルとは、業務に役立つ、他の人には簡単に真似できない技能、知識、経験のことを指します。

この記事の対象者は、「スキルがなくて、バイタリティはある」人となります。


たとえば、下図のようなエクセルデータがあったとします。

image 1

[ 画像1. エクセルデータ例 ]

 

B列には、2行目から6行目までアルファベットが入力されています。

ここで、B列の中から“D”という文字列を探して、その右のセルに”★”を記入するという作業があるとします。

その作業を行うVBAのコードを以下に示します。

'Option VBASupport 1

Sub a()
    For r = 2 To 5
        If Cells(r, 2) = "D" Then
            Cells(r, 3) = "★"
        End If
    Next r
End Sub

Sub a()を実行すると下図のように、"D" の右に "★" が記入されます。

"D"の右に"★"が記入された。

[ 画像2. コード実行結果 ]

 

上記の業務における作業は、「B列の2行目から6行目を順番に見ていき、"D" があったら右のセルに "★" を記入する」という単純な作業です。

これだけなら、わざわざVBAを使うまでもなく、目視と手入力でやってしまった方が楽です。しかし、行数が増えて、たとえば1000行までになったとしたらどうでしょうか。そのような時は、やはりVBAでコードを書いた方が、目視と手入力よりは効率的です。

行数を1000行までに拡張したい場合、Forの部分を以下のように書き換えます。

上記の作業内容は単純化したサンプルであって、実際に職場で行う作業内容は難しさも量もさまざまです。したがって、実際の作業内容に応じてコードを自分で書く(または、書き換える)必要があります。

とはいっても、いきなり複雑なコードを書く必要はありません。この記事で紹介したコードは極めて単純ですが、単純ゆえに理解が容易で、応用も利くのです。

まずは、簡単な単純作業を単純なコードで書いてみてはいかがでしょうか。


単純なエクセル作業を行うVBAのサンプルコードをご紹介しました。

生成AIが普及してきて、人間が行う "業務" のあり方が変化してきています。「生成AIにできることは生成AIにやらせる」というのが、今のビジネス界のトレンドとなっています。したがって、新たなスキルを習得し続けることが重要です。

人間の仕事が生成AIの仕事に置き換えられる中、役に立つスキルを習得することが求められています。スキル習得のテーマとして、VBAは適していると私は思います。