年末年始を使い、マクロとVBAの勉強をしてます。
参考書通りにやれば、もちろん操作はできますが、これを実生活(仕事)で生かそうとするのは難しいかなと思います。
例えば構文の場合、繰り返しの処理をしたいときに
"for○○ = ☆ to ☆☆"という他に、場合によっては"do until ☆ loop"という構文を使う場合もあると知りました。
たぶん今の私だと、どういったときにfor、どういったときにuntilを使うのかわからず、適当にforの構文を入れてエラーになりお手上げになる気がします。
その他、演算子にしても、まだまだうまく使い分けられないと思います。
普段プログラミングをやっている方は、どのように覚えましたか?
やはり慣れでしょうか?
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>>たぶん今の私だと、どういったときにfor、どういったときにuntilを使うのかわからず、適当にforの構文を入れてエラーになりお手上げになる気がします。
別にuntilを使う必要が無いなら、使わなければいい。
forよりも、untilを使うほうがプログラムが分かりやすくなると思える場面があれば使えばいいだけのことですよ。
ありがとうございます。
使い分けができるようになるまでが当面の目標ですね。
今は、参考書を3日も見なくなると本当にほぼ忘れます↓
早く、転職できるほどのスキルを身につけたいのですが。勉強頑張ります。
No.2
- 回答日時:
私は質問サイトに上がる回答を見てどのように作っているのか質問者さんと同じ状況(ブックを作ってみる)で回答コードを試す。
そんな事を繰り返しながら『どう言った時にどう言う物が使われているか』を学んでいきました。
For To ~ Next ですと私なら For Each ~ Next を使う機会が多いですね。
それも何回も繰り返して検証をした結果、どれが使いやすいのかを選択した感じです。
その間に自身も回答者となってコードを作ってみては諸先輩に指摘を受けて直してみたりと、昔は回答者同士でも教えあう雰囲気がありましたから。
なのでそこそこ勉強させてもらいましたよ。(回答者で参加してるのに質問しちゃったりとかも)
なんか今はベストアンサー争いが激しいためかそう言う感じではなくなってきたみたい。(ここ7年位は)
ありがとうございます!
教えあう風土は良いですよね。マイノリティであるプロのゲーマーの方々は互いに教えあうと、情熱大陸で放送していました。
環境は変わっていくものですね…
実例を基に仕組みを考えるのは良い勉強になりそうですね。
今は、いちいち「each VBA 意味」のように検索してはつっかかり、検索しては「あぁこういう意味なのかな」という状態です。
早いところ、この1から苦しい状態を抜けられるようさぼらず勉強します。
No.4
- 回答日時:
①普段から、自分で作った、使い慣れた構文で作ったプログラムを基本にして、修正しながら、使いこなしていく。
自分の引き出しを多く持っていることで、仕事上での効率化、エラー、原因不明でのデバック期間を短くする。
できるだけ、コメント文を多く残しておくと、後々、修正したり、見直す時に楽です。
②勉強して、新しいことを学んだときは、その部分だけを色々と試す。どんな風に動くか、どんなエラーが発生するかを調べて見る。
③自分が陥りやすいエラーやその対処方法をできるだけ、メモで残しておく。
→エラーが出てくると、そこを直せば良いのでデバックはやり易い。厄介なのはエラーに引っかからずに値がおかしい状態になる場合で
色々と原因を探りながら、追及していく。結局慣れでしょう。
>たぶん今の私だと、どういったときにfor、どういったときにuntilを使うのかわからず、適当にforの構文を入れてエラーになりお手上げになる気がします。
上記、②、③が参考になるのではないでしょうか?。
仕事時は使い慣れているものが一番。勉強の時に、新しいものも試してみる。
>その他、演算子にしても、まだまだうまく使い分けられないと思います。
慣れですね。
>普段プログラミングをやっている方は、どのように覚えましたか?
自分が使い慣れた本に、附箋を貼ったり、書込みを入れたりして、手元に置きながら、見直し用にしています。
一緒に仕事をしていた女性のプログラマは、日頃、使う構文等をエクセルで自分で作って、机の前に置いていました(すごいなと思いました)
私の場合、無理に覚えるのではなく、ポインタ先を準備しておくという感じですね。
ここの質問・回答をちょこちょこ見ておくと、結構勉強にもなりますよ。(質問のサンプルを自分でrunしてみたりもして、能力の幅を広げています)
大変丁寧にありがとうございます。日々勉強ですね。女性プログラマの方を見習わないます。
仕事で使っているシートに、前任者がマクロを仕込んでいたのですがそれがうまく作動しておりません。
原因がわかればと思い勉強し出しまたのですが、ちんぶんかんぷんです。むしろ、VBA画面を出したところ、標準モジュールがなさそうで、最初から何だこりゃ状態です。
参考書のように、1度習ったらすぐに応用効くようになれればいいのですが…。
いろいろと難しさを感じていますが、入門から初級のレベルまで上げられるよう頑張ります。
No.5
- 回答日時:
プログラミングって明確な目的がないとなかなか覚えられないし、仮に覚えてもすぐ忘れます。
こんなこと言うと怒られるかも知れませんが、勉強することじたいが目的になっている勉強だと、おそらく今のレベルを脱するのは困難な気がしますね。これがマクロじゃないとできない(量が多すぎて手作業でやってられない)ことをさせたい!現に今困ってるんだ!みたいな目的がある人は強いんですが…。何かそういう目的・ネタはありませんか?それがあれば、最初はとにかく動きゃいい、動くようになるまでの過程でいろいろ経験していくことが最も良い勉強だと私は思っています。また実際に困ってることが解決できるかも知れないとなったら、そう簡単にあきらめないですし。
ありがとうございます。おっしゃる通りだと思います。参考書だけ見ても本当すぐ忘れます。
ネタといえば、マクロを勉強するきっかけとなった、前任者が作ったマクロ入りExcelの破損を直すことです。
社で購入した物品に対し、何を目的に購入したかを記入するシートがあるのですが、こちらに記入をすると、目的ごとに分かれたシートに自動反映されるという仕組みのものがあります。何がきっかけかこちらがうまく作動しなくなり、手入力したらデータが消えるなど困っていました。
このシートのVBA画面を見たら、そもそも標準モジュール画面がなくて、なおさら??だったのですが…
明日出社したらもう一度その表を見てみます。週末の勉強用に、そのシートをUSB経由で自宅PCにコピーしたいくらいです。
No.6
- 回答日時:
こんばんは。
私は、あまり人にどうこう言えるような立場ではありませんが、一応、覚えたつもりになっています。私は、No.2さんと同じで、信頼のおける諸先輩の回答をみながら掲示板で覚えました。信頼がおけない人でも、技術力がある人のコードはやはり試してみることは大事ですが、下手にコメントを書くと、とんでもない言いがかりをする困った人もいます。
以前の「教えて!goo」でも、回答者同士で教えたり・教わることも多かったのでしたが、今は、「規約違反だ」といってくる人がいるのはとても残念です。
ここの掲示板も回答者のレベルが常連では、かなり一定した基準以上になりましたね。
確か、C言語の本を書いているハーバート・シルトという人だったと思いますが、コードを500書けば、一通り覚えるといっていました。一日3つのコードを書けば、4ヶ月程度で終わるということです。実際に、そういう人もいます。だいたいは、3年がひとつの目処だとは思います。
それと、私が掲示板を読んでいて気になるのは、「学習の中途で質問するな!」ということです。そこを気にしたら、先に進めないからです。
"for○○ = ☆ to ☆☆" と "do until ☆ loop"
どちらがどうというのは簡単ですが、掲示板などを1ヶ月でも眺めていれば、自分自身で気が付きます。そして、デバッグをマスターすれば、上達します。
ちなみに、そのときに、インデンターがあると、ミスを見つけやすいです。
http://www.oaltd.co.uk/Indenter/Default.htm
プログラミングは語学と同じでしょうね。人によっては海外に行って現地の人と話をするとか、仕事で接待に喋れるようにしたいとか、目的は様々です。しかし、私のように、なんの目的もなくやっている人もいます。それは、どちらかというと、語学よりも数学を勉強するような感覚です。ある方は、VBAの訓練として、数学を勉強すると良いと言っていましたが、その人は、3年足らずでプロになってしまいました。
VBAは、学習段階では途中で思いついて何かを作ろうとしても形にならないことが多いようです。せめて、VBAの教科書(テキスト)をお持ちなら、最初のページから最後までページまでやり終えてから、何をしたいか決めたほうがよいと思います。その間は、辛抱です。
なお、私は、No.5さんのおっしゃる勉強すること自体が目的になっているかもしれませんね。目標も持たないもので「今のレベル」の意味合いもあるかと思いますが、それを越えられないといわれればその通りです。でも、それが悪いと思っていないのです。Ribbon Customizeにしても、Excel DNAにしても、また、 Git.Hub での管理するための Ariawase にしても、覚える必要性も使う必要性も何もありません。でもやっていて楽しいわけです。
「越えられない」というのは、何が問題かと言えば、VBA自体をベースに考えるから、ボーダーラインを越えていかないのだろうと思います。それにつけても、15年を過ぎても、知らないことはいっぱいあります。しかし、多くの人が、Excel VBAを見切りをつけて去っていきました。
大変詳しくありがとうございました。
最後の、多くの人がVBAに見切りをつけたという御文が気になります。
実はVBA、マクロ以外にも語学を学んでいますが、いちいち疑問が出てきます。小さな疑問も大事と思いつつ、後からわかることも多いので、とりあえず「そういうもんだ」で流すのも大事なのかもしれません。
せっかく熟練した回答者同士が、見下したような言葉を吐いたり、お互いに教えあう空気を邪魔するのは残念ですね…。
これからプログラミング言語を学ぶ方はもっと増えると思うので、争いごとは極力ないことを願ってます。
No.7
- 回答日時:
書籍を真似て動作が確認できているのであればもう一歩ですよ!
後は自分なりにコードの内容を少しづつ変更してみてはどうですか?
例えば繰返し処理を挙げられていたのでForをdoに書き換えてみたりなどして
もっと短く書けるコードが見つかるかもしれません。
(変数1つ減らせたりネストが浅くなったり)
はやりそれには他の人のコードを見るのが勉強になります。
ありがとうございます。
問題集の回答例でも、何パターンかコードが書かれており、それを見るだけでも勉強になりました(書けませんが…)。
今は実験の繰り返しですね。頑張ります!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby VBA 2 2023/01/14 14:14
- その他(プログラミング・Web制作) Pythonでこのプログラミングを作成するには 2 2022/10/25 21:19
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- 英語 be sorry for doingとbe sorry to have doneの意味の違いについて 2 2023/06/09 13:57
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- 英語 「自動詞+前置詞」で第5文型をとる文の構造について 3 2023/01/04 10:22
- TOEFL・TOEIC・英語検定 2014年に購入した英文法書でTOIEC対策をしてもよいか? 1 2023/01/08 11:41
- 英語 現在完了の「継続」ではなく「経験」の期間を表す前置詞について 2 2022/05/06 11:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どうしてもDelphi(デルファイ...
-
Visual C++ か Borland C Bu...
-
最近義務教育の中にソフト関連...
-
WPS Officeって有料ですか?
-
息子は中学1年軽度知的障害があ...
-
chatgptはどこで学習しているの...
-
chatgptはすごい勢いで使われて...
-
パソコンができるってどのレベル?
-
ビデオプレーヤーで写真を見る...
-
幼児用教育ソフトの入手法は?
-
RoboFormについて
-
itunes ネットをつないでいな...
-
System\\CurrentControlSetとは?
-
ローマ字学習タイピング 寿司打...
-
世の中に出るには高校普通科の...
-
NECのスタンバイレスキューLite...
-
パソコンに詳しい方に質問。パ...
-
学校のパソコンを使ってのメール
-
無料パソコン学習 Windowsの操...
-
Frieve Audio ASIOの設定について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
次に、楽天のアジャイル就活に...
-
システムコールをフックすると...
-
なんで喫茶店や図書館などでプ...
-
プログラミングの勉強が進みません
-
"kotlin"での初歩的なエラーで...
-
HSPを使ってオセロゲームを作っ...
-
3週間でC,C++,VC++の勉強を済ま...
-
息子は中学1年軽度知的障害があ...
-
パソコンができるってどのレベル?
-
ノーコードツールについて
-
chatgptはどこで学習しているの...
-
chatgptはすごい勢いで使われて...
-
最近義務教育の中にソフト関連...
-
写真加工で使うパソコン機器、...
-
Unityでカスタムメイドみたいな...
-
シーケンサー 動作確認 フリ...
-
RoboFormについて
-
外付けHDDを認識しない
-
世の中に出るには高校普通科の...
-
無料パソコン学習 Windowsの操...
おすすめ情報