• 締切済み

ワードのふりがなと漢字を別々にテキスト書き出ししたい。

ふりがな付きのワードデータ 例「保存すると書式なし」を、別名保存書式なしのTXTにすると、「保存(ほぞん)すると書式(しょしき)なし」のようにカッコ付きになります。 それをふりがなだけの「ほぞん□□□しょしき□□」のテキストと普通の「保存すると書式なし」のテキストと2ツにできるのでしょうか。 ワードのマクロでできるのか、カッコ付きのテキストから検索置換するのか教えてください。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 別の質問の中で、私が回答していますから、そちらを参考にしたほうが早いかもしれません。 Wordのマクロは、標準的には、当該Document の"ThisDocument" モジュールを使います。 というよりも、Excelは、オブジェクトが多いので、標準モジュールを多用します。 ただ、宗派や版によっても違うかとは思いますが、漢訳法蓮華経の読み下しは、どこかにあったような気がします。 それと、ふりがなとおっしゃっていますが、Wordのルビという前提で出来上がっていますから、違う場合は、正しく出ません。Word Document 上のルビそのものからも、ふりがなデータは取り出すことは可能です。今回は、あくまでも、虫食いを作るためのものです。 http://oshiete1.goo.ne.jp/qa5384755.html #3 いずれにしても、ふりがなデータのみを抜き出すなら、すでに、Wordを想定した回答が出ていますから、そちらを参照してからにしていただけませんでしょうか。こちらは、括弧の半角のみですが、もうひとつのほうは、全角・半角両方の括弧をサポートするように出来ています。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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

senooss
質問者

お礼

すごいプログラムありがとうございます。私は初心者ですので、早速標準モジュールの中へコピペしましたが「プロシャージャーの呼び出し、引数が不明」で□□ばかりになりました。 主旨は虫食い形式にはせずに、カッコ内のふりがなデータを抜き出してテキスト化することと、カッコ以外の文字をテキストにしたいのです。 例 妙(みょう)法(ほう)自我得佛來(じ-が-とくぶつらい)…を 「妙法自我得佛來…」と「みょうほうじ-が-とくぶつらい…」にしたいのです。 素人ですが、せっかくワードデータに漢字とふりがながあるのだから、手作業でなく、自動処理したいと頭から湯気がでています。 再度よろしくお願いします。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

「保存(ほぞん)すると書式(しょしき)なし」    ↓ エクセルシートに貼り付けて  データ→区切り位置 で(を指定したり )を指定したりすれば 取り出すことは可能です。 文章によって分離されたふりがなが入るセルの列が不ぞろいになる場合も多いでしょうから、作業が楽になるかどうかはわかりません。  取り出しが終わったら、不要な文字を削除して ワードに貼り付けます。

senooss
質問者

お礼

初めてなのでお礼の入力を忘れていました。 ありがとうございました。

senooss
質問者

補足

ありがとうございました。( の区切り位置で下記のように Iほぞん)すると書式Iしょしき)なし」 ふりがなの所で分かれるので、後は手作業で ほぞん□しょしき□ としていきます。が文字量が多いので マクロとかで()かっこかっこの間の文字をとりだして、テキストにすることはできないでしょうか。

