• ベストアンサー

VBAって論理的な考えが必要ですよね?

今ExcelVBAを勉強中です。 まだ始めのほうですが、すごく難しいです。 テキストを見ながらだと組めるけど、何もみないで一から組めって言われたら全然自信がないです。 やはりこういうのってセンスとか関係あるんですかね…。 かなり論理的な考えと英語も出来た方が良いよな~と、勉強しながら思いますが、実際どうなんでしょうか?

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

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

VBAはマクロの記録があるから、手動操作の自動化だけならセンスも何も要らないです。 不具合が起こる可能性があって、動作が多少不安定でも許容できるなら、 自動記録されたコードをそのまま利用すればいいと思います。 英語は中学生英語レベルの片言が分かれば十分です。技術的な調査で 英語のサイトまで読み解くなら必要ですが、日本語のサイトで十分な 情報が得られるので基本的に必要ありません。 論理的な考え。ってどんな考えですか? 必要な気はしますが、他にも色々な能力が程よく必要に思います。 例えば、家を建てるのにどんな知識が必要ですか? 論理的な考えも必要ですよね?土台をしっかり作らないと上に重いものを 置けないとか、組み上げていく順番を下から順に考えるとか。 木材やその組み合わせ方の基礎知識も必要ですよね。 それらを組合せ、応用して使いこなす技術も必要です。 他人の考え出したある程度まとまった工法を勉強することも必要で、 それらを幾つか比較して、どちらが優れているかを判断できる力も 必要です。 自分なりの工夫を織り込み改善していく発想力、最後に全体の デザインなどがセンスでしょうか? で、一番大事なのがそれらを習得できるまで続けられるという 努力できる能力ですね。 プログラムも「ものづくり」なんで、その辺は何やっても共通してる と思います。 プログラムは論理的な考え方と結び付けやすいから、そのイメージが 先行している感がありますが、論理的な考えだけでもだめな気が しますし、そもそも論理的な考えだけ習得するなんて効率が悪い ような気がします。 プログラムは人間が作り出したものです。VBも人間が作ったんです。 他人の考え方が理解できるかどうかじゃないでしょうか。

noname#150944
質問者

お礼

ご回答ありがとうございました。 マクロの記録は出来るのですが、それを組むとなるとなかなか…。

その他の回答 (2)

回答No.3

システムを組む場合は、論理的思考が必要なだけです。 プログラムを書くだけなら、別に、数学的な頭が必要なだけ。ただ、目的にそって、記述するだけで、プログラムが完成するような言語がVB系の言語です。 逆に言えば、深く考えなくてもいいように、成っているのがVB系の言語です。なので、構造的に複雑にしようとすると、かなり醜く、他人から見ると、難解な物が出来上がってしまいます。 アセンブラから入った方だと、たいしたこと無いと思い、すんなり入れるようですね。 C系、Java系から入ると、かなり使いにくい言語です。 物理学系や数学的な、検証の仕方が論理的手段としたら、VB系は文学系の書き方で、大丈夫ですよ。と言うこと。 つまり、起承転結で読み手が理解できる、展開で十分システマチックな物が書けてしまう。 つまり、プログラムの入門言語としては最適と言う事です。 大事なのは、書式を学ぶ事と、オブジェクトの機能、使い方、そして、体系を学ぶ事です。さらに、そのオブジェクトに付随したイベント処理を学ぶ事です。 一般的な用語では、イベント処理はトラップなんて言い方をします。それぞれの言語で、表現の仕方が違うので、エクセルのイベントトラップでは、こんな事ができ、オブジェクトはこれが対象でした。なんて研究発表ができるようになれば、一人前です。 他の言語を学ぶ時、又は他のアプリのインタープリタを学ぶ時に役立ちます。 これらを多数の言語で学び、システムを構築できるようになると、論理的思考が役に立ちます。 システムとは、例えば、販売管理システムとか、証券取引管理システムとか、日常の生活や、業務でみんなの役に立つように、一連の流れを自動化することを指します。みんなとは、自分自身だけでもかまいません。 エクセルだとこれができて、これができない。と言う事がわかってないと、システムは組めません。

noname#150944
質問者

お礼

ご回答ありがとうございました。 参考にします。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

たぶんに必要でしょうね。 でも、「マクロの記録」でも作れちゃう。冗長な部分はありますが。 「コメントを先に作る」が良い練習になるのかも。コードはあとから書き込む。

noname#150944
質問者

お礼

ご回答ありがとうございました。 参考にします。

関連するQ&A