イントロダクション
以下の 2 つの投稿にて、Word の文章を単語に分解する方法と、Excel から Word を操作する方法について学びました。VBA:Wordを使って、日本語を単語に分解できる!これは便利だ!
http://upa-pc.blogspot.com/2015/04/word-vba-sentence-to-words.html
VBA:ExcelからWordの文書を操作する - ステップ1:空の文書を作成し、文章を書きこむ
http://upa-pc.blogspot.com/2015/04/vba-excel-word-write-text-to-document.html
以上の 2 つのことが出来るようになると、Excel のセルに入力された日本語の文章を、単語に分解することが可能になります。
では、実際にどのようにやるのか見てみましょう。
VBA:Excelのセルに入力された文章を、日本語の単語に分解する
事前準備
Excel から Word を操作できるように、参照設定を行います。
設定方法については、「VBA:ExcelからWordの文書を操作する - ステップ1:空の文書を作成し、文章を書きこむ」の事前準備をご覧ください。
VBAコード
以下の VBA コードを、Word の Visual Basic Editor にて、標準モジュールとして記載しました。' アクティブセルの文字列を、 ' Word の機能を使用して、単語に分解 Sub ShowWords() Dim wordApp As New word.Application ' Word 起動 Dim doc As Document ' ドキュメント記録用 Set doc = wordApp.Documents.Add ' Word のドキュメントに、アクティブセルのテキストを書きこむ wordApp.Selection.text = Application.ActiveCell.text ' Word のドキュメント内の文章の単語を列挙する Dim text As String Dim i As Integer For i = 1 To wordApp.Selection.Words.Count text = text & i & " : " & wordApp.Selection.Words(i).text & vbNewLine Next i ' メッセージボックスで表示 MsgBox text ' Word は保存せず終了 wordApp.Quit False End Sub
セルに入力したテキスト
以下のテキストを、Excel の任意のセルに入力しておきます。(テスト用データ)これはテスト用の文字列です。Hello World!
実行結果
上記のセルをアクティブにした状態で、ShowWords マクロを実行すると、次のようにセルに入力した日本語の文章が、単語に分解されて画面上に表示されます。
Excel のセルに入力された日本語の文章を、 Word の機能を使って単語に分解して、画面上に表示 |
---------------------------
Microsoft Excel
---------------------------
1 : これ
2 : は
3 : テスト用
4 : の
5 : 文字列
6 : です
7 : 。
8 : Hello
9 : World
10 : !
---------------------------
OK
---------------------------
解説
大まかな部分は、以前解説した内容と被るので省略します。VBA:Wordを使って、日本語を単語に分解できる!これは便利だ!
http://upa-pc.blogspot.com/2015/04/word-vba-sentence-to-words.html
VBA:ExcelからWordの文書を操作する - ステップ1:空の文書を作成し、文章を書きこむ
http://upa-pc.blogspot.com/2015/04/vba-excel-word-write-text-to-document.html
今回のポイントは、以下の 2 つです。
' Word のドキュメントに、アクティブセルのテキストを書きこむ
wordApp.Selection.text = Application.ActiveCell.text
Excel のアクティブセルのテキストを、Word のドキュメントへ書き出しています。
' Word は保存せず終了
wordApp.Quit False
Word の文書は、日本語の文章を単語に分解するために使用しただけなので、Quit メソッドに False を指定して、保存を行わずに終了しています。
まとめ
このように、Word と Excel を VBA によって連動すると、Excel に無い機能でも Word の機能を使って実行できることが分かりました。それらを使えば、様々なことを行うことが出来そうです。
|
コメントを投稿
コメント投稿機能について