プロが教えるわが家の防犯対策術!

タイトルの通りです。

現在、事務職をやっています。
集計や報告書でExcelを使うことが多くあり、VBAも少し使ってきました。
知識はちゃんと学んだものではなく、
自動記録のマクロに、ネットで見つけたコードを貼り付けたようなもの。
きちんと理解しているとは、とても言えません。

社内では、VBAが使える人はほとんどいません。
(Excelの関数でなんとかなる、とも言えるのですが)
そのため、少し複雑な処理について相談を受けると、説明できるはずもなく・・・。

人事異動があり、上司が代わり、
セミナーでも書籍購入でも支援すると言ってくれています。
それまでの上司は「女の子は言われたことができればいい、
できないことを無理に学ぶ必要はない、必要があればこちらで教える」
と、セミナー受講や書籍購入は却下されてしまったため、
自発的に、手計算でやれと言われたものをVBAにしたりしていました。

セミナーを見ると1日完結の講座が多く、1日でどれだけできるものなのかと不安です。
また書籍も立ち読みで少し見ましたが、
読んだだけで自分がやりたいことの応用ができるのか、これも不安です。

内容としては、複数のブックから特定シートを抜き出して新規ブックを作成とか、
シート内の特定項目に該当するデータを抜き出して書式を整えてPDFで出力とか、
そのくらいのレベルを求められています。

Forだのloopだのdimだの、コードのコピペで見かけて、なんとなく知っているものの、
自力で内容をバッチリ理解できているわけではないので、
数年前に作ったVBAを、状況が変わり改編する際に、
うまく対応できないことばかりです。

コードが書けるみなさんは、どのように学ばれたのでしょうか。
アドバイスをいただければと思います。
よろしくお願いいたします。

A 回答 (6件)

学校に通いました。

ナガセです。
業務上の必要から勉強するようになりました。いわゆる片手間プログラマです。あなたと同じように独学での切った貼った方式に限界を感じました。講義形式ではなくビデオ形式です、大手は皆そうです。えービデオ??と思うかも知れませんが、聞き逃したら巻き戻せるし、PC上でビデオで学び、その場でVBAを組めるのでやりやすいです。完全に自分のペースで進められ重宝しました。一応資格があってエクセルVBAエキスパート(ベーシックとスタンダード)です。松なのか竹なのか梅なのかよく分からない名前ですが、資格取得を目指して勉強すると基本事項を網羅出来るようになってます。大手学校でも資格取得を目的としてます。私は実際使うことが目的なので受験はしませんでした。難しいのはゼロを1にする部分なので、ベーシックにしましょう。後はネット検索なり独学で十分です。

受講に際して、必ず「仕事のこのマクロ作成を目標に勉強しよう」として下さい。気合の入れ方が違います。

修得後について
あなたの本業は何か分かりませんが、マクロを組もうとするとマクロ作成に割く時間が非常に多くなります。初心者のうちは尚更です。しかしマクロというのは本来「手動でも出来るただの作業を効率化」するだけであって、何かを生み出してくれるものではありません。なんか高級なことをしようとしてるように見えますが、実際はただの作業扱いです。あんまり時間かけ過ぎて手作業と大差なかったとの結果になると、何のために時間割いたのかと時間対効果の問題になるので注意が必要です。

上記のこともあって、マクロ化する作業対象は毎日する作業とか部署の全員がする作業とか、短縮効果の見込めるものになります。よくネットで「3日かかる作業が3分に」などと言われており、確かに事実ですが、マクロ作成に3日かかったどうですか?しかも一回こっきり2度と使わない。。。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
具体的な学習方法、参考になりました。
紹介してくださっている「ビデオで、自分のペースで繰り返し経験」は
力になるなと思いましたし、自分のスタイルにもあっているなと思いました。

Excel VBAベーシックを、少し調べてみて、ここから始めたら良さそうだなと感じましたので、
上司とも相談し、こちらで進めてみようと思います。

有意義な回答、ありがとうございました!

お礼日時:2018/04/30 10:25

デバッグエラーが出る、つまり黄色い行が表示されたらそのエラーメッセージを検索します。

すぐには理解できない事も少なくないとは思いますけど、納得いく理解が出来るまで、ブレークポイントやイミディエイトウィンドウを駆使して確認します。
これらの用語もその使い方は検索すれば見つかります。
で、やってみたけどどうしても理解出来ない時にこういう場所で訊くと、渇いた土に水が染み込む様に入ります。
よくやらないで訊く方いますけど、それで入る訳が無いんです。
自分で何が解らないかの整理が出来ていたら、すんなり入ります。
検討を祈ります。
なおそれが表示されることなく中断するケースも多々あります。ケースバイケースなのでそれらもお尋ね頂けば。
    • good
    • 0
