VBAでExcelぶっ叩く用事ができたんですよ。
んで、標準モジュールの中でPrivateな定数を宣言して、そいつを同モジュールのFunction内で使おうと思ったのね。
したら

「コンパイルエラー:変数が定義されていません」

って言われたのね。

ほぅと思って「vba 変数が定義されていません」でググった。
で、一番上に出てきたページがこれだったんだけど

マクロ言語の類で変数の宣言を強制する言語というのはありません! 変数宣言が必ず必要とされるのはプロ向けの高級言語だけです。

マクロ(VBAのプログラム)の場合には、高級言語とは違って予め変数の定義を しておかなくても勝手に(機械的に)判断をしてくれますので、特に変数の定義 というのは(上記の②の[変数の宣言を強制する]というオプションをわざわざ設定して おくという行為は)必要はありません

とかほざいててマジに戦慄した。

①「変数の宣言をしない」という精神でプログラムを組んだことがある人ならわかると思うが、最終的に可読性の低いウンコードになる。普通に数年プログラマやってたら変数の宣言をサボるなんて発想にならない。「人の好みによる」とかのレベルじゃない。基本中の基本だ。まして初心者に教える立場で「変数宣言しなくていいよー」とか言えるわけがない。

②変数の宣言をすると「難易度が高くなって」しまうとか言ってるけど、このページの情報を鵜呑みにしてマクロを組んだら、いずれもっと難易度が高くなる。しかも変数の宣言強制なんて全く難易度高くない。「知らない」と「難しい」を混同させている。

③「プロ向けの高級言語」とか言ってるけど、「高級言語」の意味を理解していない。アセンブラとか機械語じゃない時点で既に高級言語だし、変数宣言しなくてもいい言語はむしろ「より高級」であるとも言える。

④ページのタイトルが『「変数が定義されていません」エラーの対処方法』なんだけど、何も対処していない。トイレでウンコして、流さずにトイレットペーパー乗せまくるようなもの。

⑤メルマガやれるレベルじゃねーだろお前バカが

結論

まともな情報を伝えろ。
変数宣言について正しい情報が知りたい人はまずこのページをみて、より深く知りたければこのページらへんを根気強くみとけ。

▼追記:2019/05/23

↓恥にクソを上塗る左官

https://blog.goo.ne.jp/santaro2006/e/c026e5bc84ae7caeaedf1ea36110acb7

絶許認定記念永久保存意思表明魚拓

ここまで行くと笑えねぇわ。

自分の無能を晒すだけなら別に構わんよ。でも、この進撃の爆臭ウンコはVBA初学者にとって有害な情報になってしまっている。それはもはや悪事だ。道端で脱糞した上に、それを片付けるどころか追いゲロを贅沢にまぶして汚物を生成した。公道での排泄行為はいわゆるギルティに分類されるし、自分のBullshitを素直に認められず、大便フレグランスのかぐわしさを主張したいエゴで人を苦しめるのは悪意が無くても悪人だ。

更に言えば、プログラミングパラダイムを発明し、実装してきた先人たちに失礼だ。彼らが今日に至るまで連綿として絶えず積み上げてきた叡智に対するウンコバケツチャレンジ同然の甚だしい侮辱をしている。

確証バイアスのモデルみたいな上記記事では、「どうやったら自分の正当性を主張できるか」に注力している。なんで自分がおかしいと思えないんだろう。コメント欄でも当然のごとく正論ぶつけられてるし、俺ならまず自分を疑うわ。てかコメント民が聖人すぎる。諭すような語り口で、暴れる迷子を導くような優しさに溢れている。菩薩かよ。俺なら一文ずつあげつらいながら論破と並行して罵倒しつつコテンパンにブチのめすわ。

1回読むだけで破綻していることが判る。自分で言ったことを自分で否定している。あげく「人間だれしもミスはするから、ミスをチェックする機構を外そう!」って。何を言ってんの。

幼稚園からやり直してくださいね(笑)

なんやねんその態度?あんまり言いたかねぇけどコイツ人間性まで極悪かよ。善意の行動に唾吐かれたコメント兄貴が不憫でならない。

仕打ちが酷すぎる。人生で初めて正義感というものが芽生えた。

この…(絶句)

この!人の善意を踏みにじるナメ腐った畜生コメントでドタマにきて追記を書こうと思い至ったわけだ。許されてはいけない。

変数名のチャックぐらいは自分でできないと・・・。

ギャグか?俺はいま釣られているのか?釣りだとしたらレベル高すぎて理解が及ばないわ。

あとさぁ、Pythonを引き合いに出してるけど、この智将Python使ったことないでしょう。だって普通に変数宣言強制してるし。お前の綿棒みてぇな強度のガバガバ理論武装のために開発された言語じゃねぇぞ。WikipediaのPythonのページでも見れば…

というか、そういうレベルじゃない。「こんぱいらってなに?いんたぷりたってなに?型しすてむってなに?そくばくってなに?」って感じじゃん。だからやめた。勝手にやってろ。ただ、人に迷惑をかけるのは、お願いだからやめていただきたい。それだけ。

毛の壁もそうなんだけど、無知で無能な頑張り屋は本当に悪い。悪だ。本人に自覚のないまま人を困らせる純粋悪だ。まず病院に行ってそのパーソナリティに病名つけてもらえ。

「地球は球状じゃない。円盤状なんだ。なぜなら宇宙から見た時に円形に見えたからだ。偉い人も地球はまるいってゆってた!」って、お前にとってはそうかもしれないけど子供が信じたらどうするつもりなの。著しい虚偽を含む風説を流布するな。被害者がでるんだぞ。損害がでるんだぞ。どう責任取るんだ。

「機械任せ」なんかにしたらいけません!

じゃあ手で帳票書いてろ。そろばん弾いて計算しやがれ。そろばんを手前に倒した後に上の珠をチャーってやってろ。俺は機械任せにできる全てを機械任せにする。

変数宣言を強制しろ。さもないと半年後のお前が困る。あるいはExcelを引き継いだ人間が困る。楽に書けない言語に於いて書く時に楽をするのは「サボり」に他ならない。修正する時に楽ができるコードを書け。安全なコードを書け。

▲追記以上

P.S

なんらかの答え的なアレを目的にこのページを開いた幼女にはどうでもいい記事だったかも知らん。すまんな。質問とかあったらコメント欄にしてくれていいよ。1営業日中に答えるわ。

俺がぶち当たった問題の原因について説明すると、つまり、あるFunctionの真上で定数を宣言していたんだけど、そのFunctionはもっと上の別のFunctionでコールされていた。それが原因だった。伝わるかな。
モジュールで使う定数は全部、一番上で宣言しておいたほうがいいね。把握は面倒になるが。
コンパイラが賢かったらフィールド定数の宣言位置なんて気にしなくてもいいのになぁ。

ついでに言うと、作ろうとしたものは「シートの(セル値の)アクセサ」クラスなんだけど、自分でひらめいたにしては頭の賢い発想じゃないかと思ってる。誰かほめて。