関連するQ&A

  • マクロで(カッコ)のなかの文字をだす。

    ふりがな付きのワードデータ別名保存書式なしのTXTにすると、「保存(ほぞん)すると書式(しょしき)なし」のようにカッコ付きになります。 それをふりがなだけの「ほぞん□しょしき□」のテキストを取り出したいです。教えてください。

  • C言語でテキストファイルの内容を置換して保存したい

    C言語でテキストファイルを読み込んで、特定のキーワードを 見つけたら置換して、保存したいと考えています。 ネット上でテキストファイルの内容を置換して、保存するよう な情報を検索したのですが、見つからず質問することにしました。 例) hoge.txtを読みこんで、FLG=0となっている行を、FLG=1というように置換させたい。 FLG=0 ↓ FLG=1

  • ルビ付きのワード文書をMacでテキスト保存したい。

    Windows で作成されたルビ付きのワード文書(Word97-2004)があります。これをMacOS10.4または10.5で開き、テキストデータとして編集したいのです。 これをテキストエディットでそのまま開くと文字化けが生じてしまいます。 また、Word(Office2008 for Mac)で開き、書式なしでテキスト保存すると、ルビがなくなってしまいます。理想的なかたちはルビがカッコに入って該当漢字の直後にくるようにしたい(Winsowsではできるらしいのですが)のですが、どのようにすればよいでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • テキストファイルの一部置換したファイルをたくさん作りたい

    テキストファイル(a.txt)があるのですが このファイルの一部の文字列aaaをbbbに置換したファイル(b.txt)を作りたいです。 また文字列aaaをcccに置換したファイル(c.txt)も作りたいです。 続けてd.txtやe.txt・・・と作っていきたいですが簡単にできるフリーソフトはないでしょうか? 現状はa.txtを開いてaaaをbbbに置換して、別名で保存するのを繰り返し(10回以上)するので大変です。 このようなことが楽にできるフリーソフトがあれば教えてください。

  • ワード2002でのテキスト変換について

    ワード2002で保存のファイル形式を「書式なし(txt)」にして保存をクリックすると,ファイルの変換ダイアログボックスが出ます。ここにエンコード方法としてWindows(既定値)・MS-DOS・その他とありますが,どういう風に違うのでしょうか。私はWindows XP,98を使っています。ファイルをお渡しする相手はMacです。 よろしくお願いします。

  • ワードのマクロについて

    お世話になります。 エクセルのマクロについてはここでよくアドバイスをもらっていますが、今回ワードでの処理について教えてください。 1つのフォルダにワード文書がたくさん入っています。 各ワード文書に対し以下の操作を自動化させたい。 1.すべてを選択(ctrl+A) 2.置換で「改行」をすべて削除   あいまい検索のチェックをはずした上で 検索する文字列 ^p  置換後の文字列は「空白」   すべて置換 3.置換で「スペース」をすべて削除   あいまい検索のチェックをはずした上で 検索する文字列 ^w  置換後の文字列は「空白」   すべて置換     4.すべてを選択 5.メニュー→書式→文字種の変換→全角にチェック→OK    ですべての文字を全角にする まとめると「すべての改行、スペースを削除し、全文字を全角に統一する」 この作業をフォルダ内の全ワード文書に対して一括で処理できないでしょうか? ちなみにワード文書は元々メモ帳(*.txt)で作成されていたものをリネームソフトで拡張子を*.docに変換したものです。そのためファイルを閉じるときに「書式なし形式で使用できない機能が含まれています」と聞いてきますが「はい」でOKです。 アドバイスおねがいします。

  • 複数のワード文書を一括でテキスト文書に保存する方法

    OSはWindows XPで、WORD 2002を使用しています。 複数のワード文書をそれぞれ、テキスト文書にして保存したいの ですが、「名前を付けて保存」でファイルの種類を書式なし、で ひたすら保存し続けるのも時間がかかるので、マクロを使ってでも 簡単に保存し直す方法はないでしょうか? PC環境の問題で、 フリーソフトを使うことはできないのが、面倒なとこなんですが、、。 自分で思いつく最短の方法は、上記の保存方法をマクロに記録 して、ショートカットキーを割り当て、ひたすらやる感じです。

  • ワードでテキスト変換したい

    ワードで打ったものをテキスト変換したいのですが、「名前を付けて保存」で「*.txt」という物が出てきません。 Office XPです。 やり方を教えてください。

  • エクセル,ふりがなの自動設定

    エクセル2000で,ふりがな情報をもっていないセル(テキストデータをコピペしたので.)に自動的に標準的なふりがなを設定したいんです. [書式-ふりがな-編集]で,一つのセルの標準ふりがなが設定できるのですが,セルが大量にあるため,マクロか何かを用いて,選択範囲内のセルすべてに標準読み仮名を設定したいんです. どうぞ,誰か教えてくださいm(_ _)m

  • WORDで書式などを利用して置換するマクロをつくりたいです

     WORD2000で書式などをキーにして置換するマクロをつくりたいです。  例)太字の文字列すべてを『♂』『♀』で囲む  これをVBAで表記するにはどう書いたらよいでしょうか?

専門家に質問してみよう