ここから本文です

難易度としては、ここで皆さんが回答してるような複雑な関数のネストをマスターす...

bik********さん

2019/12/715:53:39

難易度としては、ここで皆さんが回答してるような複雑な関数のネストをマスターするくらいなら、VBAを覚える方が簡単ですか?

当然、VBAをどこまで覚えるかにもよりますが、Outlookやネットから情報取得等は覚えないとします。
なお、関数とVBAを同時学習すると混乱しますか?

閲覧数:
45
回答数:
5

違反報告

ベストアンサーに選ばれた回答

osa********さん

2019/12/801:16:53

>VBAを覚える方が簡単ですか?

VBAに慣れてしまうと、そう感じるかもしれませんが、
最低限覚えなくてはいけない「ルール」や「どっから入ったら迷いにくいか?間違えにくいか?エラーが少なくなるか?」は、
「VBAはじめて」の方からすれば、
「ワークシート関数の学習の比じゃないくらい、複雑」だと思います。

あるいは、3段階も4段階も合わせ技を使った関数と、どっこいどっこいだと思います。

また、学習内容以上に、「エラーが出たらどうするか?」ができなければ、VBAは間違いなく挫折すると思います。

さらには、最低限のことを習った・学んだとしても
「ほとんどの人がそれをどう使ったら効率的なのか、まったくイメージがわかない」
と思います。

慣れている人は、「あのやり方とこのやり方を組み合わせれば簡単だよね」と、すぐに発想ができますが、
初心者はそれができません。

初心者用の学習を終えた時点で、ほとんどの人が、
「で?それで?自分のやりたいことはどうやったらできるの?」
となると思います。

以上のようなことを考えると、「VBAはじめて」の方からすれば、「VBAを覚える方が簡単」では、「ない」、と思います。

どっこいどっこいな気がします。



>関数とVBAを同時学習すると混乱しますか?

さほど、混乱しないと思います。

独学するか、習うかでも違うと思いますけど・・・。



ただ、VBAの場合、
「オブジェクト変数の学習」
と、
「値やオブジェクトを返す自作関数の作り方・活用方法の学習」
(特にオブジェクトを返す自作関数)
を、もし、やらないなら、
「有料で習っていたとしても」
必ず
「下の下の腕のまま」
「それ以上、上がることなく」
「100%」
「挫折する」
と思いますので、
最初からやらないほうがいいか、
もしくは、
「マクロの記録で記録したマクロを改造することだけに集中する」
ほうが、かえって、いいかもしれません。

「マクロの記録」機能を「半自動化」の「いち手段」として、実務でちゃんと活用できる人なら、VBAの学習も「コツコツ」「少しずつ」やれて、
同時に、
「値やオブジェクトを返す自作関数ばっかり作って実務に活用してれば、」
半年とか1年半とか、ある地点から、爆発的に伸びる、と思います。

  • osa********さん

    2019/12/801:26:22

    多くの初心者が、初心者本の修了の段階で、
    「結局自分のやりたいことができずに挫折する」、
    その最も大きな理由のひとつは、

    初心者本が、VBAの学習上、
    最も重要な、
    ・「値やオブジェクトを返す自作関数」の作り方を教えないこと、
    ・その方向性を示唆しないこと、
    です。

    おまけに、
    オブジェクトの階層構造を省略したオブジェクト式の書き方を教えすぎて、ヘルプやオブジェクトブラウザをあえて「使えないように仕向けている」からだと思います。(特にItemプロパティやItemメソッド。)

    ちなみにですが、Amazonで、
    「Excel VBA ユーザー定義関数」で検索すると、
    数冊しかヒットしません。
    そしてそのなかでも、多分、「オブジェクトを返す自作関数の作り方」が書いている本は1冊も無いと思います。

    多くの初心者の方が挫折するわけだ、と確信できると思いますよ。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/12/8 11:46:31

皆さん、回答ありがとうございます。
皆さんの関数のネストも経験と発想が重要かなと思い、あれだけ複雑ならマクロの方が易しいかなと思いました^^
が、やはりマクロの方が難しいんですね(><)
オートフィルターと印刷だけに絞って学びます

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

ipl********さん

2019/12/718:40:28

簡単な関数なら関数の方が楽ですが、複雑になってくると1行に納めようとすると複雑怪奇でVBAが楽です。
複数行にしたりコメントを付けられるので理解しやすいです。
複雑な関数もVBAで自作関数にしてしまうと簡単な関数になります。

VBAを使う場合は、シート関数を理解しておいた方がいいと思います。
WorksheetFunction関数を使うと、VBAからシート関数を呼ぶこともできます。
VBAでは複雑な処理をシート関数で1行で出来る場合もあります。

プロフィール画像

カテゴリマスター

aka********さん

2019/12/716:25:08

関数は マクロで書いたコードと同じことを コードなしでやってくれるものという認識で いいのでは

関数は 指定の条件を 引数として 指定どおり 与えてやれば 既定の処理を 実行します。

マクロは 既定のものがないので 自由に 処理を 組み合わせ出来るが
その処理を 自分で いちいち指示をする必要が あります。

関数は レールの上を走る 貨物車
マクロは トラック 自分で 道を選べます。

大きな違いは 関数は 計算を 常に 関連する値が変わるたびに 繰り返しています。
マクロが 動くのは コマンドをクリックした時 一度きりです

その代り 関数は重量が重い トラックは 軽い 関数は内部メモリーをよく食うという事です。

従って 処理によって マクロが 良い場合もあれば 関数の方が 早い場合も あります。

したがって どちらも必要です。

そして どちらもマスターする必要はない
必用で あれば 必要な物のみ 覚えればいい
また どちらも 完全に 覚えなくても 曖昧に覚えておいて 何かを参考にして
使えばよい。

maronさん

2019/12/716:10:17

◆難易度は関数の方が簡単だと思います
◆ネストが沢山ある式も、順次ネスト数を増やしていけばいいだけではないでしょうか。

◆マクロは、今は印刷と並べ替えしか使いません。

aid********さん

2019/12/716:03:16

向き不向きはあるでしょうが、数式のほうが簡単でしょう。
一つ一つの関数自体は難しくないので、如何に組み合わせるかだけを考えればよいですから。

ただし、複雑な数式を使わなくてはいけないことってまずないです。
表のつくりが悪くて無理やり関数で処理しようとするとか、謎のポリシーによって作業列を使いたくないとか、そうでもない限り不要です。

Excelの基本機能がわからないうちにマクロを覚えようとしても、個人的には効果が薄いと思います。この処理をしようと思ったらこの機能を使えば一番速いor簡単、ということがわからなければ不格好なマクロになるだけです。

混乱するかはわかりませんが、関数が習得できていないうちはまだ早いと思います。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる