
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは。
別の質問の中で、私が回答していますから、そちらを参考にしたほうが早いかもしれません。
Wordのマクロは、標準的には、当該Document の"ThisDocument" モジュールを使います。
というよりも、Excelは、オブジェクトが多いので、標準モジュールを多用します。
ただ、宗派や版によっても違うかとは思いますが、漢訳法蓮華経の読み下しは、どこかにあったような気がします。
それと、ふりがなとおっしゃっていますが、Wordのルビという前提で出来上がっていますから、違う場合は、正しく出ません。Word Document 上のルビそのものからも、ふりがなデータは取り出すことは可能です。今回は、あくまでも、虫食いを作るためのものです。
http://oshiete1.goo.ne.jp/qa5384755.html
#3
いずれにしても、ふりがなデータのみを抜き出すなら、すでに、Wordを想定した回答が出ていますから、そちらを参照してからにしていただけませんでしょうか。こちらは、括弧の半角のみですが、もうひとつのほうは、全角・半角両方の括弧をサポートするように出来ています。
No.2
- 回答日時:
こんにちは。
>ワードのマクロでできるのか、カッコ付きのテキストから検索置換するのか教えてください。
「保存すると書式なし」→「ほぞん□□□しょしき□□」となることですと、括弧以外の文字に対して、全角空白にして、虫食い形式にすることでしょうか?
本来、ふりがなデータを抜き出してリスト化するのは簡単なのですが、虫食いデータにするのは、なかなか難しいです。特に、元のご質問のような文章ですと、() 付きの文章が交じり合っている場合は、誤動作します。
一旦、テキストに出力して、括弧つき・ふりがなデータだけを残して、全角空白にして、それを再び、Wordに呼び出し、そのWordの表示をスペースが見えるように切り替えるものです。
'-------------------------------------------
Sub PingPickUp()
'フリガナデータの抽出
Dim newDoc As Document
Dim Matches As Object
Dim Match As Object
Dim FNo As Integer
Dim oFno As Integer
Dim TextLine As String
Dim Buf As String
Dim i As Long
Selection.HomeKey Unit:=wdStory
Selection.EndKey Unit:=wdStory, Extend:=wdExtend
If InStr(1, Selection.Text, "(", 1) = 0 Then
MsgBox "フリガナデータがないと思われます。", vbInformation
Exit Sub
End If
On Error GoTo ErrorHandler
Selection.Copy
Set newDoc = Word.Documents.Add
newDoc.Content.Paste
newDoc.SaveAs "$$tmp.txt", wdFormatText
newDoc.Close
With CreateObject("VBScript.RegExp")
.Pattern = "\([^\)]+\)" 'パターン
.Global = True
oFno = FreeFile()
Open "$$otmp.txt" For Output As #oFno
FNo = FreeFile()
Open "$$tmp.txt" For Input As #FNo
Do While Not EOF(FNo)
Line Input #FNo, TextLine
Buf = TextLine
If .Test(Buf) Then
Set Matches = .Execute(Buf)
i = 1
For Each Match In Matches
Mid(Buf, i, Match.firstindex - i + 1) = String(Match.firstindex - i + 1, Chr(&H8140))
'括弧を取る
Buf = Replace(Buf, "(", "", , , 1): Buf = Replace(Buf, ")", "", , , 1)
i = Match.firstindex + Len(Match.Value) + 1
Next
Else
Buf = String(Len(Buf), Chr(&H8140))
End If
Print #oFno, Buf
Buf = ""
Loop
End With
ErrorHandler:
If Err.Number > 0 Then
MsgBox Err.Description
End If
Close #FNo
Kill "$$tmp.txt"
Close #oFno
If Dir("$$otmp.txt") <> "" Then
With Documents.Open("$$otmp.txt")
.Windows(1).View.ShowSpaces = True
End With
End If
End Sub
すごいプログラムありがとうございます。私は初心者ですので、早速標準モジュールの中へコピペしましたが「プロシャージャーの呼び出し、引数が不明」で□□ばかりになりました。
主旨は虫食い形式にはせずに、カッコ内のふりがなデータを抜き出してテキスト化することと、カッコ以外の文字をテキストにしたいのです。
例 妙(みょう)法(ほう)自我得佛來(じ-が-とくぶつらい)…を
「妙法自我得佛來…」と「みょうほうじ-が-とくぶつらい…」にしたいのです。
素人ですが、せっかくワードデータに漢字とふりがながあるのだから、手作業でなく、自動処理したいと頭から湯気がでています。
再度よろしくお願いします。
No.1
- 回答日時:
「保存(ほぞん)すると書式(しょしき)なし」
↓
エクセルシートに貼り付けて
データ→区切り位置 で(を指定したり )を指定したりすれば
取り出すことは可能です。
文章によって分離されたふりがなが入るセルの列が不ぞろいになる場合も多いでしょうから、作業が楽になるかどうかはわかりません。
取り出しが終わったら、不要な文字を削除して
ワードに貼り付けます。
この回答への補足
ありがとうございました。( の区切り位置で下記のように
Iほぞん)すると書式Iしょしき)なし」
ふりがなの所で分かれるので、後は手作業で
ほぞん□しょしき□
としていきます。が文字量が多いので
マクロとかで()かっこかっこの間の文字をとりだして、テキストにすることはできないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでマイナスの%表示を...
-
ワード:右上の小さい文字
-
レポート
-
Ctrl+Shift+C、Ctrl+Shift+Vが...
-
ワードで改行すると一行開いて...
-
縦書き日本語入力で( )をこ...
-
Powerpointで、コピーすると、...
-
エクセル 期日の半年前になる...
-
ワードで既に使われている色の使用
-
wordの表にテキストをペースト...
-
word 背景について
-
【EXCEL2002】「貼り付け先の書...
-
Excel 条件付き書式 行ごとに...
-
エクセルの文字入力で白抜き文...
-
Google スプレッドシートを使...
-
PowerPointで勝手に下線や背景...
-
【Word2003】コピーしたテキス...
-
文字の右上と右下に小さく文字...
-
初心者です。メモ帳の使い方で…
-
Wordの文字間隔を狭くするには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでマイナスの%表示を...
-
ワード:右上の小さい文字
-
ワードで改行すると一行開いて...
-
Ctrl+Shift+C、Ctrl+Shift+Vが...
-
縦書き日本語入力で( )をこ...
-
Powerpointで、コピーすると、...
-
エクセル 期日の半年前になる...
-
レポート
-
ワードの文字の濃さを揃えたい。
-
ワードで既に使われている色の使用
-
パワーポイントで乗数はどうや...
-
Google スプレッドシートを使...
-
wordで縦書きで「あ」に濁点を...
-
word 背景について
-
wordの表にテキストをペースト...
-
ワード確定していた全角文字(...
-
エクセル2010で 貼り付け先の...
-
英文での借用書書式を教えてく...
-
【EXCEL2002】「貼り付け先の書...
-
PowerPointで勝手に下線や背景...
おすすめ情報