ExcelからWordの文章を取得する方法は?

このQ&Aのポイント
  • EXCELからWORDの文章を取得する方法について調べています。現在はEXCELの文章を取得することはできていますが、実際に開いているWordの文章を取得する方法がわかりません。
  • 具体的には、ExcelからWordの文章を取得する方法について教えて欲しいです。現在は、Excelの文章を取得することはできていますが、開いているWordの文章を取得する方法がわかりません。
  • ExcelからWordの文章を取得する方法について調べています。Excelの文章を取得することはできていますが、開いているWordの文章を取得する方法が分からない状況です。
回答を見る
  • ベストアンサー

EXCELからWORDの文章を取得

set WD=GetObject(,"Word.Appllication") para1=Wd.activedocument.Paragraphs(1).Range.Sentences(1).text で、無事、activeなWordの文章は取れるのですが、 実際にあり、開いているWord文章(D:\aabbcc.docx)を処理しようと set WD=GetObject("D:\aabbcc.docx") para1=Wd.activedocument.Paragraphs(1).Range.Sentences(1).text とするとエラーになります。 どうやったら、取得できるでしょうか?

  • USB99
  • お礼率41% (85/206)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

sub testA() dim WD,para1 set WD=GetObject("D:\aabbcc.docx") para1=WD.Paragraphs(1).Range.Sentences(1).text ・・・以下省略 とするか sub testB() dim WD,para1,AppWD set WD=GetObject("D:\aabbcc.docx") set appWD=WD.parent para1=appWD.activedocument.Paragraphs(1).Range.Sentences(1).text ・・・以下省略 のように親オブジェクトをセットしてやるか、 では。

USB99
質問者

お礼

ありがとうございました。無事、できました。

