[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.