プログラミングでやることは、すべて手でできる

「プログラミングをやるなら何からやればいいですか?」と聞かれることが多いです。
プログラミングをやるかどうかの考え方についてまとめてみました。※カフェにて by Leica Q

プログラミングやるなら Excel マクロ(VBA)

仕事でプログラミングをやるなら、Excelマクロ(VBA) をおすすめしています。
仕事で Excel を使っているかと思いますので、それならばそのExcelを効率化できるプログラミングが役に立つ可能性は高いからです。
RPA、PythonでもExcelの効率化をできなくはありませんが、Excel マクロだと、ExcelでAlt+F11を押せば、すぐにプログラムを書き始めることができます。

新規のExcelファイルを開き、Alt+F11(Altキーを押しながらF11キー押す)で、
image

このようなソフト(VBE)が開きます。
Alt→I→M(Alt、I、Mと1つずつ押す)または、メニュー→[挿入]→[標準モジュール]をクリックしましょう。

Sub test()

Range("a1", "a" & Rows.Count).Value = 1

End Sub

 

image

グレーの部分が白くなりますので、次のプログラムをコピーして貼り付けます。
Sub〇〇の行と、End Subの行のいずれかにカーソルを置き、F5キーで、プログラムが実行されるので、Excelを確認してみましょう。

image

セルA1からセルA1048576まで、1が入力されます。

image

F5キーを押して次のようなボックスが出るときには、[実行]をクリックしましょう。

image

他のプログラミングは専用のソフトが必要だったり、初期設定が必要だったりして、それだけでも敷居が高いものです。
マクロは昔からあり、プログラミング言語としては古いものではあるのですが、だからこそシンプルな部分もあるので、やはりおすすめしています。

 

効率化してこそプログラミングの元が取れる

ただ、なぜプログラミングやるかは考えたほうがいいでしょう。
なぜなら Excelマクロを始める敷居が低いとしても、その先はそれなりに困難な道のりだからです。
(世の中すべからくそうですが。敷居が低くて誰にでもできるものがあれば、世の中の人すべてが効率化できています)

自分の思ったとおりに効率化するには、それなりのトレーニングが欠かせません。
プログラミングを書くだけであればそれほど難しくないかもしれませんが、そのプログラミングを使って、仕事を効率化するというところが、長く険しい道のりだからです。

たとえば速く走れる靴を手に入れたとしても、それに見合った走り方を学ばなければいけませんし、なによりも、泥でぬかるんだ道であれば速く走ることができません。

仕事上であれば効率化の考え方や割り切りを身につけつつ慣れつつ、道を整備することが必要なのです。
道を整備するというのは、たとえば
・Excelファイルのつくり方
・規則正しく人間がルール通りにデータを準備する
・プログラミングに合わせて仕事のやり方を変える
などといったことを意味します。

プログラミングを学べばすぐに効率化できるわけではなく、仕事の全体を見渡してあらゆる角度から最適化するということが必要なのです。

また、プログラムを実行してエラーが出た場合それをどう対処するか。
たとえば、先ほどのプログラムを消して、次のプログラムをコピーして貼り付けてみましょう。

Sub test2()

Range(a1", "a" & Rows.Count).Value = 1

End Sub

このように、赤になります。
赤はエラーで、プログラムに何か問題があるということです。

image

・なぜエラーが出るのかそれを見つけることができるか
・エラーを修正しつつ試行錯誤できるか
そして
・エラーを恐れずプログラムを書き、エラーを恐れず実行できるか
といったことが求められます。

何よりもそのプログラムを速く書けるかどうかも大事であり、タッチタイピングは欠かせません。
Excelマクロは敷居が低いほうとはいえ、それでもExcelとExcelマクロを書くソフト(VBE)をいったりきたりするのにAlt+F11を押せるかどうか、
ウィンドウを左右に並べて、プログラムを効率的に書くことができるかどうか
などという操作を速くする工夫も必要です。

 

プログラミングでできることは手でもできる

プログラミングして効率化するには、それなりの時間とトレーニング、慣れが必要です。
その長い道のりと効率化をどう考えるか。
(その最初のとっかかりをスムーズにしていただくためにセミナーをやったり本やブログで書いたりしていますが)。

どのプログラミングをやるかというよりも、プログラミングの費用対効果をまず考えたほうがいいでしょう。
そこで考えておきたいのは、「プログラミングでできることは手でもできる」ということです。
人にもできないようなことを魔法のようにやってくれるわけではありません。
先ほどの事例でいえば 「セルA1からセルA1048576 まで1を入れる」というのは人の手でもできます。

もちろん1つずつ入れるのは大変ですので、コピーを使うでしょうが不可能ではありません。
1つのExcelシートから100社の請求書をつくるということも、Excelマクロで効率化してボタン1つで自動化できますが、時間をかければ人の手でもできることです。

・ボタンひとつで瞬時に終わらせるか
・人の手で間違えるリスクを感じながら毎月同じ操作を繰り返すか
どうかの違いです。

ひょっとすると、毎月同じことを繰り返しやったほうがいいのかもしれません。

私は同じことをやるのが好きではないので、多少、今の犠牲を払ってでもプログラミングを学ぶ道を選びましたし、今もそうしています。
中長期的には効率化できるのは、もちろん短期的に考えても成果が出る可能性があったからです。

今でも新たなプログラムを書くときは、「仕事をこなして売上を上げる時間」を削ってでも取り組んで効率化しています。
効率化しないと、自分の手でやらなければならず、ひとりでやっていますので誰かに頼むわけにもいきません。
仮に自分でやってもそんなに時間がかからないこととしても、メンタルを削がれます。
めんどくさいなあと思ったり、退屈だなぁと思ったりすることは、他の仕事をやる上で、いい影響はありません。
ぱっと切り替えることができればよいのでしょうが。
(気分転換に単純作業がいいという話もありますが)

だからこそ、私はプログラミングで効率化しています。
勤め始めた公務員で、早く帰りたいがために独学で覚えた Excel マクロは20年以上使ってきました。
(当時は統計用のプログラミングソフトも使っていました)

その他いろいろと手を出しつつも、今は、Excelマクロ、Google Apps Script(GAS)と RPA(UiPath)、Pythonなどを使っています。

プログラミングの使いどころ。Excelマクロ(VBA)、GAS、RPA(UiPath)。 | EX-IT

私の効率化人生で、最も大きな効果があったのは、やはり Excel マクロです。
これがなければ早く帰れなかったでしょうし、時間をつくれず税理士試験にも受からなかったでしょうし、独立もできなかったでしょう。
そして今、時間管理ができているのも、Excelマクロのおかげですし、新たなプログラミングスキルを身につけることができるのも、そのおかげです。

私は
・早く帰りたい
・仕事を早く終わらせたい
・繰り返しの作業は嫌だ
という思いでプログラミングを勉強し、今もそうしていますが、そういった思いがあれば、プログラミング習得までの道も耐えられるでしょう。

限られた人生、効率化できることがしておきたいものです。

その覚悟ができてから、プログラミングを勉強してみればいいと思いますし、もしはじめるなら、Excelと親和性が高いExcelマクロをおすすめします。



■編集後記

昨日は、リハビリの日。
事故の6月5日から5か月。
今でも軽く走れそうなのですが、11月末の検診を受けてからにしようと思っています。

「1日1新」

ソニーストアで買い物

 

■娘(2歳)日記

起きないのでアナ雪を再生したら、飛び起きて夢中で見ていました。

夢中すぎて朝出るのが遅れましたが……。
「ままの~ままで~」と『ありのままで』を歌ってたりします。

Spread the love