知識の倉庫の整理はてなブログからワードプレスに引っ越しました。ここでは中小企業診断士の勉強記や経理、派遣社員として働いて気づいたこと、その他にプログラミング関連やVBAについて思ったことを書いています。現在はJavaScriptを勉強中。2019.01.14SEやプログラマーの方たちがシステムを実装している時は、すぐに「こういった動作をさせたい」コードを思い浮かぶ人もいるでしょうし、そうじゃない人もいるでしょう。求めているコードが思い浮かばない人たちはどのようにしてコーディングしていくのでしょうか。いろんな辞書的な本を職場に持ち込んで調べながら仕事を進める人もいるでしょうし、インターネットでシステムにさせたい「動作」やその「言語」を検索欄に入力して調べる人もいるでしょう。他にも何らかの方法があるとは思いますが、何となく多くの人がやっていそうな方法を記述してみました。ここまで数ヶ月間システムをつくるためにプログラミングをしていて気づいたのは、辞書を調べてもインターネットで調べても求めているコードが意外と「見つからない」という現実です。今回はこのことについて思ったことを書いていってみます。自分が調べた範囲での辞書やインターネット上での情報からの現状なぜ求めているコードが見つからないのか基本的なコードを見つけることは出来るのだが・・・ExcelVBAから外部アプリ操作やクラスモジュールに関するコードが見つからないYahoo!知恵袋でもQiita(キータ)でも目的のコードは見つからないなぜインターネットでコードのストック集が多いのかわかった気がするあわせて読みたい自分が調べた範囲での辞書やインターネット上での情報からの現状これは非常に「意外」だなと感じています。自分はExcelVBAを使ってシステムをつくる仕事に就いて、数ヶ月間コーディングをしてきました。システムを実装していると、自分が考える動作をシステムにさせたいと思っても、どうしてもそれに当てはまるコードが思い浮かばない時があります。いった時は辞書やインターネットで検索して調べるのですが、これが「意外」にも求めているコードが見つからないんです。以前の自分は、システムをつくる上で辞書やインターネットは「万能」だと思っていました。表の最終行」などで検索すればいくらでもそのコードが書かれたサイトがヒットしていたからです。ExcelVBAでもAccessVBAでもコードが充実した多くの辞書が売られていますし、インターネット上でも多くの優秀な方たちが文字通り星の数ほどのコードや例文を記述したサイトをUPしてくれています。システムをプログラミングしている途中で仮にわからない動作があったとしても、辞書やインターネットで調べれば多少時間がかかっても「わからないことなどない」と思っていました。実際に仕事でプログラミングしていくと気づくようになっていったのですが、現実は違っていました。何に気づいたのかというと「自分が求めているコードが見つけられない」ということにです。「そもそも必要な動作の『発想』自体が自分にはないのではないか」という風に自分に問題があるんだと思っていました。「表の最終行の行番号」ではなく「罫線が設定されている最終行の行番号」を取得したいと思った場合、最初は次のようなコードを考えるのではないでしょうか。1).End(xlUp).RowExcelの表のA列の一番下からショートカットキーの「Ctrl+↑」と同じ動作で、表内の最終行を取得できるというものです。この方法だと取得できるのは「データがある最終行の行番号」であって、何もデータが入力されていない行がある表の最終行は取得できません。ある表が10行あってデータが入力されているのは5行だけ、しかし罫線は10行目まで引かれている、といった場合です。いった時は2「UsedRangeプロパティ」というコードがあります。このコードは「使用されている最初のセルから最後のセルのセル範囲」を取得できるので、表内に空白行があっても罫線が引かれている「10行目の行番号」を取得できます。表の最終行を取得したいと思ったときに1のコードしか知らず、2のコード自体を全く知らないという状態だったら、本来であれば出来た仕組みが「できない」という結果にならざるを得ないかもしれません。出来たとしてもコードをこねくり回して難解なコードを作らざるを得なくなるかもしれません。自分が言う「発想自体がない」とはそういうことです。単純に「知っているか、知らないか」という問題でもあります。それ自体は仕方ないことだと思っていました。自分はまだ経験も知識も浅いので、「ピンポイント」で直接的に求めているコードを探すことは出来ません。「動作や状態」で探すようにしていました。vba」で検索すると先ほどのUsedRangeプロパティを見つけることが出来ます。自分が作ろうとしているシステムにズバリ合うコードなど見つかるわけがない、断片的に合いそうなコードを見つけてそれを組み合わせればいいのではないか、そう思っていた時期もありました。それでもどうしても求めているコードが見つからない時があります。辞書やインターネットでは基本的なコードを見つけることは簡単です。次のようなワークシートの名前の変更や削除するコードです。削除」などと入力して検索すればすぐに見つけることが出来ます。問題なのは、もっと複雑なコードやExcelVBAから他のアプリケーションを操作するようなコード、クラスモジュールに関するコードが見つからないことです。ExcelVBAから外部アプリ操作やクラスモジュールに関するコードが見つからない何らかのシステムを作っている時に「こういう動作をさせたい」と思っても、「これは今までのやり方じゃ無理だな・・・」と気づくことはないでしょうか。仮に「これはExcelVBAから外部アプリケーションを操作する知識がないと駄目だな」とか、「この動作はクラスモジュールの知識が必要なんだな」ということがわかったします。残念なことに、そのような分野の操作方法がまとまった本や情報というのは、数ヶ月間いろいろと調べてみましたがなかなか見つけることが出来ませんでした。ExcelVBAからIEを操作する方法などは多く見つけることが出来ます。ExcelVBAからPowerPointやOutlook、さらには他のアプリケーションを操作する方法に関するまとまった情報はなかなか見当たりません。Yahoo!知恵袋でもQiita(キータ)でも目的のコードは見つからない自分が「こういった動作をさせたい」と考えているコードをインターネットで検索していると次の「Yahoo!知恵袋」と「Qiita(キータ)」という2つのサイトをよく見かけます。JAPANが運営する、電子掲示板上で参加者同士が知識や知恵を教え合うナレッジコミュニティ、知識検索サービスである。Qiita(キータ)-WikipediaQiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。2016年現在で日本最大のプログラマーコミュニティとされている上記2つのサイトはExcelVBAやそれ以外のコードに関しても有益な情報がたくさん記載されています。辞書にあるようなコードだけではなく、実践向きの「入り組んだコード」も多く見つけることが出来ます。Yahoo!知恵袋の方は、質問者に対してそれに答えるというスタンスでコードが書かれており、なんとなくその切迫感や切実さが伝わってきます。このようなやり取りを見ていると、今まで多くの人が自分のように辞書やインターネットで探しても、どうしても求めているコードが見つからなかったんだろうなと気づかされます。上記のようなサイトが存在しているのは本当にありがたいことです。上記以外にも、わからないコードがあった場合質問できるサイトはたくさんあります。求めているコードがわからない時に辞書が基本的なコードを教えてくれる役割があるとすれば、上記に引用したようなサイトがより実践向きのコードを教えてくれる役割を担ってくれているとも言えます。いうものの、インターネット上にはExcelVBAのコードに関して過去に膨大なやり取りの記録が残っているはずなのに、まだ自分の求めているコードが見つからなかったりするのです。「ExcelVBAでOutlookにある指定のフォルダの中から特定の文字列が含まれるメールを検索する方法」を探したかったとしても見つかりません。「OutlookVBA」だけで探すと「Outlookにある指定のフォルダの中から特定の文字列が含まれるメールを検索する方法」はあるかもしれませんが、ExcelVBAでOutlookを操作したいと思ってもその方法は見当たりません。自分の探し方が悪い、というのももちろんあると思います。いうか基本的に「ExcelVBA」から「他のアプリケーション」を操作するという方法の情報自体をあまり見つけることが出来ません。世間的に需要がない、というのもあるでしょう。自分で試行錯誤して欲しい動作ができるコードを自力で見つけていくしかないのかもしれません。インターネットでコードのストック集が多いのかわかった気がするおそらく自分のように辞書を調べてもインターネットを調べても求めているコードが見つからない人というのは結構多いのではないでしょうか。自分はここ数ヶ月間、ExcelVBAの辞書を見ながらシステムを作る時がありましたが、段々と不足感を感じるようになっていきました。いうのも辞書という形では物理的、ページ数的に入れられるコードには限界があり「断片的」でもあるからです。いった事情から徐々にインターネットでコードを調べるという方法にシフトしていきました。いっても辞書よりは複雑で実践的なコードを見つけることは出来るのですが、ここまで書いてきたように今ひとつという感じです。「ある所にはある」んだと思います。すごい充実したコード集みたいなものがインターネット上でのサイトやどこかの書籍に。一方で気づいたこともあります。それは個人でVBAに関するコードをストック集のようにサイトにまとめてくれている方がいるということです。「その人が試行錯誤して実際に役立つコードを業務で使えるように蓄積してきた」のかもしれない、ということです。以前は不思議に思っていました。「なんでここまで手間暇かけてこんなに充実したサイトをつくるのだろうか」と。アフィリエイトとかアドセンスが目的という場合もあるのかもしれませんが、やはり一番の理由は「業務上必要だから」なのではないかと思いました。業務上わからない動作やトラブルがあったとして、わからないままにはしておけません。技術者が「わからない」と言い続けていたら早晩クビにされてしまいます。ならないようにするための策のひとつして、ブログやサイトにコードを業務に使える形にして、わからない時にインターネットで自分のサイトを見にいっているのかもしれないなと思いました。個人個人がよりレベルアップしていくためには、そのような方法も実践していかなければいけないのかもしれません。コメントをキャンセルメールアドレスが公開されることはありません。