VBAアレルギーになってしまいました。どうやって克服したらよいでしょうか。


仕事でエクセルVBAでツールをつくらなくてはなりません。
でも、このことを思うとゆううつで、なにも考えられなくなります。手を着けられません。気が重くて仕方ありません。


元々プログラミングに苦手意識がありました。
この春から夏にかけて、はじめて小さなツールをつくりました。
ここでいろんな方に助けていただきながら、なんとか仕上げることができました。

しばらく遠ざかっていたんですが、先日また新しいものを作るよう指示を受けました。でも、全く手を着けられない。

知識がないため、うまくコーディングできないことと、その作業がなんとなく肌になじまないのが原因だと感じています。あんまり夢中になれません。

でも、エクセルなんてどんな仕事でも使うだろうから、ボタン一発でめんどい作業をかたづける技術があったなら今後どんな仕事に就いたとしても絶対トクだと思うんです。

だから克服したいです。
でも、どうしたらいいかわかりません。助けてください。

まとまらない文章で大変申し訳ありませんが、なにかアドバイスいただけないでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/10/03 21:09:36
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:SALINGER No.8

回答回数3454ベストアンサー獲得回数969

ポイント37pt

お仕事でVBAのプログラミングを命じられるということで大変ですね。私でも頭が痛くなります。

自分で好きなことをやる分には苦痛に感じないのですが、業務となると話は別。

更に上司の指示とか納得のいくものというのはなかなか難しいです。

技術的なこととかそういうことではなくて、私が業務でVBAを作る場合に思っていることを参考までに。


動けばいい。

プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。

VBAを作る目的は、業務の効率化であるのだから動けばそれでよしとします。

ただ、大規模なコードや継続して使うものになると、後々の改良の為に見やすいコードにしたほうがいいかもしれませんが、

そもそもVBAにそこまでを望むのは荷が重いと言えます。

Excel自体に自由度が高いので使用者が想定外な使い方をする危険性は常にあるからです。

どこかで割り切らないといけないと言えます。


作り方が思いつかない場合はあえて作らない。

矛盾するかもしれませんが、作り方が思いつかなかったりやる気がおきない場合は作らないでみます。

そうして、マクロを作らないことで発生するExcelの作業を手作業で延々とやってみます。

たいていの場合は単純作業や面倒な作業を繰り返すことになり面倒だと感じるでしょう。

その面倒さが自動化したいというモチベーションになるわけです。

更に手作業で行うことで、作業の見通しがよくなり作りたいマクロが見えてきたりします。


少し楽をする為なら、たくさん努力する。

業務で使われるVBAでは怠け者ほど素質があると思います。

Excelで仕事をしていて作業が面倒くさいから自動化すれば楽だなと思ってマクロを作る場合がほとんどです。

ほんの少し効率化するために、時間をかけて書籍やネットでたくさん調べて何倍も時間がかかってしまうこともよくあります。

そうして調べたことは自分の知識となるので次に同じような物を作るときの役にたつでしょう。

楽をしたいという気持ちが向上心となるわけです。


最近だと、はてなの回答で表組みを作るのが面倒だなと思って、Excelで作った表をそのまま載せられたら楽ということでコードを書いてみたことがあります。

http://d.hatena.ne.jp/SALINGER/20090728

実際の回答でとても役にたっています。


技術的なことでわからないことは、たいてい同じところでつまづく人がいるもので、ネットで調べるとすぐ解決する場合がほとんどです。

それでもわからないことは、人力検索で質問していただければ私を含めここで回答しているような方々がお役にたてるかもしれません。

その場合は、Excelのスクリーンショットなど、具体的な図があると解決により近づけると思いますよ。

id:ykdmmm

プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。

ありがとうございます、気が楽になりました。

身近にお手本がなくて、どこを目指したらいいのかわからなくて、

でも、無駄のないコードにしなくちゃいけないんだ、と思ってひとりで切羽詰ってました。

面倒な作業が、少しの操作でばさっと片付けられる気持ちよさを忘れずに、

これからも少しずつやってみようと思います!

2009/10/03 20:57:14

その他の回答7件)

id:azuco1975 No.1

回答回数613ベストアンサー獲得回数16

ポイント1pt

仕事をするしか克服する手段はありません。

id:ykdmmm

