2

コマンドボタンを備えた1つのvbスクリプトとExcelページがあります。

vb スクリプト---test.vbs

MsgBox("Hello world")

エクセルVBAコード

Private Sub CommandButton1_Click()
  Dim SFilename As String
    SFilename = "C:\Users\mkamaraj\Desktop\test.vbs" 'Change the file path

    ' Run VBScript file
    Set wshShell = CreateObject("Wscript.Shell")
    wshShell.Run """" & SFilename & """"
End Sub

Excelでボタンをクリックすると が実行されVBScriptMessageBoxが表示されます。TextBox ここで、値を からExcel VBAに渡す必要がありVBScript、その値は で表示されるはずですVBScript MessagBox

どうやってやるの?

4

3 に答える 3

0

名前のない引数を処理する簡単なテスト スクリプト (showparms.vbs):

Option Explicit

Function qq(s)
  qq = """" & s & """"
End Function

Function Coll2Arr(oColl, nUB)
  ReDim aTmp(nUB)
  Dim i : i = 0
  Dim e
  For Each e In oColl
      aTmp(i) = e
      i       = i + 1
  Next
  Coll2Arr = aTmp
End Function

Dim oWAU  : Set oWAU = WScript.Arguments.Unnamed
Dim aWAU  : aWAU     = Coll2Arr(oWAU, oWAU.Count - 1)
Dim sArgs : sArgs    = "no arguments given"
If -1 < UBound(aWAU) Then
    sArgs = qq(Join(aWAU, """ """))
End If
MsgBox sArgs ' WScript.Echo sArgs

名前のない引数 (スペースを含む) で .VBS を呼び出す単純な VBA サブルーチン:

Option Explicit

Sub callVBS()
  Dim sFSpec As String: sFSpec = "p:\ath\to\showparms.vbs"
  Dim sParms As String: sParms = "one ""t w o"" three"
  Dim sCmd As String: sCmd = """" & sFSpec & """ " & sParms
  Dim oWSH: Set oWSH = CreateObject("WScript.Shell")
  oWSH.Run sCmd
End Sub
于 2013-08-22T10:34:13.743 に答える