下記にプログラムを載せます。
これを英語環境下で走らせると、添付ファイルのようなエラーが起きます。
理由がわからず悩んでおります。日本語環境下ではエラーが起きずに実行できます。
オブジェクトライブラリーの選択も確認したのですが、、、
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルマクロが海外PCで開けない
その他(ソフトウェア)
-
エクセルVBAが中国のPCでは動かない(エラー)
Visual Basic(VBA)
-
Excel VBAで文字化けする (英語版Windows10+日本語版Excel2007)
Visual Basic(VBA)
-
-
4
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
5
excel(エクセル) マクロ 文字化け 海外
Visual Basic(VBA)
-
6
Excel2019 非表示モジュール内でコンパイルエラー
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルエラー13型が一致しま...
-
実行時エラー 438になった時の...
-
ExcelVBA Range クラスの Page...
-
エクセルVBAで以下のようなコー...
-
プロシージャ名の取得
-
なぜこんな初歩的なVBAのIf文で...
-
エラー1004 PDFの保存ができま...
-
VBAがブレークモードになっ...
-
ADODB.Streamを使用してUTF-8を...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
-
実行時エラー -'-2147417848
-
【Excel VBA】マクロをボタンに...
-
VB6 エラー:438 (InputBoxに値)
-
Invalid procedure call or arg...
-
Application.ActiveInspectorで...
-
vbaのvlookup関数エラー原因を...
-
EXCEL VBAマクロ中断でデバッグ...
-
VBAのコードがエラーになっ...
-
VBA 別シートのセルから、文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
VBAがブレークモードになっ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
VBSで変数の宣言はできないので...
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
AccessVBAでExcelを起動し、罫...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
Application.ActiveInspectorで...
おすすめ情報
失礼しました。エラーは Compile error: Can’t find project or library となっています
参照設定はワードを選んでいます。