我流Excelマクロの基本~ExcelVBAでMP3整理その1~
前回は第0回として動機と目的、そしてオススメのExcelマクロの基本サイトを紹介しました。続けて今回も基本的な内容をおさらいしつつ、8BitPC時代のBASICを懐かしむネタを挟んでいきましょう。
なお、マジメにExcelマクロを勉強したい方は、前回の記事で紹介したリンクや次のサイトなどをご覧ください。
Excelのマクロ・VBA塾
http://kabu-macro.com/index.html
初心者の方は、上記サイトの自動記録から覚えると良いでしょう。
前回も紹介しましたが、次の初期設定を行った上での画面スナップを使います。
Excelでお仕事!お勧めの初期設定
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_040.html
Excelマクロを覚えようと思った時にとてもお世話になったので、身についたと言える今でも一番最初に初心者へ伝えることは「初期設定は上記サイトを見て準備して下さい。」と言ってるくらいです。
話は飛びますが、私がExcelマクロを覚える必要に駆られたのは、集計関係の業務を担うようになったからですが、もともと30年くらい前の8BitPC時代にFM-NEW7でF-BASIC3.0で遊んでおりました。
BASICの基本はその時に覚えたので、仕事でVBAを扱い始めても馴染むのは早かったです。ことわざで「好きこそものの上手なれ」とありますが、ぶっちゃけゲームを作りたくて覚えようとしてすぐに挫折したので、言うほど「好き」ではありません。
しかし仕事なのでせざるを得ない状況のため、右も左もわからないVBAでしたが「勉強して給料が貰える。(懐かしんでて業務時間を潰せる。)」と前向きに考えて乗り切ることができました。
そんな訳で、ン十年ぶりに触るBASIC言語ですが。まず驚いたのが環境の進化です。上記サイトの色変えくらいは驚きませんが、ステップ実行とローカルウィンドウの変数表示などの便利さは「タダ(Officeが標準ならば・・・ですが。)でこんな開発環境がついてるなんて!」とMicrosoft信者になりそうでした。
昔のF-BASICでは、バグ探しに「TRON」(トレースオン)ってコマンドがあったんですが、一行ごとに実行を表示させる機能なので、ソレを使うと文字通り「表示」されて本来求めていた表示が壊れてしまう弊害があったんですね。
F-BASICとExcelVBA、比べてみるとこんな感じでしょうか。
なお、エミュレータ画面はXM7から使用しています。
FM-7エミュレータ XM7
http://retropc.net/ryu/xm7/xm7.shtml
吸出し方も解説いただいているので、AVなら本体だけでモニターが無くてもナントカなります。8BitPCに思いを馳せる方、AVなら今でも見つかりますので早めに保護しておくと良いでしょう。
さて、そろそろ本題に入りましょう。
本来なら何をどうしたいのかまとめて、フローチャートとかにするんでしょうが、男の料理にレシピは要らぬ!・・・って違うけど、私はとりあえずプロシージャーを書き始めるところから考えます。
っていうか、フローチャートを作ったりするのが面倒なだけですが、そもそも売り物にする訳でもないから動けばOK。動かなかったら回避方法を考えれば良いだけなので、突き進んでナンとかします。
まずは、普段使っている「自パス」などの変数指定から始めます。
本職のプログラマーじゃないので、変数のつけ方も漢字(2バイト文字)を平気で使います。さらにオブジェクト指向プログラミングなんて身についてませんので、結果論ならともかくとりあえず一つプロシージャーを作って使えそうな部分をコピペして再利用しております。
続いて、各種情報を入れるための配列変数です。
とりあえず「10000」にしてますが、Excel2003の行数を考えれば「65000」くらいにしておく方が良いかもしれませんが、メモリ不足の発生は避けたいところなので少なめにしておきます。ちなみに私のMP3ファイル数は6000未満でした。足りないと思われる方は適当に増やしてください。
・・・と・・・今回の記事も長くなったので、ロクに進んでませんがこの辺りで第一回終了としましょう。週一くらいで更新したいと思っておりますが、これまた面白いゲームがあれば浮気する程度のモチベーションなので、更新頻度や完成時期は全く未定ということでノンビリ進めるとします。
最後にお約束:
当ブログで紹介するExcelマクロに関する内容・配布ファイルなどで、どんな損害を被っても一切関知しません。自己責任でお願いします。また、コメントでご質問などを頂いても、自分のブログを見直す事は滅多にしませんので、twitterなどで一声かけて頂く方が気づきやすいです。アカウントについては、プロフィールページをご確認ください。
Recent Comments