関連するQ&A

  • EXCELのVBAでWORDが開いてあるかチェック

    EXCELのVBAで特定のWORDが開いてあるかチェックしたいのですが、 あるフォルダにWORD文章があるかチェック      set appWord=GetObject(,"Word.Application")      Msgbox appWord.Documents.count なければエラー処理で終了 そのWORD文章の名前を取得      docFile=....    (仮にABC.docxという名前だとしますと) そのWORD文章が誰かが使っている(開いているか)チェックしたいのですが.. 1.使われているなら、-$ABC.docxが作られているはずだから    dir(-$ABC.docx)として、あれば使われていると判断したいのですが、    実験するとdir(-$ABC.docx)は、使われて実際にそのファイルがあっても    falseになってしまいます。dir関数でなくてもいいので、このファイルの    有無を調べる方法はないでしょうか? 2.その他、読み取り属性とかをみて判断する方法はないでしょうか?    ただし、使われている場合は、10秒ごとにチェックをいれて、    使われていない場合に、初めて開くので、エラー処理で逃げるのは    ダメなのですが。

  • ワード マクロ

    WORDについての質問です。 現在以下のマクロをツールバーのボタンに登録しています。 Sub Macro1() Dim Para As Paragraph For Each Para In ActiveDocument.Paragraphs '段落単位で With Para.Range.Characters If .First.Text Like "[tk]" Then '先頭を処理 .First.Delete End If End With Next End Sub これによって各段落の頭にある「t」と「k」を消去する処理を行っています。 現在作成を試みているのは,上記の処理を行ったあとに,別の作業をしたあと,いったん消してしまった文頭の「t」「k」をやっぱり復活させたいという場合の処理です。 そのようなマクロを作成し,ツールバーのボタンに登録させたいのですが,うまくできません。 どなたか教えていただければ非常に助かります。 どうかよろしくお願いいたします。

  • エクセルVBAでワード文書印刷(2)

    先日、こちらで、VBAを記述したエクセルのブックと同一フォルダーにおいておいたABC.DOCをプリントし、ABC.DOCを閉じる方法を教えていただき、Excel2003でためしたら、下記でうまくいきました。(その際、回答者のchie65536さん、手が滑ってポイントをつけず締め切ってしまいました、申し訳ございません。) ところが今、会社のExcel2000でやったところ、「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。」と出てしまいます。 ABC.DOCをプリントしおわったら、ABC.DOCを閉じ、ワードを終了するようにしたいのです。 ためしに、wd.Quitの代わりに、wd.ActiveDocument.Close とすれば印刷はされましたが、ワードが終了しません。 wd.ActiveDocument.Close のあとに wd.Quitを入れると、「印刷中です。Wordを終了すると・・・・」が出てしまいます。 どうなおせばよいのでしょうか? Sub Word_Print() Dim wd As Object Set wd = CreateObject("Word.application") wd.Visible = True wd.documents.Open Filename:=ThisWorkbook.Path & "\ABC.doc" wd.ActiveDocument.PrintOut wd.Quit Set wd = Nothing End Sub よろしくお願いいたします。

  • ワードVBAで、段落のタブの数を数えたい。

    ワード2002使用です。 2段落目に複数のタブが入力されています。 ワードVBAで、選択した段落のタブの個数を数えたい。 sub タブ() Dim tab数 As Integer ActiveDocument.Paragraphs(2).Range.Select tab数 = Selection.Paragraphs.tabs.Count←ここがよくわかりません msgbox tab数 end sub よろしくお願いします。

  • ワード VBA

    ワードのマクロについて教えてください。 以下のようなマクロをボタンに登録しています。 Sub Macro10() Dim myReg As Object Dim st As String Dim match As Variant Set myReg = CreateObject("VBScript.Regexp") myReg.Pattern = "\x0d\x0d(|$)" myReg.Global = True st = ActiveDocument.Range.Text ActiveDocument.Range(1, 1).Select For Each match In myReg.Execute(st) With Selection .Find.Text = match.Value .Find.Replacement.Text = vbCr .Find.Execute , , , , , , , , , , wdReplaceAll End With Next st = ActiveDocument.Range.Text If myReg.Test(st) Then _ ActiveDocument.Range.Text = myReg.Replace(st, "") Set myReg = Nothing End Sub ここで教えていただきたいのは,上記のマクロを実行するためにボタンを押した際,実行前にカーソルが置かれていたのと同一の場所に実行後のカーソルを戻す方法です。(ちなにみ上記のマクロを実行する際にカーソルが置かれているのは,空白行ではない行の先頭です。※処理とは関係ないかもしれませんが,念のために。) そのような処理を行うには,上記のマクロにどのような記述を追加すればよいのでしょうか。 どなたかご教示いただければと思います。 どうぞよろしくお願いいたします。

  • word VBA ファイル名 保存

    wordで作成したファイルの最初の第1行名をファイル名として、名前を付けて保存できるマクロを作りたいのですが、うまくいきません。 Sub 保存() Dim ファイル名 As Variant ファイル名 = ActiveDocument.Paragraphs(1) & ".docx" ActiveDocument.SaveAs FileName:=(ファイル名), FileFormat:= _ wdFormatXMLDocument End Sub ではだめなのですが、どなたか添削よろしくお願いします。困っております。なにぶん初心者ですので基本的な文法のミスかもしれないですが、うまくいきません。

  • excel  VBA ワード文書テンプレートに転送

    下記のコードを作成したのですがうまくいきません指導願います Sub () Dim wd As Word.Application Dim WDoc As Word.Document res = MsgBox("?", vbYesNo) If res = vbYes Then nissi = "C:\Documents and Settings\○○ \デスクトップ\文書1.doc" Else nissi = "C:\Documents and Settings\○○ \デスクトップ\文書2.doc" End If Set wd = CreateObject("Word.Application.11") wd.Visible = True Set WDoc = wd.Documents. _ Open(nissi) With WDoc.Tables(1) Set crange = Sheets("aq").Cells(1, 1) WDoc.Tables(1).Cell(1, 2).Range.Text = crange If Sheets("aq").Range("d2") = "D" Then 中略 end With wd.Quit Set wd = Nothing Set WDoc = Nothing End Sub

  • Excelマクロで、WORDを閉じるには。

    Excel2000のマクロ内で、Word2000を起動してファイルを開き、それを別名保存した後Wordを閉じてExcelに戻る…という処理を行いたいのですが、Wordを閉じる所がうまく出来ません。 [現在のマクロ]------------------------------ Set wd = CreateObject("word.Application") wd.Visible = True wd.documents.Open Filename:= _ "C:\aaa.doc" wd.ActiveDocument.SaveAs Filename:= _ "C:\test\bbb.doc" wd.Close SaveChanges:=False -------------------------------------------- これで実行すると、開いたファイル(aaa.doc)は閉じるのですが、別名保存したファイル(bbb.doc)が閉じません。両方のファイルおよびWORDアプリケーションを閉じたければどう記述すればよいのでしょうか? どなたか教えてください。

  • 宛先を取得したい

    いつもお世話になっております。 またまた教えてください。 郵便物を各担当者が発送するときに、システムよりダウンロードしたWordの送付状があります。 宛先が4行目にあったり、5行目にあったり、6行目にあったりします。 担当者に5行目に会社名が来るように、削除したり、挿入してマクロを使っていもらっていたのですが、それも面倒みたいですので、マクロで自動的に取得する方法はないでしょうか? 株式会社と入っていたら、その行を取得するようなコードになるのでしょうか? よろしくお願いいたします。 Sub 〒保存Word() Dim folder As String Dim s As String, n As String Dim ne As Range ' 現在開いているドキュメント の 5行め のテキスト を 取得(会社名) s = ActiveDocument.Paragraphs(5).Range.Text ' テキスト から 改行 を トル s = Replace$(s, vbCr, "") folder = "\\osaka\Users\分室\★☆受渡用☆★\郵便" With CreateObject("Scripting.FileSystemObject") If .FolderExists(folder) Then ActiveDocument.SaveAs Filename:=folder & "\" & "■" & s & "■" & "名前" & "■" & Month(Date) & "月" & Day(Date) & "日" & "■" & ".doc" Else MsgBox "存在しません" End If End With Shell "C:\Windows\Explorer.exe " & folder, vbNormalFocus End Sub

  • 印刷ダイアログを表示させたくない

    VB6.0でWORDファイルを印刷する機能を作成しています。 ボタンを押して指定のファイルを印刷する際、 完全にバックグラウンドで印刷したいのですが、 どうしても「印刷中」のダイアログが出てしまいます。 ソースは以下のとおりです。 Dim wd As Word.Application Set wd = CreateObject("Word.Application") wd.Visible = False wd.Documents.Open FileName:="D:\sample.doc", ReadOnly:=True wd.Options.PrintBackground = False wd.ActiveDocument.PrintOut wd.ActiveDocument.Close wd.Quit Set wd = Nothing ダイアログを制御するプロパティは存在しないのでしょうか? ご指導のほどよろしくお願い致します。

専門家に質問してみよう