この回答へのお礼

重ねての回答、ありがとうございます。

ほんと「作りっぱなし」なので、
使い続けて1年、突然黄色い行が出てきてコードを開いても
「これ、何をさせようとしてる文だっけ・・・?」連発の有様です。
(それで、上司からも「ちゃんとできるようになって」と言われ。)

ご助言いただいた通り、検索・検討を何度も繰り返した上で、
こちらのような質問サイトも有効活用させていただきたいと思います。

お礼日時:2018/04/30 10:33

No4です、補足します。


セミナーつまり1日2日のものは止めましょう。身になりません。何となく「集中受講してエッセンスを知った」気分になるだけです。他言語を知る人が翻訳作業のために受講するのが適してるように思えます。前述の学校の費用は確か5,6万円だったと記憶してます。企業の研修としてそれほど高額とは思えません。時間も融通が利いて業務終了後や休日に通学すればいいし。まさか勉強させてもらって出張費用残業代まで出させようとは思ってないでしょ?
    • good
    • 1
この回答へのお礼

引き続きの回答、ありがとうございます。
1日2日のセミナー、やはりあまり適さないのですね。大変参考になります!

>業務終了後や休日に通学すればいいし。まさか勉強させてもらって出張費用残業代まで
今回は、会社から「業務として習得してほしい」の要請があり、費用全額会社負担も会社から明言されております。
そのため、休日や残業時間帯のセミナーは極力NGでという条件もついています・・・
(自腹ならやりませんし、自腹でやらせたらブラック企業ですよね・笑)

お礼日時:2018/04/30 10:28

俯瞰的にプログラミングのどういう事を身に付けていくかの


視点と、着実に目の前の事を一つ一つを理解して行く視点の
両方が必要だと思います。

そしてVBAに限らずですが、デバッグの仕方、コツを
理解することがとても重要です。
何が起きているかを把握できないと、対処はメクラうちに
なってしまい時間ばかり浪費する悪循環に陥りますので。

VBAの場合オブジェクトとメンバーの関係についての
理解も大切です。オブジェクトブラウザが検索できると
メンバーが無数にあるのでなかなか覚えきれない点を
フォローしてもらえる気がします。Web検索も勿論
適切な検索ワードの指定が身に付けば強力ですけど。

そして何より最も大切なのは小さな成功体験の積み重ねです。
そのためにはやるべき事よりも、自身で少し背伸びすれば
可能な事にターゲットを絞るのもある程度の期間は必要と思います。

喜び、面白味のない事が自発的に継続できるわけないですから。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
まさに、何が起きているかわからずにデバッグエラーが出て、対策もできず放置、
というのがとても多くあります。
きちんと「理解をしていく」ことが大切ですね。
>喜び、面白味のない事が自発的に継続できるわけないですから。
はい!「できた!」の楽しさを追求しながら学ぼうと思います。

お礼日時:2018/04/30 09:52

昔のバージョンのExcelにはきちんとした日本語のリファレンスが組み込まれていて、


たとえばForだのLoopだのDimだのをカーソルを置いてF1キーを押せば、
そのステートメントの説明と使用例(サンプルコード)を確認することができたのです。
そしてその使用例のコードを少し改変すれば、目的のコードになることもあったわけです。

最近のバージョンのOfficeはこの機能が無くなってしまっており
これから学ぼうとする人にはやさしくない仕様となっているようです。

現在のリファレンスはこちらに公開されているようですが、あまり使い勝手は良くなさそうです。
https://msdn.microsoft.com/vba/office-vba-refere …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
リンク先、拝見しました。
これは・・・お目当のコードを探すのが面倒そうですね。地道に学ぶのが一番かなと感じました。

お礼日時:2018/04/30 09:33

私は質問サイトで無謀にも回答しつつ他の回答者の回答を実際に試して違いを知り、その回答をbookに或いはテキストファイルに保存してましたね


あとは溜まっていく資料を組み替えたりネット検索等もやりました

昔は回答者の回答に不備があれば、他の回答者は指導をしてくれたりとよい時代でした
今は何となく非難やとにかく自身がベストアンサーをと狙うのか、丁寧な関わりが無くなってきたと感じますね
あの頃に基礎を学べたことは運が良かったのかなと思いますよ
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
経験と積み重ね、振り返りが大切なのですね。
私は、作ったら作りっぱなしでしたので、その点を改めてみようと思います。

お礼日時:2018/04/30 09:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!