
下記にプログラムを載せます。
これを英語環境下で走らせると、添付ファイルのようなエラーが起きます。
理由がわからず悩んでおります。日本語環境下ではエラーが起きずに実行できます。
オブジェクトライブラリーの選択も確認したのですが、、、
Sub Issue_Click()
Dim cmax, cnt, i, k As Long
Dim path, str, JV, NewPath As String
Dim wdapp As Object
Dim wddoc As Word.Document
Dim wdrg As Word.Range
Dim c, totalrows As Long
Dim waitTime As Variant
Dim ws As Worksheet
Dim flag As Boolean
Dim st As String
Application.ScreenUpdating = False
On Error Resume Next
Set wdapp = CreateObject("Word.application")
wdapp.Visible = True
'For i = 2 To cmax
path = ThisWorkbook.path & "\Capital Increase Resolution.doc"
Set wddoc = wdapp.Documents.Open(path)
waitTime = Now + TimeValue("0:00:05")
Application.Wait waitTime
For k = 0 To 7
With wddoc.Content.Find
.Text = Workbooks("auto.xlsm").Sheets("Inputdata").Range("B1").Offset(0, k).Text
.Forward = True
.Replacement.Text = Workbooks("auto.xlsm").Sheets("Inputdata").Range("B2").Offset(0, k).Text
.Wrap = wdFindContinue
.MatchFuzzy = True
.Execute Replace:=wdReplaceAll
End With
Next
wddoc.PrintOut
Set wddoc = Nothing
JV = Workbooks("auto.xlsm").Sheets("Main").Range("C3").Text
NewPath = ThisWorkbook.path & "\" & JV & ".doc"
wdapp.ActiveDocument.SaveAs Filename:=NewPath
'wdapp.Documents.Close SaveChanges:=wdDoNotSaveChanges
wdapp.Application.Quit
Set wdapp = Nothing
st = Workbooks("auto.xlsm").Sheets("Main").Range("C3").Text
For Each ws In Worksheets
If ws.Name = st Then flag = True
DoEvents
Next ws
Sheets(st).Activate
i = 1
If flag = True Then
Do Until Sheets(st).Range("C" & i) = ""
i = i + 1
Loop
Sheets(st).Range("B" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("C7").Text
Sheets(st).Range("C" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("C9").Text
Sheets(st).Range("D" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("F11").Text
Sheets(st).Range("F" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("F7").Text
Sheets(st).Range("G" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("F11").Text & " " & Workbooks("auto.xlsm").Sheets("Main").Range("F9").Value & "%"
Sheets(st).Range("H" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("J3").Text
Sheets(st).Range("I" & i) = Workbooks("auto.xlsm").Sheets("Main").Range("J7").Text
End If
MsgBox "End!"
End Sub

No.4ベストアンサー
- 回答日時:
こんにちは。
最初に、コードをみると、整合性が取れていないように思うのです。
Early Binding (事前バインディング)していたら、
'Dim wdapp As Object ではなくて、
Dim wdApp As New Word.Application
インスタンスを作ってあげなくてはなりません。
(正式には、
Dim wdApp As Word.Application
Set wdApp = New Word.Application
)
>参照設定はワードを選んでいます。
もし、これでエラーが出るとするなら、参照設定は外して、
最初、Late Binding(実行時バインディング)から、
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
としてオートメーション・オブジェクトを作って1行ずつデバッグで検証していくしかありませんね。
ただし、その場合は、Word 関連はすべて、Object です。
Dim wddoc As Object
Dim wdrg As Object
#3さんのリンク先の話って、ざっと読んだだけですが、参照設定の中身で赤い×とか、Missing 入っていないかという話ではないのかな?よく起こる現象としては、下位バージョンで開発したものを、上位バージョンで使用する時に起きる話です。その場合は、もう一度、適宜、参照設定をつけ直すという作業が必要です。
ただ、その後に出てくる、Library を失いますと、これは、再インストールが必要かもしれませんし、それだけでは済まないことも多いです。
これらは、あたっているかどうか、これは分かりませんが。
致命的な問題でなければよいのですが、私のところのように、OSから再インストールをしなければならなくなりました。
なお、変数の付け方には、問題が残っているようですが、
path は、プロパティ名ですが、myPath, strPath など、そのものずばりを使わないほうがよいです。プロパティ名が、全部小文字になっています。(このような小文字・大文字の組み合わせをキャメル型といいます)
>Dim cmax, cnt, i, k As Long
変数k 以外は、皆、Variant 型です。意図しているなら別ですが、
Dim cmax As Long, cnt As Long, i As Long, k As Long
のように、VBAでは書くようになっています。
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
マクロについて教えてください...
-
【Excel VBA】マクロをボタンに...
-
【マクロ】エラー【#DIV/0!】が...
-
Outlook.ApplicationをCreateOb...
-
実行時エラー48発生時のDLL特定...
-
VBAがブレークモードになっ...
-
VBAで、定数式が必要ですのエラ...
-
「定数式が必要です。」って何...
-
一般ODBCエラーについて
-
VBAでESCキーを無効にしたいの...
-
日本語環境下で作成したマクロ...
-
[Delphi] データセットは閉じて...
-
【エクセル】ハイパーリンク先...
-
実行時エラー -'-2147417848
-
なぜエラーになるのでしょうか...
-
ExcelVBA Range クラスの Page...
-
エラー1004 PDFの保存ができま...
-
VBAのエラー発生場所をメッセー...
-
VBAのコードがエラーになっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
実行時エラー48発生時のDLL特定...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAのエラー発生場所をメッセー...
-
ADODB.Streamを使用してUTF-8を...
-
【Excel VBA】マクロをボタンに...
-
OLEDB.NETで接続できない
-
なぜエラーになるのでしょうか...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
おすすめ情報
失礼しました。エラーは Compile error: Can’t find project or library となっています
参照設定はワードを選んでいます。