わたしもそう思います。

2009/10/03 20:58:23
id:jan8 No.2

回答回数456ベストアンサー獲得回数96

ポイント37pt

どんなにExcelVBAを愛する人でも、分からない時や思い通りにならない時はやる気がなくなると思います。

自分の事を考えると、やる気がなくなる原因として以下が考えられます。

- Excel特有の命令を調べなければならない時(オブジェクトにアクセスするとか)

- セル・シート・ブックを横断する繰り返し処理をどう記述するか分からない時

- バグが取れない時・意図した動作にならない

流行のアジャイルな開発方法にしてみてはどうでしょうか?

厳密な意味ではなく、とにかく動作優先で、

自分のプログラムが動く嬉しさを持続させながら

モチベーションを維持するという意味でです。

やる気が出るまで繰り返すべき習慣

- Googleで検索しまくって、自分の課題と似たような話題やコードを探す

- マクロの記録が使える操作は、どんなコードになるか試す

- マクロの記録で自動生成したコードを試行錯誤で組み合わせる

- 少し命令が増える度にとりあえず動かしてみる

どうしてもコーディングをしなければならない部分が出てくるし、

マクロの記録によって自動生成されたコードを見ると、

もっとシンプルなプログラムに書き換えたくなってくるはずです。

絶対にコーディングなんてしないぞ!という姿勢で作るのも良いかもしれません。

id:ykdmmm

なるほど。そういう手もあるんですね!

2009/10/03 20:50:07
id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント37pt

まず、何が苦手なのか原因を明確にさせたほうがいいですね。

それから設計書を作りましょう。

設計書にはいろいろありますが、最初は 要件定義書。

まずは 要件定義書から作りましょう。

何をしたいか、どういった機能が必要なのか 洗い出しです。

それから 外部設計書。

次に詳細設計書。

これが出来てから、コーディング(プログラム)開始となります。

コーディング→デバッグ(単体テスト)→不具合があれば修正→デバッグ

→不具合がなくなったら結合テスト→総合テスト

という順になります。

最初の頃は、これらの手順どおりみっちりやれば(やれれば)

上達すると思いますよ。

id:ykdmmm

まず、何が苦手なのか原因を明確にさせたほうがいいですね。

改めて考えてみました。

身近にお手本がないから、自分のやり方であっているのか不安なんだと気づきました。

コードの書き方は、多くの場合、ぐぐったり、ここで質問して解決できます。

でも、実際に現場で使われているマクロの全体像を見たことがないので、

何をどこまでどうがんばったらいいのかわかりません。

(それこそ、3人しか使わないけれど設計書は書いたほうがいいのかとか、

そもそもどうやって書くのか、とか。)


それに、自分が書いたコードはなんか汚いけど、

どこをどう直したらきれいになるのかわからないから

なんだか心配になるのだなあ、と思いました。


設計書。とりかかってみます。

まず、自分の頭の中が整理できそう。

これまでは、まずコアな部分のコードを書いて、

そこに少しずつ肉付けしていってました。

あちこちいじっているうちに、自分が何をしているのか

わからなくなることが度々あったので、チャレンジしてみます。

2009/10/03 20:56:13
id:peach-i No.4

回答回数4652ベストアンサー獲得回数93

ポイント1pt

Excel VBA完全制覇パーフェクト 2007/2003/2002 対応

Excel VBA完全制覇パーフェクト 2007/2003/2002 対応

  • 作者: 中村 峻 チーム・エムツー
  • 出版社/メーカー: 翔泳社
  • メディア: 大型本

こちらを一度読んでみてはどうでしょうか

id:ykdmmm

あ、これ持ってます!

2009/10/03 21:02:01
id:rafting No.5

回答回数2652ベストアンサー獲得回数176

ポイント1pt

外部に発注したらいかがでしょうか?

https://hp.submit.ne.jp/

id:ykdmmm

ちょっと趣旨からはずれてるみたいです。

2009/10/03 21:02:08
id:garyo No.6

回答回数1782ベストアンサー獲得回数96

ポイント15pt

1.書店に行きます

2.一番薄いEXCEL VBAの入門書を買います

3.書いてあるサンプルソースを全て自分で入力して動かします。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

※ここがポイントです。必ず手入力します。

