下記にプログラムを載せます。
これを英語環境下で走らせると、添付ファイルのようなエラーが起きます。
理由がわからず悩んでおります。日本語環境下ではエラーが起きずに実行できます。
オブジェクトライブラリーの選択も確認したのですが、、、
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も見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
エクセルマクロが海外PCで開けない
その他(ソフトウェア)
-
Excel VBAで文字化けする (英語版Windows10+日本語版Excel2007)
Visual Basic(VBA)
-
Excelの英語版、日本語版の見分け方
Excel(エクセル)
-
-
4
エクセルVBAが中国のPCでは動かない(エラー)
Visual Basic(VBA)
-
5
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
VBで構造体を使うさ際の64k...
-
「Active Directoryプロパティ...
-
EXCEL/VBAで、自分のPCだけエラ...
-
複数のバージョンの Office 対...
-
【VBA-AC2000】カレントプロシ...
-
VBの初心者で、仕事で必要に...
-
実行時エラー3001「引数が間違...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
Excel VBA で End Subのところ...
-
アクセス 実行時エラー3265
-
職場から目的地までの距離集計
-
DoEventsは意味ない?
-
エクセルVBAで以下のようなコー...
-
DataGridView からの値取得に関...
-
C#でプロパティをもつ構造体型...
-
Excelで下記のようにマクロを作...
-
VBAのChrome操作のエラーについ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
EXCEL VBAマクロ中断でデバッグ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
-
VBAのコードがエラーになっ...
-
Outlook.ApplicationをCreateOb...
-
VB6+SQL サーバー 2000 で 実行...
-
ExcelVBAで、ユーザー定義型は...
-
実行時エラー48発生時のDLL特定...
おすすめ情報
失礼しました。エラーは Compile error: Can’t find project or library となっています
参照設定はワードを選んでいます。