プロが教える店舗&オフィスのセキュリティ対策術

a.docからb.xlsのVBA(マクロ)の
Sub sample()
MsgBox "hello"
End Sub
を実行できるようにするにはどうすればよいのでしょうか?

使用OS:Windows XP
使用ソフト:Microsoft Excel 2003

ご存知の方がおられましたらご回答をよろしくお願いします。

A 回答 (3件)

Sub sample()


MsgBox "hello"
End Sub

この↑コードは、本当にb.xlsの標準モジュールに
あるのですか?

シートのモジュールやThisworkbookモジュールに
あるのではないですよね?

簡単なコードなので
何度も試しているのですが、
正常の
hello と表示されます。

再度確認してみてください
    • good
    • 0

>ご存知の方がおられましたらご


WEBに例が沢山載っています。
http://homepage1.nifty.com/MADIA/vb/Tecnick/Exce …
それらを2、3をつぎはぎして作成できた。
エクセルは、私の場合たまたま
C:\Documents and Settings\xxxx\My Documents\入力規則19.xls
の標準モジュールに(xxxxはユーザー名)
Sub sample()
MsgBox "hello Module1のSample通過"
End Sub
を作りました。
ーーー
ワードのツールーマクローVBE-標準モジュールに下記をセット。
Sub test21()

Dim xlObj As Object
Err.Number = 0

On Error GoTo notLoaded
Set xlObj = GetObject(, "Excel.Application.9")

notLoaded:
If Err.Number = 429 Then
Set xlObj = CreateObject("Excel.Application")
theError = Err.Number
End If
xlObj.Visible = True
xlObj.Workbooks.Open FileName:="C:\Documents and Settings\OTO\My Documents\入力規則19.xls"

With xlObj
.Run ("Module1.sample")
' Excelの終了
.Quit
' オブジェクトを解放
Set xlObj = Nothing
End With
End Sub
ワードで実行すると
入力規則19.xls が開き、
hello Module1のSample通過
のメッセージが出ました。
ーー
Modle2に同名のsample()を作って、Msgboxのメッセージは変えて
.Run ("Module2.sample")
に変えて実行するとそちらを通ることを確認しました。

この回答への補足

実行時エラー '1004':
マクロ 'Module1.sample' が見つかりません。
と表示されてExcelのマクロを実行することができませんでした。

コピー&ペーストしているし、パスもあっているので
問題ないはずなのですがなぜかエラーが出て実行できません

補足日時:2008/02/04 22:27
    • good
    • 0
この回答へのお礼

パソコンを再起動後、再度試してみたら問題なく実行することができました。
どうやらこれ以前に実行したマクロの影響でうまく実行することができなかったようです。
(これ以前に実行したマクロの.Visible = Falseの影響により裏でExcelが開いていたから?)
まだ習い始めて間もないため気づくのに時間がかかりました。以後、気を付けたいと思います。

ご回答いただきどうもありがとうございました。

お礼日時:2008/02/04 23:05

a.docとb.xlsは、同じフォルダ上にあるとすると・・、


a.docの標準モジュールに
'========================================================
Sub main()
   With CreateObject("excel.application")
     With .workbooks.Open(ThisDocument.Path & "\b.xls")
       .Application.Run .Name & "!sample"
       .Close False
       End With
     .Quit
     End With
End Sub

この回答への補足

早速やってみたのですが、
実行時エラー '1004':
マクロ 'b.xls!sample' が見つかりません。
と表示されてExcelのマクロを実行することができませんでした。

a.docとb.xlsは、同じフォルダ上にあり、マクロのsample()も
ちゃんと存在しているのに何が問題だったのでしょうか?

補足日時:2008/02/04 21:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!