古庄 潤(ふるしょう じゅん)
本業はエンジニア。ICに様々な機械をつなぎ,電流やら電圧を測定する。もちろん,これらの測定器もVBAでコントロールし,取り込んだデータもマクロで処理する。人呼んで,マクロの鬼軍曹!
今回のサンプルは,Excel 2002/2003/2007での動作を確認しています

ガサゴソ・・・ガサゴソ
「先生,何してるんですか?」
「おぉ,ゲール君!宝物の整理をしておるんじゃ」
「なんだ,がらくたの処分ですか」
「がらくたとは何じゃ!がらくたとは!」
「だって,使わなくなったハードディスクとか,CD-ROMドライブなんてゴミです。ゴミ!」
「何を言うか。PCが故障したときに,換えのドライブがないと困るじゃないか。この前,君のPCも修理してあげたでしょ?」
「そんなこともありましたね。で,整理してどうするんですか?」
「うむ,捨てる」
「え?まさか?もったいない病の先生が?」
「ドライブもキーボードも,予備は一つあればいい。どうせ,古い部品を使っての修理は一時しのぎ。後で新品に交換するからな」
「へぇ~,人って進歩するんですね?」
「少しはな。ところで,捨てる予定のドライブなんじゃが,ゲール君,いらんかね?」
「いりません!そんな,ちゃんがらドライブ。それよりも,仕事をしてください」
「は~~~~い」
「お待ちの患者さん,ど~ぞ~」

今月の相談
 本来,Excelで処理することではないと思いますが,複数のファイル名をさらっと変更する上手い手はないでしょうか? 現場写真のファイル名は,日付と時間,それにシリアルナンバーで構成されているので,整理するときに不便です。ファイル名の日付を工事現場の名前に変更したいんです。
(例)20091108153400001.jpg → 須磨児童公園改良工事153400001.jpg

「先生,今回の症状は,Excelとは関係ないようですが?」
「うむ,そうじゃな。Excelは数値の整理,分析をするためのツールじゃからな」
「でしょ?」
「しかし」
「しかし?」
「プログラムを開発する環境が無いとしたら?」
「どういう事ですか?」
「VS(Visual Studio)やC++等のプログラムを開発する言語を持っていないとしたら?」
「OfficeにはVBA(Visual Basic for Applications)がある」
「御名答!」
「そうでした。プログラムを開発する言語を持っていなくても,Officeをインストールしてあれば,VBAでプログラムが作れます」
「おぉ,ゲール君,成長したな」
「ところで,ファイルの名前を変更するようなプログラムをVBAで作れるんですか?ってか,そもそもプログラムでファイル名を変更できるんですか?」
「もちろんじゃ。ファイルはオブジェクトとして操作できるから,ファイル名も変更できる。VBにできて,VBAにできないことは少ない」
「それじゃあ,VBを買う人がいなくなります」
「それは,わしの関知するところではない」
「それもそうですね。ところで,既存のファイル名に工事現場の名前を追加するってどうやるんですか?」
「文字列結合をすればいいじゃろ?」
「なるほど。でも,特定の日付のファイルだけですよ」
「ふむ・・・」
「やっぱり,ファイル名を取得して,文字列を照合し,条件分岐するんですかね?」
「いや,もっとさらっと出切る方法がある」
「伺いましょう」
「置換するんじゃ」