作業分解

作業分解ができないとコードは書けない。
Excelで作業していることをVBAでするには、作業分解がいる。
分解してやっとコードが書けるくらいに単純になる。
作業分解して、まず1つのプロシージャを作ること。

英語を翻訳(英訳)する時に、「日本語の文章を小学校レベルまで日本語で簡単にしてから英語に直す」というのと同じだ。

困難は分割せよ」だ。「どうしたらいいかわからない」とか「実際にやってみると何から始めるのかわからない」、「入門書や実践編の本を読んでもできないつまずく」などは、最初の一歩が大きいんかな?

例題と演習、そして仕事

数学の授業

1,例題の説明聞く
2,演習する
仕事では
自分で演習問題を作る力もいる。

1,例題の説明聞く
これは、授業で先生が説明するんで、それを聞く
2,演習する
「じゃ、演習はじめ」って先生が言う。やってみると大抵はヘマをする。
さらに、
仕事の世界では、仕事上の問題を見つけ、解答できるように内容を分割、楽にこなせるように並び替える。ここまでせんといけん。
ExcelVBAの本を読んだら、実践せんといけん。実践するには、問題を見つけ。。。。

期末テストはいいのに模試では

昔々の話。
教科書の総合問題とほぼ同じ問題だったのに書き方というか表現が違う、解き方の手順が指定してあると手順が増えたり、抜けると違った問題にしか見えん。全く手がつけられない。なんなんだろうなーって。で思った、演習不足。問題集が好きになるきっかけだった。

仕事のパターンって決まっていて、ExcelのVBAの関数も似たものを作る。パターンにわけるといくつなんだろう。

関数を作る時に思うこと

1,処理の流れを簡単にする。
2,処理を分割する
3、汎用的に使えるようにする
最後の3は少し高度になるかな。

言い換えると、
1,簡素に。簡単にできるような方法を選ぶ
2,困難は分割せよ。これ肝。
3,使いやすく。引数とかクラスとか。
それにしても、この3つを一挙にやれるよになるには結構かかる。月単位だ。「分割」することが最優先かもしれん。

Pythonが人気なんだ

「python java ランキング」で検索すると動的な言語であるPythonが静的な言語で人気のJavaを抜いたとある。

Rubyもだが動的な言語?は、変数の宣言はしない。変数名の命名に制限はあるが、変数を宣言して型を決めるのは面倒だった。コードを書いているときは仕組みや流れを考えながら、どう変化するかわかんない変数の型を決めるのだ。適当にして先に進むってええわ。変数の名前と大きさや用途を先に決めることができないこともある。

静的な言語は、ハードウェアに近いコードを書く。C言語はOS開発言語だったはず。人に近い所で使う言語は動的な言語でええはずだわ。それに、こっちの方が多種多様な人たちを相手するので需要も多い。ハードは人ほど多様じゃないじゃない?。も一つ、型を決めておくと、コンパイラにエラーをチェックしてもらえるというのもあるが、そこまで複雑なもん作らない。

文系の大学でもPythonから始めてもええんじゃないかな?。C言語は電子関係かな?。かな?。かな?。息子の大学が文系だがC言語だそうだ。

モーダル モーダレス

モード学園からファッションを連想しそう。いつものモードに入ったで、とか戦闘モード、勉強モードの方。

モーダルは今のウィンドウを閉じんとそのアプリの別のウィンドウに移れない。モードに入ってるから自由にできないってこと。ところで、他のアプリは自由に使えるで。これVBAの話だな

Excel外部リンクの探し方

ファイルを開いたタイミングで別のファイルとのリンクを更新するか問われることがある。

実は外部のワークブックの参照は2つある。

  1. 外部リンク(ファイルを開くタイミングでわかる)
  2. 名前

外部リンクに関してはマイクロソフトの参考サイトがある。Ctrl+fでブック単位で.xlを検索。
名前は盲点だ。
名前は、他のワークブックからコピーのタイミングで名前が作られる。これが盲点。
次図は、セルA1の名前だけ。外部のファイルの名前ではない。外部かどうかは参照範囲でわかる。数式タブに「名前の管理」がある。

A1
のセルを別のワークブックにコピーすると、別のワークブックには「あいうえお」の名前がコピーされる。

開発時は参照設定と運用時はCreateObject関数

オブジェクトのインスタンスを作る時。

開発時は、参照設定でNewキーワード。ディバッグ時に型が特定されているのでメンバーの参照ができて楽。

運用時は、バージョン違いでも動くようにCreateObject関数を使う。