例による解決策
simpletest.rb
require "rubygems"
require "celerity"
word_to_search = ARGV[0]
word_to_check = ARGV[1]
#puts "DEBUG - word_to_search: #{word_to_search}"
#puts "DEBUG - word_to_check: #{word_to_check}"
browser = Celerity::Browser.new
browser.goto('http://www.google.com')
browser.text_field(:name, 'q').value = word_to_search
browser.button(:name, 'btnG').click
puts browser.text.include? word_to_check
いくつかの入力パラメーターを受け取り、結果を返すこの単純なスクリプトを使用して、Mac 上の Excel 2011とやり取りする必要があるとします。
test.sh
#!/bin/bash --login
rvm use jruby > NULL
ruby simpletest.rb $1 $2
VBA コードを介して呼び出すことができるシェルを作成します。chmod u+x test.sh
適切なパーミッションを設定#!/bin/bash --login
するように注意してください rvm
celerity
VBA モジュール ( ユーザー定義関数 )
Public Function SimpleTest(sWordToSearch, sWordToCheck)
Dim sCommand As String
sCommand = "do shell script ""cd /Users/ronda/projects/so-test1; ./test.sh "
sCommand = sCommand & sWordToSearch & " "
sCommand = sCommand & sWordToCheck & """"
SimpleTest = MacScript(sCommand)
End Function
このコードの注意:/Users/ronda/projects/so-test1
はスクリプトへのパスです
使用法とテスト
数式でのユーザー定義関数のテスト

ところで、問題の診断は、スクリプトをより低いレベルで実行することによって合理化される場合があります。
AppleScript edtor でのテスト
ターミナルでのシェル スクリプトのテスト
$ cd ~/projects/so-test1
$ ./test.sh Ruby Language
true
$ ./test.sh Fish Language
false
jruby スクリプトをスタンドアロンでテストする
$ rvm use jruby
Using /Users/ronda/.rvm/gems/jruby-1.7.11
$ ruby simpletest.rb Ruby Language
true
$ ruby simpletest.rb Ruby Fish
false
参考文献
便利なリンクをいくつか:
- popen と pipesを使用した代替 (おそらく最も強力な) アプローチとして、 Excel VBA for Mac 2011 から HTTP GET を発行するにはどうすればよいですか?に対するこの回答をお読みください。
- カスタム関数へのアクセス