プログラマ、テスター、SE、PMなど、いろいろやってるオヤジです。

得意技を身につけておこう -VBAでもAKBでも

»

こんなときどうする?

 あるディレクトリにたくさんのファイルがあり、それらのファイル名の一覧表が欲しい、と言われたら、あなたはどうやって一覧表を作りますか?

 私だったら、Windowsのcmd.exeでdir/b > list.txt と打ってテキストファイルにはきだします。ほかにもいろいろなやり方がありそうですね。

プログラムソースを全部修正せよ

 以前に、C言語でプログラムを300本程度作ったあとで、ある共通関数の仕様が変更になりました。ほぼすべてのプログラムでその関数を使っており、すべて修正が必要です。ある1行の処理を追加しなくてはいけません。そんなとき、あなたならどうしますか?バッチやシェルで編集する、Perlで書く、などいろいろな方法があるでしょう。

 私はExcelVBAで修正しました。実はこんなこともあろうかと、編集ツールをVBAで作っておいてあったのです。検索キーワードを入れて実行すると、指定したディレクトリ内のファイルを開き、キーワードを検索し、その前または後の行に指定した文字列を挿入するというものです。モードを変えると、挿入したり1行削除になったり切り替えられます。

 この編集ツールのおかげで約300本のファイルを簡単に修正することができました。

高輪ゲートウェイを追加せよ

 先日行ったエクセルプログラミング勉強会ではこのやり方を説明しました。例題として、山手線のどこかの駅からどこかの駅までの駅名が並んでいるたくさんのテキストファイルがあり、品川と田町の間に「高輪ゲートウェイ」を追加するプログラムをVBAで作ってみました。

 こういったことができるといざというときに役立ちます。

得意技を身につけておこう

 シェルでもPerlでもVBAでもAKBでもSKEでもなんでもいいのですが、ひとつ自分の得意なやりかたを持っておくと、いざというときにも慌てずにすみます。ITエンジニアのあなたならではの得意技を何かひとつ身につけておきましょう。

 え? AKBは違うだろうって? 「っという間にできる単なッチ」の略ですよ。知らないの? じゃあSKEは?、...自分で考えてください!。

 あべっかんでした。

Comment(7)

コメント

ちゃとらん

> Windowsのcmd.exeでdir/b > list.txt
DOS窓開いてって言ったらきょとんとされます。(最近の若い者は・・・)


20~30件程度の場合、エクスプローラを開いてファイルを選択、Shiftを押しながら右クリックで、「パスとしてコピー」メニューが現れますので、これでクリップボードにファイル名がコピーできます。(フルパスですけど)。
利点として、日付順にソートしてから選択とか、右上の検索窓で検索した結果を取り込む場合に便利です。


SKE → 「すっきり 解決 エクスプローラ」 の 技です。

abekkan

>ちゃとらんさん

SKEのワザですか。さすがちゃとらん!
今度使ってみようかな(^^)

コバヤシ

パスとしてコピー!知らなかったので大感動です。思わず書き込んでしまいました。
SKEのワザすばらしいですねー

abekkan

ちゃとらんさん、感謝されてますよ!

ちゃとらん

> ちゃとらんさん、感謝されてますよ!
いや~、うれしいですね。
# 自分のブログでは、あまり感謝されたことないので。


ちなみに、SKEの技、選択して右クリックした行を先頭にパスがコピーされるので、一番上の選択ファイル上で右クリックしましょう。
# いつも真ん中らへんで右クリックしてたので、並び順が変だなーって思ってました。

Mc

>パスとしてコピー
他のアプリケーションを使うので邪道かもしれませんが。

エクスプローラーのフォルダ(ファイル)一覧をコピーして、
サクラエディタ(他のテキストエディタでもできるかも)に貼り付けると即座にフルパスが取得できます。
さらにサクラなので矩形選択で途中までをガツっと削除できるので一覧の取得も楽チンです。

コマンドの文法なんだっけ、と考えている間に完了するので結構オススメです。

abekkan

>Mcさん

会社でサクラを使っているのでやってみました。
なるほど。いいワザを教えていただいてありがというございます。(^^♪

コメントを投稿する