<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Apps</title><link>http://www.sqljp.com/yamaken/category/98.aspx</link><description>Apps</description><managingEditor>YamaKen</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>YamaKen</dc:creator><title>IE7の自動更新は誤爆だった?</title><link>http://sqljp.com/yamaken/archive/2007/10/05/24090.aspx</link><pubDate>Fri, 05 Oct 2007 23:27:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/10/05/24090.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/24090.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/10/05/24090.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/24090.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/24090.aspx</trackback:ping><description>&lt;P&gt;インストーラを改めたIE7の自動更新経由での配信開始は本来もっと先のスケジュールのはずなのですが、本日、自動更新で IE7 が配布されるハプニングがありました。本来のスケジュールは少なくとも一カ月以上先(たぶん2008年2月かそこら)ですが、マイクロソフト側でオペレーションにいささか手違いがあった模様。モジュールのビルド自体は問題ないとして、配信予定より数カ月分、前倒しになってしまっていたのでした。 各企業でそれぞれに必要な構成を維持している Common/Standard Operation Desktop Environment の構成に影響する恐れがあるという意味で、ちょっと気になるハプニングです。&lt;br&gt;
なお、英語版のIE7リフレッシュ版は予定通りのリリースなので、こっちは問題なし。(これに伴い IE7 Blocker Toolkit も英語版のみアップデートあり。)&lt;br&gt;
この件について、MVP for &lt;a title="" href="http://www.microsoft.com/windows/" target="_blank"&gt;Windows&lt;/a&gt; Shell/Users のラムさんがウオッチされていたようなので、紹介しておきます。関連して日本語のアナウンスなども、必要と思われる範囲で記載がありますので、ご覧いただければと思います。
&lt;blockquote&gt;
&lt;a href="http://snow-white.cocolog-nifty.com/first/2007/10/ie7_2462.html" target="_blank"&gt;世の中は不思議なことだらけ: IE7は、予定外配信！&lt;/a&gt;
&lt;/blockquote&gt;
また、 WSUS を利用する環境では、再度コンテンツの同期を行ってみてから、確認をしてみてください。&lt;br&gt;
なお、英語版に関するアナウンスは以下のURLをご参照ください。但し、配信予定は日付が古いままなので、今後更新があると見込まれます。(保証はありませんが。)
&lt;blockquote&gt;
&lt;a href="http://technet.microsoft.com/en-us/updatemanagement/bb226738.aspx" target="_blank"&gt;Automatic Delivery of Internet Explorer 7 for IT Professionals&lt;br&gt;http://technet.microsoft.com/en-us/updatemanagement/bb226738.aspx&lt;/a&gt;
&lt;/blockquote&gt;
&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/24090.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>メモ: MS-Access Discovery</title><link>http://sqljp.com/yamaken/archive/2007/06/02/23530.aspx</link><pubDate>Sat, 02 Jun 2007 03:06:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/06/02/23530.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23530.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/06/02/23530.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23530.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23530.aspx</trackback:ping><description>&lt;P&gt;VBScript の関数の使い方を掘っているうちにたどり着く。 VBA のネタがある様子なので、メモ。&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;MS-Access Discovery&lt;BR&gt;&lt;A href="http://x7net.com/~access/index.php" target=_blank&gt;http://x7net.com/~access/index.php&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23530.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>メモ: WMI で SNMP Trap を扱う(参考資料)</title><link>http://sqljp.com/yamaken/archive/2007/05/26/23479.aspx</link><pubDate>Sat, 26 May 2007 16:14:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/05/26/23479.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23479.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/05/26/23479.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23479.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23479.aspx</trackback:ping><description>&lt;P&gt;以下、リストアップしただけでまだ消化していないため、早めに片づけたい&amp;#8230;。&lt;/P&gt;
&lt;P&gt;
&lt;UL&gt;
&lt;LI&gt;Scripting with SWbemObject&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa393263.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa393263.aspx&lt;/A&gt; &lt;BR&gt;最近触れることの多い WMI を用いたスクリプトに関する記述。 
&lt;LI&gt;Monitoring Events&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa392396.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa392396.aspx&lt;/A&gt; &lt;BR&gt;WMI で監視、トリガの仕掛けを作るときは、イベント通知の機能を利用する。イベントログに、とある特定エントリが追加されたときに何かのコマンドを実行するとか。 
&lt;LI&gt;SWbemDateTime&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa393687.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa393687.aspx&lt;/A&gt;&lt;BR&gt;WMI で用いる、日付情報を格納するオブジェクト。用例あり。なお、&lt;A href="http://msdn2.microsoft.com/en-us/library/aa387237.aspx" target=_blank&gt;CIM_DATETIME&lt;/A&gt;も参照のこと。 
&lt;LI&gt;Windows Management Instrumentation の秘密 - トラブルシューティングとヒント&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx" target=_blank&gt;http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx&lt;/A&gt;&lt;BR&gt;WMI を用いたスクリプト記述の際の注意点をまとめる文書。特に Q12 の非同期呼び出しはファイルオブジェクトの列挙などで注意しておきたい。 
&lt;LI&gt;VBScript for &lt;A title="" href="http://www.microsoft.com/windows/" target=_blank&gt;Windows&lt;/A&gt; 2003&lt;BR&gt;&lt;A href="http://www.computerperformance.co.uk/Logon/VBScript/VBScript_Windows_Home.htm" target=_blank&gt;http://www.computerperformance.co.uk/Logon/VBScript/VBScript_Windows_Home.htm&lt;/A&gt;&lt;BR&gt;参考になる解説、サンプルが多い。個別に触れないけど、ざっと見てみると良し。エラー処理とか。 
&lt;LI&gt;&lt;A title=サポート技術情報(KB) href="http://go.microsoft.com/fwlink/?LinkId=21322&amp;amp;clcid=0x411" target=_blank&gt;KB&lt;/A&gt; 190273 INFO: Visual Basic for Applications Features Not in VBScript&lt;BR&gt;&lt;A href="http://support.microsoft.com/kb/190273/en-us" target=_blank&gt;http://support.microsoft.com/kb/190273/en-us&lt;/A&gt;&lt;BR&gt;VBScript 3.0 までの話。 VBA にはあるが VBScript では存在しないとされているものを扱う。但し、現行のバージョンではわりと多くのものが、この中でもサポートされていると思う。 
&lt;LI&gt;Happy Happy Island&lt;BR&gt;&lt;A href="http://www.happy2-island.com/vbs/" target=_blank&gt;http://www.happy2-island.com/vbs/&lt;/A&gt;&lt;BR&gt;初心者向け解説とサンプル。 
&lt;LI&gt;Doctor Scripto のスクリプト ショップ - 午前 2 時、プロセスの所在を把握していますか&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/scriptcenter/resources/scriptshop/shop0505.mspx" target=_blank&gt;http://www.microsoft.com/japan/technet/scriptcenter/resources/scriptshop/shop0505.mspx&lt;/A&gt;&lt;BR&gt;WMI を用いたスクリプティングを解説。解説自体も有用だがリンクを見逃さぬこと。 
&lt;LI&gt;SNMP (TechNet Script Center)&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/scriptcenter/scripts/network/snmp/default.mspx?mfr=true" target=_blank&gt;http://www.microsoft.com/japan/technet/scriptcenter/scripts/network/snmp/default.mspx&lt;/A&gt; &lt;BR&gt;SNMP を用いた情報取得のサンプルあり。トラップを受信するなどのサンプルが今後増えるといいのだけど。 
&lt;LI&gt;SNMP Provider(WMI SDK)&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa393635.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa393635.aspx&lt;/A&gt; &lt;BR&gt;SNMP を WMI から利用する SNMP Provider に触れている。&lt;A href="http://msdn2.microsoft.com/en-us/library/aa393020.aspx" target=_blank&gt;コレ&lt;/A&gt;とセットにして、少し時間をかけて読み込みたいかな。 
&lt;LI&gt;Receiving SNMP Events&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa393019.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa393019.aspx&lt;/A&gt;&lt;BR&gt;SNMP で受信したメッセージを WMI のイベント通知の仕掛けで扱うことについて簡単に触れている。これのほか、トラップを実際に受け止めるサンプルもどこかにあったはずなのだが、ちょっとすぐには見当たらず。イベントとして扱えるということは、ソレをトリガにして通知方法を作りこむなどの展開もあるはずなんだけど。 
&lt;LI&gt;スクリプトにて SNMP&lt;BR&gt;&lt;A href="http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32644&amp;amp;forum=6&amp;amp;7" target=_blank&gt;http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=32644&amp;amp;forum=6&amp;amp;7&lt;/A&gt;&lt;BR&gt;回答のうち air さんのモノに、濃い情報がまとまっていると思う。 
&lt;LI&gt;wSnmpTrap - WinSNMP ツール&lt;BR&gt;&lt;A href="http://hp.vector.co.jp/authors/VA031427/wsnmp/" target=_blank&gt;http://hp.vector.co.jp/authors/VA031427/wsnmp/&lt;/A&gt;&lt;BR&gt;以前、河喜多君が使ってたもの。わりと手軽に snmp walk を行えるので良いかと思う。 &lt;A title=NINO href="http://nino.sourceforge.net/" target=_blank&gt;NINO&lt;/A&gt; ほど手軽ではないと思うが、構成で苦しんだ記憶はない。 
&lt;LI&gt;WMI と SNMP(Windows 2000)&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/maintain/featusability/wmisnmp.mspx" target=_blank&gt;http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/maintain/featusability/wmisnmp.mspx&lt;/A&gt;&lt;BR&gt;SNMP を WMI で扱う、というネタに触れる。 
&lt;LI&gt;WMI Error Constants&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa394559.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa394559.aspx&lt;/A&gt; &lt;BR&gt;WMI のエラー定数を扱う。 
&lt;LI&gt;System Scripting Runtime 1.4(netal.com) &lt;BR&gt;&lt;A href="http://www.netal.com/sscrrun.htm" target=_blank&gt;http://www.netal.com/sscrrun.htm&lt;/A&gt; &lt;BR&gt;SNMP Manager オブジェクトなどもあるので、 WMI を使わずにトラップ受信を考えるときにネタにできるかな。 
&lt;LI&gt;Alain Lissware 氏のサイト&lt;BR&gt;&lt;A href="http://www.lissware.net/" target=_blank&gt;http://www.lissware.net/&lt;/A&gt;&lt;BR&gt;WMI チームの Alain Lissware 氏のサイト。WMI を用いた監視の仕掛けについての資料が多い。 
&lt;LI&gt;Scripting Clinic&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/aa902511.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa902511.aspx&lt;/A&gt; &lt;BR&gt;少し古いが、 WMI Scripting Primer など、関連する記事あり。 
&lt;LI&gt;Windows 2000 Scripting Guide&lt;BR&gt;&lt;A href="http://www.microsoft.com/resources/documentation/windows/2000/server/scriptguide/en-us/sagsas_overview.mspx" target=_blank&gt;http://www.microsoft.com/resources/documentation/windows/2000/server/scriptguide/en-us/sagsas_overview.mspx&lt;/A&gt; &lt;BR&gt;ADSI や WMI の基礎がわかりやすい。今は望むべくもないかもしれないが、日本語版が出ていれば、スクリプト作成の敷居は多分今よりずっと低くなってるんじゃないだろうか。 
&lt;LI&gt;Tales From the Script - 2003 年 1 月 WMI イベントの概要&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/community/columns/scripts/sg0103.mspx" target=_blank&gt;http://www.microsoft.com/japan/technet/community/columns/scripts/sg0103.mspx&lt;/A&gt;&lt;BR&gt;この記事以外にもいくつか WMI の用例解説あり。&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows スクリプトに関する FAQ (TechNet スクリプトセンタ)&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/scriptcenter/scrptfaq.mspx" target=_blank&gt;http://www.microsoft.com/japan/technet/scriptcenter/scrptfaq.mspx&lt;/A&gt; &lt;BR&gt;Hey, Scripting Guy! 同様の語り口で FAQ 解説を展開。あのどこか抜けた口調、独特だと思う。&lt;/LI&gt;&lt;/UL&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23479.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>VBScript: Windows RSS Platform のフォルダオブジェクトの作成、存在確認、取得、削除を行ってみる</title><link>http://sqljp.com/yamaken/archive/2007/05/19/23424.aspx</link><pubDate>Sat, 19 May 2007 17:17:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/05/19/23424.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23424.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/05/19/23424.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23424.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23424.aspx</trackback:ping><description>&lt;P&gt;&lt;A title="" href="http://www.microsoft.com/windows/" target=_blank&gt;Windows&lt;/A&gt; RSS Platform ネタなコードがあんまり出回ってないようでもあるが、リファレンス確認しつつ、 Scripting.FileSystemObject や Outlook のフォルダ、ファイル、メッセージといったオブジェクトの動きをヒントにしてみると、わりと書きやすいと思う。&lt;/P&gt;
&lt;P&gt;ObjFeedMgr の .CreateFolder/.CreateSubFolder がちょい効率悪い。使い方を工夫してフォローしたいかな。&lt;/P&gt;
&lt;P&gt;追記: RootFolder のパスは&lt;U&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;空白&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/U&gt;です。ゆえに、RootFolder 直下ではフォルダでも Feed でも、フルパス(絶対パス)はそのオブジェクトの相対パスと一致します。&lt;/P&gt;
&lt;P&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' ファイル名: TestCreateRSSFolder.vbs&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' 作成者: YamaKen&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' バージョン: 1.0&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' 作成日: 2007.05.19&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' 目的: RSS Feed をしまうフォルダを作り、型とパスの確認を行う動きのサンプル。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' やってること: ObjFeedManager を使って二階層のフォルダツリーを作り、パスと型を表示する。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''               それが終わったらフォルダを削除。(注: 実際には利用しない名前のフォルダを使う。)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' 引数: なし&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' 戻り値: RSS Folder の型、名前、パス(EchoArgType 関数の戻り値。)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' 注意点: &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  11:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' ★  フルパスを一度では作れない&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  12:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''     「パスの末尾」にバックスラッシュ (\) を入れると、&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  13:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''      CreateFolder/CreateSubFolder/ExistsFolder/GetFolder/GetSubFolder などでエラーになる。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  14:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''      CreateFolder/CreateSubFolder で扱えるのは 1 つの階層のみ。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  15:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''      フルパスを一気に作ろうとするとこける。このため、どうしても、&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  16:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''      一個一個、一階層ごと、作ることになる。面倒くさいのだが。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  17:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''      (前半部のパス存在確認と作成個所がそれ。)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  18:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;''      なお、Get したり存在確認したりする場合はフルパスでも問題ない様子。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  19:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  20:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;Dim&lt;/SPAN&gt; ObjFeedMgr&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  21:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;Set&lt;/SPAN&gt; ObjFeedMgr = CreateObject(&lt;SPAN class=str&gt;"&lt;A title="" href="http://www.microsoft.com/" target=_blank&gt;Microsoft&lt;/A&gt;.FeedsManager"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  22:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  23:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Not&lt;/SPAN&gt; ObjFeedMgr.ExistsFolder(&lt;SPAN class=str&gt;"Technology2\Exchange Server Podcasts2"&lt;/SPAN&gt;) &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  24:  &lt;/SPAN&gt;    &lt;SPAN class=rem&gt;'' パスがなければ、作る&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  25:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Not&lt;/SPAN&gt; ObjFeedMgr.ExistsFolder(&lt;SPAN class=str&gt;"Technology2"&lt;/SPAN&gt;) &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  26:  &lt;/SPAN&gt;        ObjFeedMgr.RootFolder.CreateSubFolder(&lt;SPAN class=str&gt;"Technology2"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  27:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  28:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  29:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Not&lt;/SPAN&gt; ObjFeedMgr.ExistsFolder(&lt;SPAN class=str&gt;"Technology2\Exchange Server Podcasts"&lt;/SPAN&gt;) &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  30:  &lt;/SPAN&gt;        ObjFeedMgr.GetFolder(&lt;SPAN class=str&gt;"Technology2"&lt;/SPAN&gt;).CreateSubFolder(&lt;SPAN class=str&gt;"&lt;A title=Exchange href="http://www.microsoft.com/japan/exchange/default.mspx" target=_blank&gt;Exchange&lt;/A&gt; Server Podcasts2"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  31:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  32:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  33:  &lt;/SPAN&gt;    &lt;SPAN class=rem&gt;'' RSS フォルダそれぞれでオブジェクトの型とパスの表示。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  34:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  35:  &lt;/SPAN&gt;    &lt;SPAN class=rem&gt;'' どっちでも有効な値を取れるので、使うときは好きなほうを選ぶ。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  36:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  37:  &lt;/SPAN&gt;    &lt;SPAN class=rem&gt;'' フォルダのフルパスをとるのではなく、それぞれのフォルダを Get するアプローチ。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  38:  &lt;/SPAN&gt;    EchoArgType(ObjFeedMgr.GetFolder(&lt;SPAN class=str&gt;"Technology2"&lt;/SPAN&gt;).GetSubFolder(&lt;SPAN class=str&gt;"&lt;A title=Exchange href="http://www.microsoft.com/japan/exchange/default.mspx" target=_blank&gt;Exchange&lt;/A&gt; Server Podcasts2"&lt;/SPAN&gt;))&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  39:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  40:  &lt;/SPAN&gt;    &lt;SPAN class=rem&gt;'' フォルダのフルパス(絶対パス)がわかってるときは一気に取得。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  41:  &lt;/SPAN&gt;    EchoArgType(ObjFeedMgr.GetFolder(&lt;SPAN class=str&gt;"Technology2\Exchange Server Podcasts2"&lt;/SPAN&gt;))&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  42:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  43:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;Do&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;while&lt;/SPAN&gt; ObjFeedMgr.ExistsFolder(&lt;SPAN class=str&gt;"Technology2"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  44:  &lt;/SPAN&gt;        ObjFeedMgr.GetFolder(&lt;SPAN class=str&gt;"Technology2\Exchange Server Podcasts2"&lt;/SPAN&gt;).delete&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  45:  &lt;/SPAN&gt;        ObjFeedMgr.GetFolder(&lt;SPAN class=str&gt;"Technology2"&lt;/SPAN&gt;).delete&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  46:  &lt;/SPAN&gt;        &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; Err &amp;lt;&amp;gt; 0 &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  47:  &lt;/SPAN&gt;            &lt;SPAN class=kwrd&gt;Exit&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Do&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  48:  &lt;/SPAN&gt;            Wscript.StdOut.WriteLine Err.number &amp;amp; vbcrlf &amp;amp; Err.Source &amp;amp; vbcrlf &amp;amp;_&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  49:  &lt;/SPAN&gt;                                     Err.Description&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  50:  &lt;/SPAN&gt;            Err.Clear&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  51:  &lt;/SPAN&gt;        &lt;SPAN class=kwrd&gt;Else&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  52:  &lt;/SPAN&gt;            Wscript.StdOut.WriteLine &lt;SPAN class=str&gt;"RSS Folder deletion completed."&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  53:  &lt;/SPAN&gt;        &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  54:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;Loop&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  55:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  56:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;Set&lt;/SPAN&gt; ObjRSSRoot = &lt;SPAN class=kwrd&gt;Nothing&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  57:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;Set&lt;/SPAN&gt; ObjFeedMgr = &lt;SPAN class=kwrd&gt;Nothing&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  58:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  59:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  60:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  61:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;sub&lt;/SPAN&gt; EchoArgType(strInput)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  62:  &lt;/SPAN&gt;    &lt;SPAN class=rem&gt;'' 型の確認と、 RSS Feed Folder オブジェクトならパスを表示。引数に、型を確認したいものを入れる。戻り値は型名、(と名前、パス)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  63:  &lt;/SPAN&gt;    Wscript.StdOut.WriteLine TypeName(strInput)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  64:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  65:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt; IsObject(strInput) = &lt;SPAN class=kwrd&gt;False&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  66:  &lt;/SPAN&gt;        Wscript.StdOut.WriteLine strInput&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  67:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;ElseIf&lt;/SPAN&gt; typename(StrInput) = &lt;SPAN class=str&gt;"IFeedFolder"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Then&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  68:  &lt;/SPAN&gt;        Wscript.StdOut.WriteLine &lt;SPAN class=str&gt;"Name: "&lt;/SPAN&gt; &amp;amp; StrInput.Name&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  69:  &lt;/SPAN&gt;        Wscript.StdOut.WriteLine &lt;SPAN class=str&gt;"Path: "&lt;/SPAN&gt; &amp;amp; StrInput.Path&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  70:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;If&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  71:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  72:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;End&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;Sub&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;作成には 30 分程度かかった。(ちょっと時間かけすぎ。抱いている全体像、イメージが弱いから時間がかかる。)&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23424.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>メモ: IE7 Readiness Toolkit(2006 年) 収録の Windows RSS Platform 操作向けサンプルの定数が逆転??(VBScript)</title><link>http://sqljp.com/yamaken/archive/2007/05/15/23234.aspx</link><pubDate>Tue, 15 May 2007 01:19:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/05/15/23234.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23234.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/05/15/23234.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23234.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23234.aspx</trackback:ping><description>&lt;P&gt;自分のコードを見直していて発見。IE7 Readiness Toolkit で提供されている Windows RSS Platform 操作向けサンプルのうち、 vbscript フォルダにある RSSEventSample.vbs に次の記述がある。(30行目近辺)&lt;/P&gt;
&lt;P&gt;この中で、定数の指定が気になる。いや、動作は正しいと思うけど、なんか気にかかる。イベントを使うときの Scope (適用範囲)と Mask (イベントのモトの区分。Feed なのか、 FeedFolder なのか、といった種類わけ。)の指定がなんか引っかかるんだよね。&lt;/P&gt;
&lt;P&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;            &lt;SPAN class=rem&gt;' Register for the FeedDownloading event and download the feed&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;            &lt;SPAN class=kwrd&gt;Const&lt;/SPAN&gt; FEM_FOLDEREVENTS = 1&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;            &lt;SPAN class=kwrd&gt;Const&lt;/SPAN&gt; FES_SELF_AND_CHILDREN_ONLY = 2&lt;/PRE&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;            &lt;SPAN class=kwrd&gt;set&lt;/SPAN&gt; objWatcher = objFeed.GetWatcher(FEM_FOLDEREVENTS, FES_SELF_AND_CHILDREN_ONLY)&lt;/PRE&gt;&lt;PRE&gt;            &lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;            WScript.ConnectObject objWatcher, &lt;SPAN class=str&gt;"watcher_"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;            objFeed.Download() &lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;イベントを利用するための .GetWatcher の書き方としては、&lt;/P&gt;
&lt;BLOCKQUOTE&gt;watcher = object.GetWatcher(&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;scope&lt;/FONT&gt;, &lt;FONT color=#ff0000&gt;mask&lt;/FONT&gt;&lt;/STRONG&gt;)&lt;/BLOCKQUOTE&gt;
&lt;P&gt;となるはずなので、おそらく上のサンプルでいう定数は、正しくは&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Const FES_SELF_ONLY = 1&lt;BR&gt;Const FEM_FEEDEVENTS = 2&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;とすべき。定数の場所と動きは正しい(Feed に掛ってるイベント。セットした Feed 自身がスコープ。)ので、ここはたぶん、サンプルスクリプトを用意して下さったチームの校閲抜けか何かではないかと思われる。FolderEvents が正しい意図とすると、この内容ではイベントを拾えないかも。(拾えるとしても、Feed に仕掛ければいいイベントで、ムダに上位を見張っても仕方あるまい。)本体の動きとしては Feed を作って、そのときにイベントをセットするのであり、フォルダの「購読している Feed 数が変化した」などのイベントを引っ掛けようとしているのではないのだから。&lt;/P&gt;
&lt;P&gt;参考: &lt;A title="" href="http://www.microsoft.com/japan/developer/" target=_blank&gt;MSDN&lt;/A&gt; Library&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;FEEDS_EVENTS_MASK Enumerated Type: &lt;A href="http://msdn2.microsoft.com/en-us/library/ms686408.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/ms686408.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;FEEDS_EVENTS_SCOPE Enumerated Type: &lt;A href="http://msdn2.microsoft.com/en-us/library/ms686409.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/ms686409.aspx&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23234.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>メモ: メンバの数え方(VBScript ほか)</title><link>http://sqljp.com/yamaken/archive/2007/05/13/23233.aspx</link><pubDate>Sun, 13 May 2007 18:31:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/05/13/23233.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23233.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/05/13/23233.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23233.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23233.aspx</trackback:ping><description>&lt;P&gt;言語の特性に係るネタじゃないから、該当するのは多分、VBScript だけじゃないのだと思うが。&lt;/P&gt;
&lt;P&gt;Array → .Length プロパティ(ダメなら Ubound(Array)+1 にて。)&lt;/P&gt;
&lt;P&gt;コレクション、辞書オブジェクトや RSSFeed/FeedItem: .Count プロパティ&lt;/P&gt;
&lt;P&gt;Scripting.Dictionary を用いたインスタンスでは Keys/Items は Array で表現できる。順繰りに昇順、降順で中身表示も OK ということ。&lt;/P&gt;
&lt;P&gt;なお、昨日各方面からアドバイスいただいたように、持ち歩いているモノは、順次クラスにまとめる方向で。&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23233.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>雑感: データ整理方針を持たなきゃ。</title><link>http://sqljp.com/yamaken/archive/2007/05/12/23229.aspx</link><pubDate>Sat, 12 May 2007 06:33:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/05/12/23229.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23229.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/05/12/23229.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23229.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23229.aspx</trackback:ping><description>&lt;P&gt;&lt;A title="" href="http://www.microsoft.com/windows/" target=_blank&gt;Windows&lt;/A&gt; RSS Platform を使いまわすための VBScript のコードを机上デバッグしていることは先にふれたとおりであるが、あとからあとからどんどん改善のアイデアが出てきて止まらない。すごく楽しいのだけど、いつ終わるのかわからないのがちょっと気にかかる。(tkinugaw さんに福生の Jesse James にて軽く目を通していただいた時点からは、原型はとどめているものの、わりと大幅に変更していると思う。)&lt;/P&gt;
&lt;P&gt;見通しのつけやすい方向でコードを改善することは、とっても楽しいことなのだが、コードの出来具合、行数、仕上がりがまだイメージしきれないので、少し不安が残る。(今は 2500 行程度。 印刷ボリュームを考えると、 3000 行超えたくないな&amp;#8230;あんまり複雑なコトはやってないから。)&lt;/P&gt;
&lt;P&gt;現在取り組んでいるのは問題解決ではなく(手入れ前に存在していた問題の解消は既に済んだ)、保守性を高める方向でのコード書換え、クラスの実装(実は初めて)などであり、いくつか、全体の見通しをつけ、保守点検個所をわかりやすくするための改善を画策している。&lt;/P&gt;
&lt;P&gt;保守性を高めるためには各関数、サブプロシージャで冒頭に「何をするモノなのか」「引数」「戻り値」についてコメントをつけ、渡す変数を辞書オブジェクトやクラスを用いてできるかぎり一本化し、条件分岐を Array と繰り返し(For ... Next) に置き換えてみたりするなど行っている。&lt;/P&gt;
&lt;P&gt;データ振り分け、内容整備に関連するコードを整理することで逆に行数が増えてきたのはちょっと驚く。 目論見では 200 行削減の予定だったのだが、この部分だけで 300 行ちょい、増やす羽目になった。 orz&lt;/P&gt;
&lt;P&gt;これだけの行数になると、見通しをつけづらい。変数や定数の定義がいちいち面倒になってくるので、できる限り辞書オブジェクトにパラメータを記述しておいて、辞書オブジェクト作成後の各処理はすべて同じ辞書オブジェクトを参照する形にしている。&lt;/P&gt;
&lt;P&gt;Windows RSS Platform から取得しているデータについて、Podcast で触れる限り、 RSS Feed 上のデータ(文字列、日付、数値)は歯抜け、空白がわりと散見されるので、操作前に「値がセットされていない」旨を書き込むか、条件を作って、そうしたモノを特定の文字列に置き換え、整理する必要がある。&lt;/P&gt;
&lt;P&gt;ここの処理部分はもともと&amp;nbsp;IF 文と Select Case を用いて、さまざまな項目を基準に分岐を実装していたが、どうせなら書き方を整理し、 Array に纏めて繰り返し処理で流すほうがスマートと考えて、まとめてみたりしている。それぞれのルールはもともと 4 &amp;nbsp;行程度のはずだったのだが、各ルール一本化の影響で(利用しない条件も含めて) 8 行追加、ルールは全部で 43 個(for i = 0 to 42) あるため、 8*43 = 344 行の増加となった。これ以外にも同様の振り分け処理で持つルール用データはまだまだいっぱいある。ちょっとクラクラしてきた。 ただし、このデータ整理は必要とみているので、都度頭をひねるのではなく、何らかの指針、方針を纏めていったほうがいいだろうと思う。&lt;/P&gt;
&lt;P&gt;このコードはプリントアウトすると 40 枚以上になるので、保管したり世代管理したりするのは、紙ではちょっと面倒くさくなる。(あくまで自分向けなので&amp;#8230;)&lt;/P&gt;
&lt;P&gt;印刷物にチェックしたりメモした部分をファイルに書き込んで、紙はさっさと棄てたい。反映しきるまでに、わりと時間がかかってしまうのが、もどかしい。修正後のイメージもすでに出来上がっていて、手を動かす部分が残っている状態。&lt;/P&gt;
&lt;P&gt;そんなわけで、内容と読みやすさを変えない状態を維持しつつ、保守しやすさをもう少し強く意識したほうがいい、と自分に言って聞かせている。手を加えた結果が 3000 行超えなければ一旦終りにして、どこかに公開するとか、できればいいんだけど。公開するなら、C#/VB.NET あたりに移植してから外に出すかな。&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23229.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>メモ: VBScript と Visual Basic .NET 以降のものの変数の扱い</title><link>http://sqljp.com/yamaken/archive/2007/05/05/23205.aspx</link><pubDate>Sat, 05 May 2007 21:02:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/05/05/23205.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23205.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/05/05/23205.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23205.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23205.aspx</trackback:ping><description>&lt;P&gt;関数やサブプロシージャを作るときにちょっとポイントになると思うため、メモ。&lt;/P&gt;
&lt;P&gt;既定では、渡し方(ByVal/ByRef) を指定していない変数は、 VBScript では ByRef つまり、モトの変数をそのまま「参照」して使う。Visual Basic .NET 以降の Visual&amp;nbsp; Basic では、 ByVal で扱う。モトの変数のローカルコピーをメモリ空間上で新しく作って使う。リファレンスにしている &lt;A title="" href="http://www.microsoft.com/japan/developer/" target=_blank&gt;MSDN&lt;/A&gt; ライブラリによると参照渡しでも値渡しでも、パフォーマンスには大きな差は生じないという。動きの面でたいして違わない場合は気にしないでもよいということかな。(CPU とメモリは節約できれば、したほうがいいと思うけど。)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.vbaspcoder.com/PermaLink.aspx?guid=822c55a4-13bc-485a-863a-a64d0c1b6846" target=_blank&gt;VBScript を Visual Studio を用いて編集しようとした&lt;/A&gt;ところ、変数指定部分でことごとく、 ByVal により値渡しが行われていたため、このことに気づいた。コレクションや辞書オブジェクトなどを上位の処理から引き継いで使い回す(辞書オブジェクトに値を入れ込むなど。)ので、デフォが ByVal ではちょっと困るんだけどなぁ&amp;#8230;&lt;/P&gt;
&lt;P&gt;以下、リファレンスの参考箇所。&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;Visual Basic 言語の概念 - 方法: プロシージャ引数の値を変更する&lt;BR&gt;&lt;A href="http://msdn2.microsoft.com/ja-jp/library/6zxyfyzz(VS.80).aspx" target=_blank&gt;http://msdn2.microsoft.com/ja-jp/library/6zxyfyzz(VS.80).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;.NET Framework 開発者ガイド Visual Basic の言語の変更&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/ja/cpguide/html/cpconVisualBasicLanguageChanges.asp" target=_blank&gt;http://msdn.microsoft.com/library/ja/cpguide/html/cpconVisualBasicLanguageChanges.asp&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;今取り組んでいるコード、もっときれいな仕上がりにして、VB.NET や C# に移植しつつ、それぞれの言語を使ってモノを作る感触をつかみたいかな。&lt;BR&gt;# 条件分岐や繰り返し処理の使い方で手間取るのはもうそろそろ卒業したい&amp;#8230;&lt;/P&gt;
&lt;P&gt;Jitta さん: 以前の既定の渡し方は ByVal ですね。&lt;BR&gt;&lt;A href="http://www.microsoft.com/technet/scriptcenter/guide/sas_sbp_cxzm.mspx?mfr=true" target=_blank&gt;http://www.microsoft.com/technet/scriptcenter/guide/sas_sbp_cxzm.mspx?mfr=true&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;こういうのとか、 ASP でいうマーシャリングの話とかありますし。&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23205.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>雑感: 机上デバッグ (VBScript)</title><link>http://sqljp.com/yamaken/archive/2007/04/28/23149.aspx</link><pubDate>Sat, 28 Apr 2007 02:10:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/04/28/23149.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/23149.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/04/28/23149.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/23149.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/23149.aspx</trackback:ping><description>&lt;P&gt;自分が書いた VBScript のコードを再構成するため、いくつかのソースコード(おもに Windows RSS Platform や WMI を用いた情報取得系のモノ)を紙に印刷して持ち歩いてみている。移動時間、通勤時間に、めげてる自分をノセて気合いを入れるために。この再構成は、保守性を高めるため。← ほかの言語への移植も視野に入れてのこと。(動作原理同じなら、適切な記述をすれば同じことができると目論む)&lt;/P&gt;
&lt;P&gt;自分で書いたコードを追う際、ディスプレイと睨めっこするだけでは、どうしても取りこぼしが出てしまったりする。印刷して眼で追いつつ、ちまちまとデバッグをやってみた結果、紙に印刷すると、わりと読めたしバグ出しもペースが高まった。修正しおわったら、また何度か繰り返してコードを完成させないと。&lt;/P&gt;
&lt;P&gt;印字してみると、例えばこんなことに気づいた:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;これまで気づかなかった自分の癖いろいろ&amp;nbsp; 
&lt;LI&gt;コメント場所がメソッドの記述位置と違う(離れている) 
&lt;LI&gt;条件分岐やエラー処理が甘い(メソッドと、「期待した(欲しい)データ」に合わせて作りこんでない) 
&lt;LI&gt;関数名&amp;amp;変数名が結構いい加減 ← 「名は体を表す」のだから、もうちょいと、整理すべし 
&lt;LI&gt;やたらプロシージャを外に出して関数化している(こちらは一応、意識的所作。)ので、関数の体系図か一覧がほしい (ASCII でいい) 
&lt;LI&gt;繰り返し処理や配列のまとめ方、扱い方が判りづらい 
&lt;LI&gt;データの持ち方、整理の仕方が原始的すぎ → 文字列操作なので整理はこんなものかもしれないが、データの格納の仕方が気に入らない。 
&lt;LI&gt;データ整理及び振り分けルール記述部分が甘い(都度振り分けルール追加。これは非効率。) 
&lt;LI&gt;閃き次第コードを起こしているので、纏まり感が薄い。スパゲッティ。論理的には考えてないので、記述順序がとびとび(閃きはいいが纏めろ) 
&lt;LI&gt;SDK 見れば済む部分に余計なコメント入れてる&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;どれも動作に致命的な影響を及ぼす類のバグではないが、常日頃から気になっていたことでもある。纏めるのが苦手なのよね。&lt;/P&gt;
&lt;P&gt;印刷したコードをみると、口頭で話したり、文章を書いている時と全く同じ自分がそこにいる。チカラワザと勢いと閃きだけじゃなくて、もっと論理的思考、構成力、説明能力を高めないと、展開が予想もつかないという事態は免れないだろうな。ちょっと落胆。&lt;/P&gt;
&lt;P&gt;要件を纏めるところからやり直そうかしら... orz&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/23149.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>YamaKen</dc:creator><title>メモ: 多次元配列(Array)の作り方(VBScript)</title><link>http://sqljp.com/yamaken/archive/2007/01/16/20441.aspx</link><pubDate>Tue, 16 Jan 2007 00:56:00 GMT</pubDate><guid>http://sqljp.com/yamaken/archive/2007/01/16/20441.aspx</guid><wfw:comment>http://sqljp.com/yamaken/comments/20441.aspx</wfw:comment><comments>http://sqljp.com/yamaken/archive/2007/01/16/20441.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/yamaken/comments/commentRss/20441.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/yamaken/services/trackbacks/20441.aspx</trackback:ping><description>&lt;P&gt;ASP-ML で、宣言後に Array() 関数にて多次元を設定することの可否について最近議論があったので、興味があって調べてみた。&lt;/P&gt;
&lt;P&gt;リファレンスを調べての結論: VBScript では、多次元の要素を持つ配列(Array)は最高で 60 次まで、作ることが出来る。但し Dim/Redim のトキに言うもの。 Array () では Array(a,b,c) のように一次元の値を配列メンバにできるのみなので、 Array() で「多次元」の要素を指定したり、入れ込むことは出来ない。やるとすれば、変数宣言の時点で多要素の配列であると宣言した上で、各ポジションのモノに値を入れ込むときに使うくらいか。&lt;/P&gt;
&lt;P&gt;で、作り方はというと。 まず Dim するときに配列の個数を各次元ごとに宣言しておく。 各次元 (dimension) での位置を指定して、別の Array を埋め込む。(こっちはあとでやってみよう。→「追記」したとおり。)&lt;/P&gt;
&lt;P&gt;もうちょいベーシックなところに降りてみる。単なる数値をメンバとしての二要素の配列では、配列の作り方、値の入れ方、確かめ方は次のコードのようになる。 &lt;/P&gt;
&lt;P&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; arrmulti(1,1)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;&lt;SPAN class=rem&gt;'' ゼロ基点なので、こう宣言しても実際には二つの要素をしまう。&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;arrmulti(0,0) = &lt;SPAN class=str&gt;"aaa"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;arrmulti(0,1) = &lt;SPAN class=str&gt;"bbb"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;arrmulti(1,0) = &lt;SPAN class=str&gt;"ccc"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;arrmulti(1,1) = &lt;SPAN class=str&gt;"ddd"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; i = lbound(arrmulti,1) &lt;SPAN class=kwrd&gt;to&lt;/SPAN&gt; ubound(arrmulti,1) &lt;SPAN class=rem&gt;'' dimension (次元) の指定は基数が 1 なのでこうなる&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; j = lbound(arrmulti,2) &lt;SPAN class=kwrd&gt;to&lt;/SPAN&gt; ubound(arrmulti,2)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  11:  &lt;/SPAN&gt;        wscript.stdout.writeline arrmulti(i,j)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  12:  &lt;/SPAN&gt;        wscript.stdout.writeline &lt;SPAN class=str&gt;"now processing: "&lt;/SPAN&gt; &amp;amp; i &amp;amp; &lt;SPAN class=str&gt;","&lt;/SPAN&gt; &amp;amp; j&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  13:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  14:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;参考: Platform SDK の VBScript Fundamental 中、 VBScript Variables の記述。&lt;/P&gt;
&lt;P&gt;で、こんな ↓ 風にすれば、 Array のメンバに別の Array を持ってくることが出来る。&lt;/P&gt;
&lt;P&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;Option&lt;/SPAN&gt; Explicit&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; arrmulti(1,1)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; inarray&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; i&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; j&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; k&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;dim&lt;/SPAN&gt; l&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;inarray = array(1,2,3,4,5)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  11:  &lt;/SPAN&gt;arrmulti(0,0) = inarray&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  12:  &lt;/SPAN&gt;arrmulti(0,1) = &lt;SPAN class=str&gt;"bbb"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  13:  &lt;/SPAN&gt;arrmulti(1,0) = &lt;SPAN class=str&gt;"ccc"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  14:  &lt;/SPAN&gt;arrmulti(1,1) = &lt;SPAN class=str&gt;"ddd"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  15:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  16:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; i = lbound(arrmulti,1) &lt;SPAN class=kwrd&gt;to&lt;/SPAN&gt; ubound(arrmulti,1)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  17:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; j = lbound(arrmulti,2) &lt;SPAN class=kwrd&gt;to&lt;/SPAN&gt; ubound(arrmulti,2)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  18:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  19:  &lt;/SPAN&gt;        &lt;SPAN class=kwrd&gt;select&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;case&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  20:  &lt;/SPAN&gt;            &lt;SPAN class=kwrd&gt;case&lt;/SPAN&gt;  isarray(arrmulti(i,j))&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  21:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  22:  &lt;/SPAN&gt;                &lt;SPAN class=kwrd&gt;for&lt;/SPAN&gt; k = lbound(arrmulti(i,j)) &lt;SPAN class=kwrd&gt;to&lt;/SPAN&gt; ubound(arrmulti(i,j))&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  23:  &lt;/SPAN&gt;                    wscript.stdout.writeline &lt;SPAN class=str&gt;"now processing: "&lt;/SPAN&gt; &amp;amp; i &amp;amp; &lt;SPAN class=str&gt;","&lt;/SPAN&gt; &amp;amp; j &amp;amp; &lt;SPAN class=str&gt;","&lt;/SPAN&gt; &amp;amp; k&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  24:  &lt;/SPAN&gt;                    wscript.stdout.writeline arrmulti(i,j)(k)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  25:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  26:  &lt;/SPAN&gt;                &lt;SPAN class=kwrd&gt;next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  27:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  28:  &lt;/SPAN&gt;            &lt;SPAN class=kwrd&gt;case&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;else&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  29:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  30:  &lt;/SPAN&gt;                wscript.stdout.writeline &lt;SPAN class=str&gt;"now processing: "&lt;/SPAN&gt; &amp;amp; i &amp;amp; &lt;SPAN class=str&gt;","&lt;/SPAN&gt; &amp;amp; j&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  31:  &lt;/SPAN&gt;                wscript.stdout.writeline arrmulti(i,j)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  32:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  33:  &lt;/SPAN&gt;        &lt;SPAN class=kwrd&gt;end&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;select&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  34:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  35:  &lt;/SPAN&gt;    &lt;SPAN class=kwrd&gt;next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  36:  &lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  37:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;先日の衣川さんのコメントにあったような、オブジェクトを配列のメンバにするのはまだウマく再現できてないですが。数値や文字列値と並べた上で列挙しようとするとランタイムエラーが&amp;#8230;。orz&lt;/P&gt;&lt;img src ="http://sqljp.com/yamaken/aggbug/20441.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>
