豊田 孝

 第6回では,Internet Explorerの「お気に入り」情報をファイルとして整理するサンプル・プログラムを紹介しました。今回は,この「お気に入り」の整理方法をより詳しく紹介します。

今回のサンプル・プログラム

図1●筆者の「お気に入り」フォルダ
図2●サンプル・プログラムの実行結果
図3●「Eclipse.htm」ファイルの内容
 まずは第6回の復習を兼ねながら,サンプル・プログラムを実行しましょう。私の「お気に入り」は図1[拡大表示]のようになっています。

 第6回で紹介したサンプル・プログラムは「お気に入り」内のすべての情報を収集し,ファイルとして所定のフォルダに格納するものでした。今回紹介するサンプル・プログラムは,特定のフォルダを指定し,そのフォルダ内の情報のみをファイルとして格納できるようになっています。

 それでは,いつものようにこちらからサンプル・プログラムをダウンロードし,実行してみましょう。私のWindows XP環境では,図2[拡大表示]のように,「Eclipse.htm」というファイルを生成します。これは,デフォルトでは,「Eclipse」というフォルダ内の情報を収集し,表示しているからです。他のフォルダ内の情報を表示させる方法は後ほど説明します。

 図1と比較してみると分かりますが,「UML」や「Security」など,他のフォルダ内の情報は収集していません。参考のために,作成した「Eclipse.htm」ファイルの内容を紹介しておきます(図3[拡大表示])。

 このファイルには,インターネット・ショートカット・ファイルが格納されていますから,クリックすれば,その場で閲覧を開始できます。また,ここに表示されているショートカット・タイトルは「お気に入り」に登録するときに私が付けたものです。このタイトルを見ると,当時の私は,Eclipseの人気の秘密などを調べようとしていたことが即座にわかります。登録時にちょっとした作業をするだけで後々の作業がかなり効率化されますね。この「お気に入り」情報を取得するサンプル・プログラムは,ちょっとした変更で別の使い方があるのです。それでは説明しましょう。

サンプル・プログラムの機能と拡張のためのヒント

 今回のサンプル・プログラムは,リスト1のようになっています。基本的には,第6回で紹介したものと同じですが,次の3つの機能を新たに追加しています。

追加機能1:「お気に入り」内の特定フォルダを指定する機能
追加機能2:上記で指定したフォルダ内のサブフォルダを指定する機能
追加機能3:収集した情報を格納するフォルダを自動作成する機能

 追加機能1を使用する場合には,次のように目的のフォルダ(この場合,eclipse)を指定します。

strFirstFolder = "eclipse"

 追加機能2を使用する場合には,同じように,次のように目的のフォルダ(この場合,omg)を指定します。

strSecondFolder = "omg"

 なお今回のサンプル・プログラムでは,この機能2に指定できるのは,第1フォルダだけという制限があります。たとえば「c:\itpro\toyota\No16」というフォルダ構成があった場合,第2機能には「toyota」だけが指定できます。「No16」は指定できません。興味のある方は自分なりに機能を拡張してみてください。

 第3の追加機能は次のように実装されています。

'' 追加機能3:本文参照
Function WrapperCreateFolder()
On Error Resume Next
Dim oHelper,oFolder,strFolder

 strFolder = "c:\ITProToyota"
Set oHelper = CreateObject("Scripting.FileSystemObject")

If oHelper.FolderExists(strFolder) Then

  strFolder = strFolder & second(time)
End If

Set oFolder = oHelper.CreateFolder(strFolder)
If ucase(oFolder.Path) = ucase(strFolder) Then

  strBasePath = strFolder & "\"

  WrapperCreateFolder = True
Else

  WrapperCreateFolder = False
End If
End Function

 情報が格納されるデフォルトのフォルダは,strFolder = "c:\ITProToyota"のように,"c:\ITProToyota"となっています。プログラミング初心者の方はこの文字列を自由に変更するとよいでしょう。実装コードをじっと見ると分かりますが,"c:\ITProToyota"フォルダがすでに存在する場合には,既存フォルダ名に秒数を追加し(strFolder = strFolder & second(time)の部分),フォルダ名の重複を避けています。

 インターネット時代に入り,私たちはさまざまなプログラムを無料でダウンロードし,Windowsシステム環境内で利用できます。例えば,Eclipseという統合開発環境をインストールしたとしましょう。皆さんはこの統合開発環境の概要をどのように把握していますか?実はこのような場面でも今回のサンプル・プログラムは威力を発揮します。Eclipseを「Eclipse」というフォルダにインストールしているとしましょう。サンプル・プログラムを次のように変更してみてください。

'' 応用1:本文参照
'Set instFolder = CreateObject("Shell.Application").NameSpace("C:\eclipse").Items

 実際にはこれ以外に2,3個所の変更が必要になりますが,ソースコードを読めば分かるはずです。変更後にサンプル・プログラムを実行すると,「お気に入り」内のフォルダとそこに格納されている情報が収集されたように,Eclipseに関する構成情報が収集されます。自分で作成したプログラムでEclipseに関する情報を収集できると,不思議なほどEclipseに対する親近感がわいてきます。情報が収集されるまで結構時間がかかりますが,ぜひ挑戦してみてください。

 今回は以上で終了です。次回またお会いいたしましょう。ごきげんよう!