下記にプログラムを載せます。
これを英語環境下で走らせると、添付ファイルのようなエラーが起きます。
理由がわからず悩んでおります。日本語環境下ではエラーが起きずに実行できます。
オブジェクトライブラリーの選択も確認したのですが、、、
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も見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルマクロが海外PCで開けない
その他(ソフトウェア)
-
Excel VBAで文字化けする (英語版Windows10+日本語版Excel2007)
Visual Basic(VBA)
-
エクセルVBAが中国のPCでは動かない(エラー)
Visual Basic(VBA)
-
-
4
Excelの英語版、日本語版の見分け方
Excel(エクセル)
-
5
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAがブレークモードになっ...
-
Invalid procedure call or arg...
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
実行時エラー3001「引数が間違...
-
アクセス 実行時エラー3265
-
マクロについて教えてください...
-
ASP.NET OleDbConnectionが定義...
-
エクセルエラー13型が一致しま...
-
VBS実行時エラー オブジェクト...
-
VB6+SQL サーバー 2000 で 実行...
-
EOFError: EOF when reading a ...
-
VBAにて計算式をセルへ代入でき...
-
ExcelVBAのFindFirstエラ...
-
「コンパイルエラー:プロシー...
-
VBAで、定数式が必要ですのエラ...
-
Excel2019 ワークシートのコピ...
-
チェックボックスをオンにする...
-
EXCEL/VBAで、自分のPCだけエラ...
-
「実行時エラー3001」のポップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
【Excel VBA】マクロをボタンに...
-
VBSで変数の宣言はできないので...
-
VBS実行時エラー オブジェクト...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
ExcelVBAで、ユーザー定義型は...
-
EXCEL VBAマクロ中断でデバッグ...
-
マクロについて教えてください...
-
プロシージャ名の取得
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
なぜエラーになるのでしょうか...
-
VBAのコードがエラーになっ...
-
[Delphi] データセットは閉じて...
おすすめ情報
失礼しました。エラーは Compile error: Can’t find project or library となっています
参照設定はワードを選んでいます。