• ベストアンサー

vbaに向いてないかな?

vbaの勉強をしてるのですが 参照渡しとか値渡しが全然意味が分からなくて詰んだんですが、 これって向いてないのですかね・・・ 一応やりたい事をサブプロシージャーとして作って何とかなってますが、 vbaを極めようと勉強し出したのですが詰みました 難しいです・・・

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは。 今の私は、人に上から目線で教えるような立場ではないのですが、ご質問者さんは、VBAの上級文法まですべてお済みですか?そこまで終わっていないのでしたら、すべて終えてから、判断するとよいです。(上級文法って何っていうなら、大村あつしさん辺りの本で、確認してください)だいたい、3年を目処にするとよいです。3年で、プロのぎさしの見える人もいます。私は残念ながら、格好だけはマトモになっただけで、生活に忙殺されて、それ以上にはなりませんでした。 参照渡し・値渡しを理解しにくいのは、実際には、参照渡し・値渡しは、結果論であって、自分自身がコーディングする際には、その組み立ての段階で、参照渡し・値渡しを選ぶというようなケースは、あまりないからです。もちろん、厳密には、値のデータ型によっては、これしかない、というものは存在します。 >一応やりたい事をサブプロシージャーとして作って何とかなってますが、 やりたい事が出来ているなら、今は良いとするしかありませんが、ただ、なぜ、「サブプロシージャー」という言葉が出てくるのか、背景が見えてきません。それは、必ずしも、サブプロシージャが必要だということではないからです。 さて、この質問のテーマの「VBAに向いてないかな?」という話は、傍(はた)で、他人に簡単に言えるようなものではありません。自己判断でいうなら、3年勉強して、業務や趣味の中で、思ったように出来上がらない、というなら、向いていないかもしれない、と考えても不思議はありません。また、ある人は、いろいろな種類を、自分で500個のVBAのコードを作ってみることだと言います。 ただ、VBAの何が出来るから、その人は、VBAが向いている、何が出来ないから、VBAが向いていないという、という判定は出来るものではありません。仮に、オブジェクト指向型のプログラミングが出来ない、といって、その人が、VBAには向いていないとは言えません。向く・向かないは、技術論ではないからです。 しかし、出来ると思っている人でも、VBAの基本的な約束を守れないような人は、私は個人的には、残念ながら「VBAには向いていない」という烙印を押してしまうことはありますね。そういう人は、それを指摘しても、「エラーを出さないなら、なぜ悪いのだ」と開き直ってしまいます。他人との協調性がない人なのです。自己満足の世界にいる人はダメなのです。 「VBA」や「旧VB(VB6)」は、曖昧な部分があります。それを経験で補いながら、その曖昧な部分を確信を持ちながら一定の形にしていくことが、本当は大事なことですが、それには、出来る人のコードを参考にします。掲示板は玉石混交ですから、もし読むなら一定の人のコードがよいと思います。出来る人のコードは、それなりに読みやすく整っているものです。 最初に書いたように、VBAの教本をひと通り隅から隅まで読み通して、体系的に覚えることです。部分部分で、これはこうだとか言っていると、永久的に全体像が見えて来ません。テクニックのつまみ食いはダメです。また、一見、コードが書けて、できそうな人たちでも、基本的なことを守れない人たちがいますが、そういう人は、本当は、プログラミングが出来るとは言えませんし、プログラミングには向いているとは言えません。 私が、他人のコードのチェックしレベルを判定する時は、 Dimでデータ型を宣言しているか、Variant 型は必要以上にはないか、正しいデータ型を指定されているか。 プロシージャ名は、英字・英語は使われているか、最低でもパスカル型で書かれているか、変数名に不自然さはないか、コードにインデントは正しく入れられているか、Cells, Rangeの値に、.Valueプロパティをつけているか、構文として、不自然さはないか、など最初に見せていただいて、それでどのレベルの人か判断しています。 こうしたルールに度を越して逸脱している人のコードは、一瞥して、それ以上はみません。

snxosrmijia
質問者

お礼

回答ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

参照渡しと値渡しの、別に解説が聞きたいご質問じゃありませんね。 >意味が分からなくて詰んだ 自分に自信があってトライ&エラーでやってみたけど、結局ワケわからなかったという事ですかね。 そういう状況だと、VBAに限らず何やっても向いてないって事になると思います。 まぁ、知らない間はいつまでも判りませんからね。一回判ってしまえば、自分が何が分からなかったのかも判らなくなるとも言います。 >参照渡しとか値渡しが全然意味が分からなくて VBAのヘルプで「参照渡し」とかで検索して、「引数の効率的な引き渡し」辺りのトピックスを一回読んでみると、必要な事は書いてあります。 ヘルプにキチンと目を通す、デタラメに試行錯誤しても時間の無駄で正しい例題に学ぶといった、「どうやって勉強したら効率的なのか」を修めているかといった点も、ご質問の「向き不向き」の直接の現れと言えます。

snxosrmijia
質問者

お礼

回答ありがとうございました。

関連するQ&A