[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Wordの文章をExcelに抜き出して表示させる』(ウルトラ)
下記のようなことがマクロを設定することで、可能でしょうか
Wordで作成した文章をExcelに字数を設定して複数のセルを結合したところに、入れ込みたい。また、それを1行ごとに飛ばした行にいれて行きたい。(例えば、1行目・3行目・5行目というようにする)
例えば、Wordで1行が45文字の文章が8行ほどあるとしたら、それを35文字ずつで改行させて、一行ごとに飛ばした行のExcelの複数のセルを結合したところに表示させる。(例えば、C列の12行目からJ列の12行目の間に表示させる)
条件
※ 既存のExcelの申請書があり、Wordで作成した文章だけを抜き出す
1.Wordの文章は45文字程度になっている
2.Excelは1行を35文字にする
3.特定のセルの結合したところに表示させる
4.飛び飛びの行ごとに入れて行く
6.35文字以上は改行して次の行に自動的に送っていく
7.禁則処理で行頭・行末の句読点の処理は自動的に行われる
< 使用 Excel:Excel2013、使用 OS:Windows10 >
1)Word文書のページ設定を、1行あたり35文字にする
2)1行ずつ配列に取り込む
3)配列の各要素をエクセルで1行おきに表示する
(マナ) 2017/01/08(日) 16:41
(マナ) 2017/01/08(日) 16:54
(γ) 2017/01/08(日) 17:02
(γ) 2017/01/08(日) 17:29
1)新規のWord文書に転記したい文章だけををコピペ ・1ページにおさめること ・図形などはなし文章だけにすること 2)元のword文書は閉じる(word文書は1個だけ開いた状態にする) 3)エクセルの転記したい最初のセルを選択した状態で 4)下記のマクロを実行
Option Explicit
Sub test() Dim ws As Worksheet Dim wd As Object Dim doc As Object Dim ln As Object Dim s As String Dim v() Dim n As Long Dim i As Long
Set wd = GetObject(, "Word.application") Set doc = wd.ActiveDocument doc.PageSetup.CharsLine = 35 With doc.ActiveWindow ' .View.Type = 3 ' wdPrintView With .Panes(1).Pages(1).Rectangles(1) ' If .RectangleType = 0 Then 'wdTextRectangle For Each ln In .Lines s = Replace(Replace(ln.Range.Text, Chr(13), ""), Chr(11), "") s = Trim(s) If Len(s) > 0 Then n = n + 1 ReDim Preserve v(0 To n) v(n) = s End If Next ' End If End With End With
For i = 1 To n ActiveCell.Offset(i * 2 - 2).Value = v(i) Next
Set doc = Nothing Set wd = Nothing
End Sub
(マナ) 2017/01/08(日) 20:14
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.