表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
Excel VBA プログラムの作法  作者: 流 琢弥
4/4

Sub から始める

VBA を始めるに当たり、納得行かなかった筆頭がこれだ。VBA にはmain {} も int {} も存在しない。マクロは Sub 文、ユーザ定義関数は Function 文に書かなければならない。

Sub ()行で始め、End Sub 行で終わる。なんて書き方は、マクロの記録で自動生成されるコードを見れば良いので、あまり気にしなくてよい。それより Sub 文の中に、他の Sub ()や Function ()を呼び出せることを覚えて頂きたい。これを使ってマクロの分割ができる。

呼び出し文冒頭の Call は省略できるが、省略してしまうと後から見てこんがらがるので、書いておくよう薦める。次いでに書くと、代入式も実は Let 文の冒頭省略とされる。

  Let n = n + 1

という事は、覚えなくてよい。必要が無い。

なおヘルプは「文」とは書かず、「Sub ステートメント」「Function ステートメント」としている。……だから、ちっとは考えて書け、馬鹿野郎!


Sub というのだからサブルーチンの略に思えるのだけど、VBA のサブルーチンは別にあって、Goto 文で飛ばした先のルーチンを言う。ルーチンには名前を付けておくか、行番号を指定する。

If 文などとは違う Goto の味わいは、何処にでも飛べて終わりというものが無い自由さにあり、ハッカーが愛して止まないものらしい。「Goto キャンペーン」の名を耳にして寒くなったプログラム仙人が全国に1000人はあるかと思いきや、そういう話を聞かないのは、他人の頭を使わないと文字も書けない新聞記者が、人の話を聞かないからであろうか。

それはさて置き、こんなのでもエラー処理には使える。OnError Goto …… とやって、メッセージを出したり開いたファイルを閉じて終了とか。見れなくなったヘルプにサンプルもあったと思うので、見れる人は参照されたい。

際限なく Goto で飛ばして回る処理も書けてしまう筈だが、何かしら忌まわしい感情により、この点に関する小生の記憶が失われてしまったので悪しからず。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