仕事でエクセルVBAでツールをつくらなくてはなりません。
でも、このことを思うとゆううつで、なにも考えられなくなります。手を着けられません。気が重くて仕方ありません。
元々プログラミングに苦手意識がありました。
この春から夏にかけて、はじめて小さなツールをつくりました。
ここでいろんな方に助けていただきながら、なんとか仕上げることができました。
しばらく遠ざかっていたんですが、先日また新しいものを作るよう指示を受けました。でも、全く手を着けられない。
知識がないため、うまくコーディングできないことと、その作業がなんとなく肌になじまないのが原因だと感じています。あんまり夢中になれません。
でも、エクセルなんてどんな仕事でも使うだろうから、ボタン一発でめんどい作業をかたづける技術があったなら今後どんな仕事に就いたとしても絶対トクだと思うんです。
だから克服したいです。
でも、どうしたらいいかわかりません。助けてください。
まとまらない文章で大変申し訳ありませんが、なにかアドバイスいただけないでしょうか。
お仕事でVBAのプログラミングを命じられるということで大変ですね。私でも頭が痛くなります。
自分で好きなことをやる分には苦痛に感じないのですが、業務となると話は別。
更に上司の指示とか納得のいくものというのはなかなか難しいです。
技術的なこととかそういうことではなくて、私が業務でVBAを作る場合に思っていることを参考までに。
動けばいい。
プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。
VBAを作る目的は、業務の効率化であるのだから動けばそれでよしとします。
ただ、大規模なコードや継続して使うものになると、後々の改良の為に見やすいコードにしたほうがいいかもしれませんが、
そもそもVBAにそこまでを望むのは荷が重いと言えます。
Excel自体に自由度が高いので使用者が想定外な使い方をする危険性は常にあるからです。
どこかで割り切らないといけないと言えます。
作り方が思いつかない場合はあえて作らない。
矛盾するかもしれませんが、作り方が思いつかなかったりやる気がおきない場合は作らないでみます。
そうして、マクロを作らないことで発生するExcelの作業を手作業で延々とやってみます。
たいていの場合は単純作業や面倒な作業を繰り返すことになり面倒だと感じるでしょう。
その面倒さが自動化したいというモチベーションになるわけです。
更に手作業で行うことで、作業の見通しがよくなり作りたいマクロが見えてきたりします。
少し楽をする為なら、たくさん努力する。
業務で使われるVBAでは怠け者ほど素質があると思います。
Excelで仕事をしていて作業が面倒くさいから自動化すれば楽だなと思ってマクロを作る場合がほとんどです。
ほんの少し効率化するために、時間をかけて書籍やネットでたくさん調べて何倍も時間がかかってしまうこともよくあります。
そうして調べたことは自分の知識となるので次に同じような物を作るときの役にたつでしょう。
楽をしたいという気持ちが向上心となるわけです。
最近だと、はてなの回答で表組みを作るのが面倒だなと思って、Excelで作った表をそのまま載せられたら楽ということでコードを書いてみたことがあります。
http://d.hatena.ne.jp/SALINGER/20090728
実際の回答でとても役にたっています。
技術的なことでわからないことは、たいてい同じところでつまづく人がいるもので、ネットで調べるとすぐ解決する場合がほとんどです。
それでもわからないことは、人力検索で質問していただければ私を含めここで回答しているような方々がお役にたてるかもしれません。
その場合は、Excelのスクリーンショットなど、具体的な図があると解決により近づけると思いますよ。
どんなにExcelVBAを愛する人でも、分からない時や思い通りにならない時はやる気がなくなると思います。
自分の事を考えると、やる気がなくなる原因として以下が考えられます。
- Excel特有の命令を調べなければならない時(オブジェクトにアクセスするとか)
- セル・シート・ブックを横断する繰り返し処理をどう記述するか分からない時
- バグが取れない時・意図した動作にならない
流行のアジャイルな開発方法にしてみてはどうでしょうか?
厳密な意味ではなく、とにかく動作優先で、
自分のプログラムが動く嬉しさを持続させながら
モチベーションを維持するという意味でです。
やる気が出るまで繰り返すべき習慣
- Googleで検索しまくって、自分の課題と似たような話題やコードを探す
- マクロの記録が使える操作は、どんなコードになるか試す
- マクロの記録で自動生成したコードを試行錯誤で組み合わせる
- 少し命令が増える度にとりあえず動かしてみる
どうしてもコーディングをしなければならない部分が出てくるし、
マクロの記録によって自動生成されたコードを見ると、
もっとシンプルなプログラムに書き換えたくなってくるはずです。
絶対にコーディングなんてしないぞ!という姿勢で作るのも良いかもしれません。
なるほど。そういう手もあるんですね!
まず、何が苦手なのか原因を明確にさせたほうがいいですね。
それから設計書を作りましょう。
設計書にはいろいろありますが、最初は 要件定義書。
まずは 要件定義書から作りましょう。
何をしたいか、どういった機能が必要なのか 洗い出しです。
それから 外部設計書。
次に詳細設計書。
これが出来てから、コーディング(プログラム)開始となります。
コーディング→デバッグ(単体テスト)→不具合があれば修正→デバッグ
→不具合がなくなったら結合テスト→総合テスト
という順になります。
最初の頃は、これらの手順どおりみっちりやれば(やれれば)
上達すると思いますよ。
まず、何が苦手なのか原因を明確にさせたほうがいいですね。
改めて考えてみました。
身近にお手本がないから、自分のやり方であっているのか不安なんだと気づきました。
コードの書き方は、多くの場合、ぐぐったり、ここで質問して解決できます。
でも、実際に現場で使われているマクロの全体像を見たことがないので、
何をどこまでどうがんばったらいいのかわかりません。
(それこそ、3人しか使わないけれど設計書は書いたほうがいいのかとか、
そもそもどうやって書くのか、とか。)
それに、自分が書いたコードはなんか汚いけど、
どこをどう直したらきれいになるのかわからないから
なんだか心配になるのだなあ、と思いました。
設計書。とりかかってみます。
まず、自分の頭の中が整理できそう。
これまでは、まずコアな部分のコードを書いて、
そこに少しずつ肉付けしていってました。
あちこちいじっているうちに、自分が何をしているのか
わからなくなることが度々あったので、チャレンジしてみます。
Excel VBA完全制覇パーフェクト 2007/2003/2002 対応
こちらを一度読んでみてはどうでしょうか
あ、これ持ってます!
1.書店に行きます
2.一番薄いEXCEL VBAの入門書を買います
3.書いてあるサンプルソースを全て自分で入力して動かします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
※ここがポイントです。必ず手入力します。
最初は呪文みたいでわからないと思いますが、写経のように
入力していきます。
そのうち、「○○のやり方は××ページに書いてあった」と
思い出せるようになります。
また、何度も入力しているとある時、「そういう意味だったのか」と判るようになります。
大抵の言語はこれで覚えられます。
なるほど。基本に戻ってみると、またやる気がわいてくるかもしれませんね。
お仕事でVBAのプログラミングを命じられるということで大変ですね。私でも頭が痛くなります。
自分で好きなことをやる分には苦痛に感じないのですが、業務となると話は別。
更に上司の指示とか納得のいくものというのはなかなか難しいです。
技術的なこととかそういうことではなくて、私が業務でVBAを作る場合に思っていることを参考までに。
動けばいい。
プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。
VBAを作る目的は、業務の効率化であるのだから動けばそれでよしとします。
ただ、大規模なコードや継続して使うものになると、後々の改良の為に見やすいコードにしたほうがいいかもしれませんが、
そもそもVBAにそこまでを望むのは荷が重いと言えます。
Excel自体に自由度が高いので使用者が想定外な使い方をする危険性は常にあるからです。
どこかで割り切らないといけないと言えます。
作り方が思いつかない場合はあえて作らない。
矛盾するかもしれませんが、作り方が思いつかなかったりやる気がおきない場合は作らないでみます。
そうして、マクロを作らないことで発生するExcelの作業を手作業で延々とやってみます。
たいていの場合は単純作業や面倒な作業を繰り返すことになり面倒だと感じるでしょう。
その面倒さが自動化したいというモチベーションになるわけです。
更に手作業で行うことで、作業の見通しがよくなり作りたいマクロが見えてきたりします。
少し楽をする為なら、たくさん努力する。
業務で使われるVBAでは怠け者ほど素質があると思います。
Excelで仕事をしていて作業が面倒くさいから自動化すれば楽だなと思ってマクロを作る場合がほとんどです。
ほんの少し効率化するために、時間をかけて書籍やネットでたくさん調べて何倍も時間がかかってしまうこともよくあります。
そうして調べたことは自分の知識となるので次に同じような物を作るときの役にたつでしょう。
楽をしたいという気持ちが向上心となるわけです。
最近だと、はてなの回答で表組みを作るのが面倒だなと思って、Excelで作った表をそのまま載せられたら楽ということでコードを書いてみたことがあります。
http://d.hatena.ne.jp/SALINGER/20090728
実際の回答でとても役にたっています。
技術的なことでわからないことは、たいてい同じところでつまづく人がいるもので、ネットで調べるとすぐ解決する場合がほとんどです。
それでもわからないことは、人力検索で質問していただければ私を含めここで回答しているような方々がお役にたてるかもしれません。
その場合は、Excelのスクリーンショットなど、具体的な図があると解決により近づけると思いますよ。
プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。
ありがとうございます、気が楽になりました。
身近にお手本がなくて、どこを目指したらいいのかわからなくて、
でも、無駄のないコードにしなくちゃいけないんだ、と思ってひとりで切羽詰ってました。
面倒な作業が、少しの操作でばさっと片付けられる気持ちよさを忘れずに、
これからも少しずつやってみようと思います!
ありがとうございます、気が楽になりました。
身近にお手本がなくて、どこを目指したらいいのかわからなくて、
でも、無駄のないコードにしなくちゃいけないんだ、と思ってひとりで切羽詰ってました。
面倒な作業が、少しの操作でばさっと片付けられる気持ちよさを忘れずに、
これからも少しずつやってみようと思います!