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

解決


ヒロシ  2005-06-22 03:41:49  No: 122865

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

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

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

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

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


・・・  2005-06-22 04:11:42  No: 122866

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


ヒロシ  2005-06-22 18:54:05  No: 122867

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

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

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


魔界の仮面弁士  2005-06-22 19:13:26  No: 122868

スクリプトを 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 20:57:58  No: 122869

魔界の仮面弁士さん

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

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

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加