- ベストアンサー
EXCEL/VBAで、自分のPCだけエラーが出ます
下記は、wordの「@一覧表」文字の部分をExcelで作成した表(B3:E9)に置き換えるマクロですが、自分のPCだけ「Executeメソッドは失敗しました:Findオブジェクト」のエラーが出ます。 何が原因なのでしょうか、対処方法を教えて下さい。 ちなみに自分のPCは、EXCEL2003です。他のPCのEXCEL2003や自宅のEXCEL2007ではエラーは出ません。 Dim wordApp As Word.Application Dim wordDoc As Word.Document Dim wordRange As Word.Range Set wordApp = New Word.Application Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\ひな型用ドキュメント.doc") (途中略) Set wordRange = wordDoc.Content wordRange.Find.Execute "@一覧表", Forward:=True ←エラー Range("B3:E9").Copy wordRange.Paste
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- EXCEL2007で動くマクロがEXCEL2000だとエラーが出ます。
下記は、wordの「@一覧表」文字の部分をExcelで作成した表(B3:E9)に置き換えるEXCEL2007で作成したマクロですが、EXCEL2000で動かすと「メソッドまたはデータメンバーが見つかりません」のエラーが出ます。初心者につき、対処方法を教えて下さい。 Dim wordApp As Word.Application Dim wordDoc As Word.Document Dim wordRange As Word.Range Set wordApp = New Word.Application Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\ひな型用ドキュメント.docx") (途中略) Set wordRange = wordDoc.Content wordRange.Find.Execute "@一覧表", Forward:=True Range("B3:E9").Copy wordRange.PasteAndFormat (Word.wdPasteDefault) ←エラー *エラーは、wdPasteDefaultで出ます。
- ベストアンサー
- Visual Basic
- EXCEL2010エラーVBA
下記を実行するとエラーになりEXCEL2010が終了してしまいます。 fDebug:0 offset00009391 がエラーメッセージです。 何が原因でしょうか。 Private Sub Worksheet_Change(ByVal Target As Range) Dim ws As Worksheet Dim rg As Range Dim r As Variant Dim c As Long Dim hanni1 As Range Dim atai As Range Set ws = Worksheets("あああ") Set rg = Worksheets("コード").Range("A1:B10") r = ws.Cells(Rows.Count, 1).End(xlUp).Row Set hanni1 = ws.Range(Cells(2, 2), Cells(r, 3)) Set atai = ws.Range(Cells(2, 3), Cells(r, 3)) atai = Application.VLookup(hanni1, rg, 2, False) End Sub
- ベストアンサー
- その他(プログラミング・開発)
- Excel2003で動作するものがExcel97で使用できません!
Excel20031で動作している下記VBAがExcel97では動作しません。問題のところのみ記述します。 Private Sub CommandButton2_Click() Dim fStr As String, foundCell As Range Dim i As Long, j As Long Dim x As Range, y As Range fStr = TextBox1.Text Set iSheet = iBook.Sheets(1) Set foundCell = iSheet.Range("K:K").Find(fStr, lookat:=xlWhole) これで何をしているかというと、「判定フォーム」シートから別のシートを呼び出し、判定フォームに入力した値を検索して、その行に書かれている値を判定フォームに取り込むという動作をしています。Excel2003では動作するのですが、Excel97では Set foundCell = iSheet.Range("K:K").Find(fStr, lookat:=xlWhole) のところで「RangeクラスのFindプロパティを取得できません」というエラーが出てしまいます。2003と97で何か違うところがあるのでしょうか。わかる方ぜひ教えてください。よろしくお願いいたします!!!
- 締切済み
- Visual Basic
- excel VBAを利用し、テンプレートとなるワードファイルの一部分を
excel VBAを利用し、テンプレートとなるワードファイルの一部分をエクセルデータで 置換を行い、新しいワードファイルとして保存するという処理を作成しています。 [環境] Windows Vista Office 2007 差し込み文書ではなく個別にファイルを作りたいという条件があります。 処理としては、 テンプレートを開く→置換を実施→別名で保存→テンプレートを変更せず閉じる を繰り返し実施しています。 ただ、このやり方ですと最後の閉じる処理を行った際に、 「wordは、動作を停止しました」というエラーメッセージが頻繁に出てしまいます。 出来上がったファイル自体は問題なく読めているんですが。 処理自体に問題があるんでしょうか? VBA自体初心者であり、他に良い方法などありましたらご教示いただけたら助かります。 #処理内容はだいぶ簡略化しています。 Public Function output_word2() Dim word As New word.Application Dim document As word.document Dim file_name As String Dim output As String Dim path As String Dim row As Integer Sheets(CALC_SHEET).Select 'データ取得用シート path = Application.ActiveWorkbook.path file_name = path & "\xxxxxx.doc" '元の文書 row = 3 Do If Range("B" & row).Value = "" Then Exit Do End If With word .Documents.Open Filename:=file_name Set document = .ActiveDocument End With word.Selection.Find.Text = "{置換対象文字}" word.Selection.Find.Forward = True word.Selection.Find.Replacement.Text = Range("C" & row).Value word.Selection.Find.Execute , , , , , , , , , , wdReplaceAll output = path & "\output\" & Range("C" & row).Value & ".doc" document.SaveAs Filename:=output '置換後のword文書を別名で保存 document.Close SaveChanges:=False word.Quit row = row + 1 Set word = Nothing Set document = Nothing Loop End Function
- ベストアンサー
- オフィス系ソフト
- VBAエラー '1004' について
VBA初心者です。 下のプログラムの★部分で 「実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。」 というエラーが発生します。 どなたか原因を教えていただけないでしょうか?? Dim aRange As Range Dim bRange As Range Set aRange = Range(Sheets("シートA").Range("A3"), Sheets("シートB").Range("A3").End(xlDown)) ★ Set bRange = Range(Sheets("シートB").Range("A3"), Sheets("シートB").Range("A3").End(xlDown)) 下のシートBの範囲取得と同じことをしているつもりなのですが、うまくいきません。 どうぞよろしくお願い致します。
- 締切済み
- オフィス系ソフト
- EXCEL2000とEXCEL2003のVBAについて
現在、EXCEL2000で下記のコードを実行しています。 が、EXCEL2003で実行すると、 .UsedRange.Copy myb のコードが実行されているのにコピー出来ていません。 ファイルは開いていて、エラーは出ていないのです。 問題点わかる方教えていただけますか? Sub 日別データ読込() Dim rngsaki As Range Dim pathmacrobook As String Dim namebook As String Dim motobook As Workbook Dim myb As Variant Set rngsaki = Workbooks("残高集計用.xls").Worksheets(3).Range("a2") pathmacrobook = ThisWorkbook.Path & "\CSV読込データ12\" namebook = Dir(pathmacrobook & "*.xls") Do While Not namebook = "" Set motobook = Workbooks.Open(pathmacrobook & namebook) Set myb = Workbooks("残高集計用.xls").Worksheets(3).Range("A65536").End(xlUp) With motobook.Worksheets("Sheet1") .UsedRange.Copy myb End With motobook.Close False namebook = Dir() Loop MsgBox "完了しました" End Sub
- ベストアンサー
- オフィス系ソフト
- Excel2000でFileDialogにコンパイルエラーが表示される
Excel2000でFileDialogにコンパイルエラーが表示される いつもながらExcelのマクロについての質問です。 Dim 保存 As FileDialog Set 保存 = Application.FileDialog(msoFileDialogSaveAs) If 保存.Show = -1 Then 保存.Execute End If Set 保存 = Nothing これがExcel2002で使っていたマクロです。 ところが、同じものをExcel2000で使おうとしたら 保存 As FileDialog の部分にチェックが入り 「コンパイルエラー ユーザ定義型は定義されていません。」 と表示されて止まってしまいました。 Excel2000でもExcel2002と同じ操作ができるようにするには どうしたらよいのでしょう。 以上、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- ACCESS VBA を勉強中のものです。
勉強のため購入した本(※VBA逆引き大全)からサンプルがダウンロードできたので,下記の構文で実行したところ,フォーム上の会社名を,Wordに「~様」と挿入することができました。 Private Sub cmd実行_Click() Dim Appwo As Word.Application Dim doc As Word.Document Dim stPath As String Dim stName As String stName = Me.txt会社名 stPath = "C:\Users\pigo\Desktop\納品書.docx" Set Appwo = CreateObject("Word.Application") Set doc = Appwo.Documents.Open(stPath) Appwo.Visible = True With Appwo.Selection .Find.Text = "様" .Find.Execute .InsertBefore stName .Font.Size = 12 .Font.Bold = True End With Set Appwo = Nothing Set doc = Nothing End Sub ここで質問なのですが,フォーム上には会社名に加え,そのほかにもWordへと挿入したいテキストボックス(※部署名,担当者名など)が複数存在します。そのような場合には,上記の構文はどのようにすればよいのでしょうか。 教えていただければ幸いです。 初心者で言葉足らずかも知れませんが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- Word2000のVBAでエラーが出ます
VBA初心者です。Word2000上でExcel2000並べ替え用VBAを作成しまが、「名前付き引数が見つかりません」のエラーが出ます。 Sub Sort() Dim objExcel As Excel.Application Dim tmpBook As Excel.Workbook Set objExcel = CreateObject("Excel.Application") Set tmpBook = Workbooks.Open("C:\Dic1.xls") Range("A1:B100").Select Selection.Sort Key1:=Range("A1"), _ Order1:=xlAscending, _ Header:=xlGuess, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin tmpBook.Close True objExcel.Quit End Sub Excel2000上で同様のマクロを作成すると、正常に動作します。初歩的な質問で申し訳ありませんが、どなたか御教授をお願い致します。
- 締切済み
- その他(プログラミング・開発)
- Excel2010VBAからWordの呼び出し
お世話になります。 Excel2003VBAで、次の様にWordファイルをオープンしていました。 Dim boReadOnly As Boolean Dim objWord As Word.Application boReadOnly = True Set objWord = CreateObject("Word.Application") With objWord .Documents.Open toFullName, ReadOnly:=boReadOnly .Visible = True End With これを、Excel2010VBAへ移植すると、WordファイルがExecelの後方に隠れて表示されてしまいます。 暫定として、.Visibleの次行に、 .Activate を追加しています。これを行なうと、Startアイコンの→横に、Wordアイコンが点滅するので、 Wordがオープンした事はわかります。 Wordファイルを呼び出し元のExcelの前面に表示させるには、どうすればいいでしょうか? 御教示よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
まさしくこの現象ですね。 フリーのEXCELアドインソフトを4~5種類ライブラリーに入れて、アドイン登録してから変なエラーメッセージが出始めました。 どのアドインソフトが影響しているか調べてみます。 色々と丁寧に回答して頂き、本当に有難うございました。