VBSで別ファイルにかかれている関数を呼び出すには?

解決


ヒロシ  2005-06-21 18:41:49  No: 122865  IP: [192.*.*.*]

はじめまして、VBScript初心者です。

どうしても以下の事をやりたいので、皆様のお知恵をお借りしたいと思い
質問させていただきます。

分かる人がいましたら、是非教えてくださいお願いします。



あるファイルに、共通で使用する複数のファンクションを書いておき、
他のvbsファイルの中で、ファンクション名を書けば呼び出せるという、
API呼び出しみたいな、使い方は可能でしょうか?

可能だとしたら、どうやって実現すればよろしいのでしょうか?

編集 削除
・・・  2005-06-21 19:11:42  No: 122866  IP: [192.*.*.*]

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6691&forum=7

編集 削除
ヒロシ  2005-06-22 09:54:05  No: 122867  IP: [192.*.*.*]

ありがとうございました。

どうやら失笑を買ってしまったようですね。
リンク先には、完全に解決策は載っておりませんでしたが、
あれをヒントにがんばってみます。

どうもご親切にありがとうございました。

編集 削除
魔界の仮面弁士  2005-06-22 10:13:26  No: 122868  IP: [192.*.*.*]

スクリプトを WSC にしておくと、再利用が楽かも。

たとえば、下記の WSC ファイルを用意しておけば、
  Set C = GetObject("script:C:\TEST.WSC")
  MsgBox C.ToYMD( Now() )
  MsgBox C.EncodeURIComponent( "魔界の仮面弁士" )
のような記述が可能になります。


===== C:\TEST.WSC =====
<?xml version="1.0" encoding="Shift_JIS"?>
<component><?componet error="true" debug="true"?>
<public>
  <method name="ToYMD">
    <parameter name="TargetDate" />
  </method>

  <method name="EncodeURIComponent" internalName="EncodeURIComponent_">
    <parameter name="Value" />
  </method>
  <method name="DecodeURIComponent" internalName="DecodeURIComponent_">
    <parameter name="Value" />
  </method>
</public>

<script language="VBScript">'<![CDATA[
Option Explicit
On Error Resume Next

Public Function ToYMD(ByVal TargetDate)
  Dim lngYMD
  lngYMD = Year(TargetDate) * CLng(10000) + Month(TargetDate) * 100 + Day(TargetDate)
  ToYMD = Right(CStr(100000000 + lngYMD), 8)
End Function
']]></script>
<script language="JScript"><![CDATA[
function EncodeURIComponent_(str)
{
  return encodeURIComponent(str);
}

function DecodeURIComponent_(str)
{
  return decodeURIComponent(str);
}
]]></script>

</component>

編集 削除
ヒロシ  2005-06-23 11:57:58  No: 122869  IP: [192.*.*.*]

魔界の仮面弁士さん

わざわざありがとうございました。
数年前の既出事項を丁寧に教えていただき、とても感激しています。

WSCファイルが共通関数オブジェクトになるんですね。

今まで恥ずかしながらXMLに触れる機会が無かったもので、
すぐに書けるかちょっと心配ですが、がんばってみたいと思います。

本当にありがとうございました。

また何かあったらよろしくお願いします。

編集 削除