VBとVBスクリプトの違いについて教えてください。
よろしくお願いします。
VBでAPIを使用して、選択されたフォルダ内のファイル名の取得するというものを作成しました。が、
VBではランタイムがない場合、セットアップが必要になるという理由でVBスクリプトで同じことができないか?ということになりました。
VBは多少の経験がありますが、VBスクリプトはまったくやったことがありません。
そこで、
①、VBとVBスクリプトの違いについて(だいたいで結構です)
①-①、VBとVBスクリプトの記述の違いについて(だいたいで結構です)
②、VBスクリプトでAPIは使用できるのか?
③、APIが使用できるなら宣言、使用の方法は?VBと同じでしょうか? (違う場合はサンプルなどを記述していただけると助かります。)
ということついて教えて頂きたいと思います。
ご存知の方が見えましたら、よろしくお願いします。
> VBとVBスクリプトの違いについて(だいたいで結構です)
VBSはVariant型しか使えません。また、Variant型であっても、
内部データ型によっては使用できない場合があります。
たとえば、ユーザー定義型や10進型は、VBScriptでは扱えません。
# まぁ、それはVBでも言える事ですけれどね。
# (例えばVBでも、符号無し16bit整数型やHRESULT型などのVariantは扱えません)
それ以外の大きな違いとしては、全ての呼び出しが「レイトバインド」になる事です。
その為VBSでは、アーリーバインドでしか呼び出せないオブジェクトは扱えません。
> VBとVBスクリプトの記述の違いについて(だいたいで結構です)
[VBScript の機能で VBA に含まれていない機能]
http://www.asia.microsoft.com/japan/msdn/library/ja/script56/html/vsgrpVBSFeatures.asp
[VBA の機能で VBScript に含まれていない機能]
http://www.asia.microsoft.com/japan/msdn/library/ja/script56/html/vsgrpNonFeatures.asp
また、一部に若干文法が異なる物(Nextステートメントなど)も存在します。
> VBスクリプトでAPIは使用できるのか?
Declareステートメントがサポートされていないため、直接呼び出す事はできませんので、
APIを呼び出すためのActiveXコンポーネント(DynaCallなど)を経由させる事になります。
> APIが使用できるなら宣言、使用の方法は?VBと同じでしょうか?
APIは呼び出せません。DynaCall使用時は、下記を参照してください。
http://www.borncity.com/WSHBazaar/WSHDynaCall.htm
魔界の仮面弁士様ありがとうございました。とても参考になりました。
(http://www.borncity.com/WSHBazaar/WSHDynaCall.htm
は英語だったので、これからがんばって内容を理解したいと思います。)
けっこう記述方法にも違いがあるようなので、
"VBスクリプトで、選択されたフォルダ内のファイル名の取得する"というものを作成しするのは、私の力では無理そうですが、勉強を兼ねて少し挑戦したいと思います。ありがとうございました。