advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27291 for マクロ (0.014 sec.)
[[20170206152701]]
#score: 2168
@digest: 85c2f4d2eacd89e36f2eb4d389ba0298
@id: 72608
@mdate: 2017-02-08T00:23:17Z
@size: 5999
@type: text/plain
#keywords: hlrange (98782), 光ペ (36405), 蛍光 (32468), nwdoc (22142), wdobj (18756), insertafter (15497), insertparagraphafter (15497), activedocument (10524), 間接 (6881), word (6870), 完結 (6672), ペン (5839), 接的 (5260), ュメ (4848), タ書 (4665), ドキ (4278), 文書 (3954), タコ (2908), キュ (2885), (ca (2645), documents (2016), 索結 (1878), で完 (1777), マク (1720), クロ (1546), 、wo (1533), ロ実 (1505), 既存 (1480), ・デ (1478), テキ (1421), き出 (1316), キス (1313)
『Wordの蛍光ペン抽出』(CA)
Wordのドキュメント内、蛍光ペンでマーキングされているテキストをExcelのマクロで抽出することは可能でしょうか。 ExcelからWordマクロを起動して抽出はできましたが、Wordマクロを使用せずに抽出ができればと思いました次第です。 ご存知の方いらっしゃればご教示いただきたく、よろしくお願いいたします。 < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- Sub main() Dim wdObj As Object, h As String, t Set wdObj = CreateObject("Word.application") wordFile = ThisWorkbook.Path & "¥sample.docx" 'Word文書のパス wdObj.Visible = True wdObj.Documents.Open wordFile For Each t In wdObj.ActiveDocument.Characters If t.HighlightColorIndex <> wdNoHighlight Then h = h & t End If Next t wdObj.Documents.Close wdObj.Quit MsgBox "蛍光ペン=" & h End Sub (mm) 2017/02/06(月) 16:57 ---- mmさん コードのご掲示ありがとうございます。 実行しましたところ、ハイライトカラーを探すForEachで繰り返し処理を行い固まってしまいました。 ですがヒントをいただいたような気がいたします。 ありがとうございます。 (CA) 2017/02/06(月) 17:28 ---- >ExcelからWordマクロを起動して抽出はできましたが、 意味がよくわかりませんが できているWordマクロをなぜ提示しないのでしょうか? Excelから実行するように書き換えるだけなので そのほうが解決がはやいと思います。 >ForEachで繰り返し処理を行い固まってしまいました。 文字数が多いのでしょうか? Wordマクロだと検索を使うほうがよいかもしれません。 これで結果が問題なければ、Excelマクロに書き換えてみてください。 Option Explicit Sub test() Dim aryl As Object Dim r As Range Set aryl = CreateObject("System.Collections.ArrayList") Set r = ActiveDocument.Content With r.Find .Highlight = True Do While .Execute aryl.Add r.Text Loop End With MsgBox Join(aryl.toarray, vbLf) End Sub (マナ) 2017/02/06(月) 18:48 ---- マナさん コードのご掲示ありがとうございます。 Excelのマクロのみで完結したかったのは、実際に使用する方が多数になる予定の為、負荷やリスクを軽減できればと考えていた為です。 Excelマクロ実行 ↓ データを抜き出したいWordドキュメントを開く(GetOpenFilenameで開く)・データ書き出し ↓ Excelシートに書き出しデータコピー ↓ Wordドキュメント閉じる(Closeで閉じる) ↓ 抜き出したテキストを既存のフォーマットへ書き出し という流れにしたかったのです。 Wordマクロ使用ですと、 Excel上のマクロ実行 ↓ Wordマクロドキュメントを開く ↓ データを抜き出したいWordドキュメントを開く・データ書き出し ↓ Excelシートに書き出しデータコピー ↓ Wordドキュメント閉じる(Closeで閉じる) ↓ 抜き出したテキストを既存のフォーマットへ書き出し となりWordマクロのデータが何らかの理由で消えてしまった場合、マクロが動かなくなってしまうと考えました。 Excelマクロも消えてれば終わりですが、少なくともリスクは減らせると考えた次第です。 コードの掲示をしなかったのは「Excelで完結できるコード」という条件と合わなかった為でした。 申し訳ございません。 以下、Wordマクロのコードになります。 Sub 蛍光ペンのテキスト抽出() Dim HLRange As Range Dim NWDoc As Document Application.ScreenUpdating = False Set HLRange = ActiveDocument.Range(0, 0) Set NWDoc = Documents.Add With HLRange.Find .Text = "" .Forward = True .Wrap = wdFindStop .Highlight = True End With Do While HLRange.Find.Execute = True And HLRange.Text <> "" If InStr(HLRange.Text, vbCr) Then If HLRange.Text <> vbCr Then HLRange.End = HLRange.End - 1 With NWDoc.Range .InsertAfter HLRange.Text .InsertParagraphAfter HLRange.Collapse direction:=wdCollapseEnd End With Else End If Else With NWDoc.Range .InsertAfter HLRange.Text .InsertParagraphAfter HLRange.Collapse direction:=wdCollapseEnd End With End If Loop Set NWDoc = Nothing Set HLRange = Nothing Application.ScreenUpdating = True End Sub Excelマクロでの呼び出しは以下です。 sub テキスト書き出し() Dim wdApp As Word.Application Set wdApp = GetObject(, "word.application") wdApp.Run "蛍光ペンのテキスト抽出" End Sub (CA) 2017/02/07(火) 09:56 ---- >Wordマクロのデータが何らかの理由で消えてしまった場合 どういうことか全くわかりません。 >「Excelで完結できるコード」 でも、Word文書を開いて、間接的に操作していますよね。 処理速度も遅くなるしメリットありますか? こんな流れではだめですか。 1)Wordのマクロ実行 2)蛍光ペンを抽出したい文書を指定して開く 3)蛍光ペンを検索し、検索結果を配列に保存 4)2)で開いた文書を保存せずに閉じる 5)新規Word文書を作成 6)検索結果を5)の文書に書き込む のように、Wordで完結させるか、 結果をExcelに貼り付けたいなら 5)新規Excelブックを作成 6)検索結果を5)のブックに書き込む というような感じで ExcelからWordを操作するのでなく WordからExcelを操作したほうがよいと思います。 (マナ) 2017/02/07(火) 20:28 ---- マナさん ご返信ありがとうございます。 >Wordマクロのデータが何らかの理由で消えてしまった場合 どういうことか全くわかりません。 ネットワークサーバ上に誰でも閲覧できる場所があり、そこにマクロを置く予定なので、 誰かが誤って切り取りや削除をしてしまう可能性もあるという意味です。 理由は何であれ、扱うマクロのデータは1つの方がいいという程度にお考えください。 >「Excelで完結できるコード」 でも、Word文書を開いて、間接的に操作していますよね。 処理速度も遅くなるしメリットありますか? はい、今はWordマクロも使用している状態なのですが、Wordマクロを使用せずにExcelのマクロのみを使用したかっただけです。 書き出しデータを開いているので、確かに間接的に操作はしてますが、これは開かざるをえないので処理が遅くなっても仕方ないと考えておりました。 最終的にはExcelの既存のフォーマットへ書き出しするのでExcelのマクロでと思っていたのですが、Wordマクロで完結させる方法も考えたいと思います。 アドバイスありがとうございました。 (CA) 2017/02/08(水) 09:23 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201702/20170206152701.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97013 documents and 608132 words.

訪問者:カウンタValid HTML 4.01 Transitional