最初は呪文みたいでわからないと思いますが、写経のように

入力していきます。

そのうち、「○○のやり方は××ページに書いてあった」と

思い出せるようになります。

また、何度も入力しているとある時、「そういう意味だったのか」と判るようになります。

大抵の言語はこれで覚えられます。

id:ykdmmm

なるほど。基本に戻ってみると、またやる気がわいてくるかもしれませんね。

2009/10/03 21:02:16
id:afurokun No.7

回答回数4647ベストアンサー獲得回数99

ポイント1pt

Excel VBA 入門講座

http://excelvba.pc-users.net/

id:ykdmmm

2009/10/03 21:02:24
id:SALINGER No.8

回答回数3454ベストアンサー獲得回数969ここでベストアンサー

ポイント37pt

お仕事でVBAのプログラミングを命じられるということで大変ですね。私でも頭が痛くなります。

自分で好きなことをやる分には苦痛に感じないのですが、業務となると話は別。

更に上司の指示とか納得のいくものというのはなかなか難しいです。

技術的なこととかそういうことではなくて、私が業務でVBAを作る場合に思っていることを参考までに。


動けばいい。

プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。

VBAを作る目的は、業務の効率化であるのだから動けばそれでよしとします。

ただ、大規模なコードや継続して使うものになると、後々の改良の為に見やすいコードにしたほうがいいかもしれませんが、

そもそもVBAにそこまでを望むのは荷が重いと言えます。

Excel自体に自由度が高いので使用者が想定外な使い方をする危険性は常にあるからです。

どこかで割り切らないといけないと言えます。


作り方が思いつかない場合はあえて作らない。

矛盾するかもしれませんが、作り方が思いつかなかったりやる気がおきない場合は作らないでみます。

そうして、マクロを作らないことで発生するExcelの作業を手作業で延々とやってみます。

たいていの場合は単純作業や面倒な作業を繰り返すことになり面倒だと感じるでしょう。

その面倒さが自動化したいというモチベーションになるわけです。

更に手作業で行うことで、作業の見通しがよくなり作りたいマクロが見えてきたりします。


少し楽をする為なら、たくさん努力する。

業務で使われるVBAでは怠け者ほど素質があると思います。

Excelで仕事をしていて作業が面倒くさいから自動化すれば楽だなと思ってマクロを作る場合がほとんどです。

ほんの少し効率化するために、時間をかけて書籍やネットでたくさん調べて何倍も時間がかかってしまうこともよくあります。

そうして調べたことは自分の知識となるので次に同じような物を作るときの役にたつでしょう。

楽をしたいという気持ちが向上心となるわけです。


最近だと、はてなの回答で表組みを作るのが面倒だなと思って、Excelで作った表をそのまま載せられたら楽ということでコードを書いてみたことがあります。

http://d.hatena.ne.jp/SALINGER/20090728

実際の回答でとても役にたっています。


技術的なことでわからないことは、たいてい同じところでつまづく人がいるもので、ネットで調べるとすぐ解決する場合がほとんどです。

それでもわからないことは、人力検索で質問していただければ私を含めここで回答しているような方々がお役にたてるかもしれません。

その場合は、Excelのスクリーンショットなど、具体的な図があると解決により近づけると思いますよ。

id:ykdmmm

プログラマーではないのだから、コードが汚くったっていいし、最良のコードじゃなくったっていいです。

ありがとうございます、気が楽になりました。

身近にお手本がなくて、どこを目指したらいいのかわからなくて、

でも、無駄のないコードにしなくちゃいけないんだ、と思ってひとりで切羽詰ってました。

面倒な作業が、少しの操作でばさっと片付けられる気持ちよさを忘れずに、

これからも少しずつやってみようと思います!

2009/10/03 20:57:14
  • id:garyo
    VBAはマクロとはいえ元はれっきとした開発言語のVisual BASICをそのまま引き継いでいるのに
    プログラムの経験もない人にやらせるのがそもそもの原因っぽい気が……
    以前教えたことがあるプログラム経験のない人はいつまでたってもインデントを理解できなかったよorz
  • id:ykdmmm
    >>garyoさん

    無謀ですよねえw
    私の上司は、エクセルVBAの入門本を2冊渡してそれきりなんですよ。ひどすぎますw

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません