• 締切済み

詳細な文字カウントをするツール

行が指定した文字数を超えた場合ハイライトする。 パラグラフの文字数。 各行の文字数。 各句点までの文字数 句点や句読点間の平均文字数 こういうのがわかるツールってありますか?

みんなの回答

回答No.4

句点や句読点間の平均文字数以外は、フリーソフトのエディタで出来そうです。 サクラエディタやTeraPadなど無料テキストエディターで参照願います。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#2です。第4番目の課題ですが(第5課題にも使えそう)。 その後多少考えて、Word VBAですが、プログラム的に泥臭く、1文字ずつ文字の判別を繰り返す方法ですが、やってみました。 半角の「、や。」は全角の「、や。」に事前に一括変換したのち(統一して)実行。 ーー 例文 ああ良い天気になりました。どこかに散歩に行こうかな、と思いました。 早速駅の方に、歩いていきました。 大きな池の中に、魚が泳いでいました。(注)↓で改行 大きなフナのようで、重さは数キロありそうです。 はやく、帰らないと、叱られると思い、その場を離れました。 もう一度、あの池に行って、あの鯉を見てみたい。 表 結果を出す表を20行、2列を用意しておく。 ーー コード 文章部分全体を範囲指定して実行のこと。 Public Sub Sample() '文字が、。か、かどうかを一文字ずつチェック Dim r As Word.Range Dim s As String 'Application.ScreenUpdating = False i = 1 '表の行 l = 0 '各文字数 s = "" ' ActiveDocument.Range(0, 0).Select ' Selection.WholeStory For Each r In Selection.Characters If r = vbCr Or r = Chr(11) Then GoTo p1 '改行と行内改行↓は処理しない If r = "、" Or r = "。" Then '句点、句読点なら ActiveDocument.Tables(1).Cell(i, 1).Range = s ’表に書き込み ActiveDocument.Tables(1).Cell(i, 2).Range = l s = "" i = i + 1 '次行 l = 0 Else s = s & r l = l + 1 '文字数+1 End If p1: Next ' Application.ScreenUpdating = True MsgBox "処理が終了しました。", vbInformation + vbSystemModal End Sub ーー 結果 表の中 ああ良い天気になりました 12 どこかに散歩に行こうかな 12 と思いました 6 早速駅の方に 6 歩いていきました 8 大きな池の中に 7 魚が泳いでいました 9 大きなフナのようで 9 重さは数キロありそうです 12 はやく 3 帰らないと 5 叱られると思い 7 その場を離れました 9 もう一度 4 あの池に行って 7 あの鯉を見てみたい 9 ーーー 諸所に改良の余地ありますが、基本だけです。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こんなことを考えるのは、論文や作品の研究のためか。 小生はワードVBAの学習は徹底していないので、下記で言っていることは、後出回答で覆るかもしれない。1週間程度、ぴったりの回答が出ないか、様子を見てはどうかな。ただし可能性は少ないと思う。 ワードの操作でも、文字数を画面にだしたり、知らせる仕組みはあるが、行、パラグラフ、句点、読店は位置を変えて複数(多数)あり、それらの結果数を捉えるのは、一覧的な表を作らないと質問者の要望に応えられないのだろう。そのためには、ワードのVBAを駆使するほか方法はないのではないか。吸うが文字数を捉えることが出来れば、表の最下行に、合計と数で割った平均は出せるだろう。ちなみにワードの表で関数のAVERAGEが使える。 こんなことを、簡単に質問している風なのは、質問者がワードを頻繁に、使ったり、それで苦労した経験が少ないのだろう。 ワードのVBAは、1995年来、解説書が3-4本しか出ておらず、WEBの記事も、一部の事項しか載ってないので、学習に苦労するのだ。洋書の方が解説書はあるようだ。 もしエクセルVBAや他の言語の経験があり、理系の若い人ならVBAに挑戦する人もいるだろう。 ーー 例として第2の課題は 標準モジュールに Sub test06() '各パラグラフの文字数 OK For Each para In ActiveDocument.Paragraphs MsgBox para.Range.Characters.Count Next End Sub 上記は画面に数を出すだけだが、これをワードの表の上からの列にセットすることもむつかしくない。 「パラグラフ」は、日本のワードのユーザーは意識が少ないが、英語=ワードでは基礎的な概念(オブジェクト)に扱われている。 それに比べ日本人は、「ページ」や「行」をすぐ持ち出すが、Pages(2)、やLines(2)のように簡単にとらえさせてくれないようで、苦労する。wdLineなどはある(下記例)のに不思議に思う。 ーー 第3の課題は Sub test13() '各行の文字数カウント Dim i1 As Integer, i2 As Integer, Count As Integer ActiveDocument.Range(0, 0).Select Selection.Expand Unit:=wdLine MsgBox Selection.Characters.Count Do i1 = Selection.Information(wdFirstCharacterLineNumber) Selection.GoTo what:=wdGoToLine, which:=wdGoToNext, Count:=1, Name:="" Count = Count + 1 i2 = Selection.Information(wdFirstCharacterLineNumber) Selection.Expand Unit:=wdLine MsgBox Selection.Characters.Count Loop Until i1 = i2 ' MsgBox Count End Sub これらは改行文字も1文字に数えられたりする。こういう点などで、「質問者のニーズ」に 合うかどうか、の検討が必要な難しさもある。 ーー 第4、第5の課題の中に、句点や読点という言葉が出ているが、それらには複数の文字があり、原文で使い方も統一されているとは言い難いと思う。するとVBAでの処理が複雑になる。 句点を「。」、句読点を「、」に限定し、VBAのFindでメソッドで、次に出現する「、か。」の位置を探し、その文章範囲Rangeの文字数を数えるVBAコードを作れば、達成できるかもしれない。 ーー 第1の「行が指定した文字数を超えた場合」という、入力途中で書式表示を変えるのは イベント的な考えだが、ワード(VBA)で扱うのは、高等なスキルだと思う。 エクセルの条件付き書式のようなものを、自分で作らないといけないのかな、と思う。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

エクセルではいかがでしょう?

関連するQ&A

  • wordの「ツール」の文字カウントでは句読点が含まれてしまいます。

    wordの「ツール」の文字カウントでは句読点が含まれてしまいます。 句読点を含まずに文字数を知る方法をご存知の方、教えてください!

  • ワード2000文字数設定について

    行、文字数を20×20で設定しています。 が、句読点やかぎかっこなどのはいらない行・段落のさがらない行が、 19文字になってしまい困っています。 設定は、ファイル内・ページ設定にておこないました。 「文字数と行数を指定する(H)」を選択。 ど素人な質問ですがご教示ください。

  • 書き込みに文字数の制限は?

    質問や回答を書き込むとき文字数に制限が有りますか。 実は、私が書き込みをしたら350字をオーバーして 居る為受付けられ無いと言うメッセージが出ました 文字数を数えて見ても200文字以下でしたが 空白行を詰めたり句点や句読点を削除したりした のですが、駄目で書き込みを諦めました。 併し、他の方々の書き込みを見ていると1500文字 位の書き込みでも掲示されて居るのを見かけます。 何故駄目なのかを知りたいと思います。 まだ、此処へ来て日が浅いので此処での常識的な事が 分かりません。 宜しくご指導お願い致します。

  • 字数制限のあるときの原稿用紙のルール

     原稿用紙のルールで、行の最初には句点。や読点、は打たないで、前の行の最後の文字のところに一緒に書くか、枠の外に書く、といったものがありますよね?  しかし、東京都立高校の入試での「二百字以内で書け」というように文字数の制限がある場合の作文では、そのルールは破ってもいいものなのでしょうか?  字数がきっかり決まっているので、句読点も行の先頭にきてもいいのでしょうか? ほかに閉じカッコなども、どうなのか。  そういう特殊な場合のルールについてくわしいかた、教えてください。

  • 行末句読点による先頭文字のずれ

    WORD2003で箇条書きの文章を作っています。 ページ設定状況は、行数だけ指定していて、1行の文字数は自動的に(40文字に)設定されています。 例えば、今1行20文字での自動設定されているような場合だとすると ・あいうえお、かきくけこ。(改行) ・さしすせそ、たちつてと、なにぬねの、は。(改行) と2行書いてそれぞれ改行した場合、ぶら下がり機能が働いて、1行の文字列が増え、文字幅が狭くなり、先頭の「・」や、2文字目の「あ」と「さ」が縦に綺麗にそろいません。 ぶら下がり機能を解除すれば、行末の「。」が2行目に移動するので先頭は揃うのですが、そうではなくて、句読点は行末に残すけれども先頭の位置をずらさない。ということはできないのでしょうか。 (要するに、このような場合のみ1行の文字数が1文字増えるような) そもそもこのような技はあるのでしょうか? ご存知の方、どうか助けてください。

  • ワードの文字カウント

    全くの素人で、基本的な質問で申し訳ないのですが。 レポートで、本文が2000字以上有るようにすること、40字×40行の設定という課題だったので、一応書いて、ツールの文字カウントでも、2000字クリアしていたのですが、印刷してみたら、最後に文書の情報も印刷されるのですが、それには、文字数がわずか1000字ちょっとと出ているのです。 文字カウントをあてにして作成したのですが、よかったのでしょうか。 それとも、文字カウントには、行変えも入っているので、本文2000字以上というのを守ろうと思えば、プリントされた情報に載っている文字数で判断するべきなのでしょうか。 ちなみに、印刷機はキャノンのピクサスIP3100です。

  • Word 表 文字数カウント

    質問が解決しなかったので、下記スレッドから移動してきました。 下記スレッドは、マルチリスティングにならないように締め切ります。 http://oshiete1.goo.ne.jp/qa3642672.html 以下の質問の回答がお分かりの方、おられましたら教えて下さい。 Wordの表の文字数カウントの方法に対する質問です。 質問1 Exelで作成した表をコピーペーストでWordで作成した文章の一部に貼り付けた場合(または、Wordで表を作成した場合)、その表の文字数(その表の全ての文字数)のみ(Wordの表部分以外の文字数は除く)をカウントする場合、どのようにするのですか?文字数を数えたい表全体をマウスでハイライトして、メニューの[ツール]→[文字カウント]で確認しましたが、文章内の全ての文字数をカウントしてしまいます。 質問2 Exelで作成した表をコピーペーストでWordで作成した文章の一部に貼り付けた表において(または、Wordで作成した表おいて)、その表の一部のセルの文字数(その表の全ての文字数ではなく)をカウントすることができません。どのようにすれば、カウントできるのでしょうか? 例えば、エクセルで以下のような表を作成するとします。 A1:あいうえお A2:さしすせそ A3:なにぬねの A4: B1:かきくけこ B2:たちつてと B3: B4: この表をWordで作成した文章に貼り付けます。 そして、表の A1:あいうえお A2:さしすせそ B1:かきくけこ B2:たちつてと の部分のみをマウスでハイライトしてメニューの[ツール]→[文字カウント]で確認しましたが、Wordの文章内の全ての文字数(表内の文字数を含む)をカウントしてしまいます。 よろしくお願いします。

  • 文字数カウントツールをどんな時に多く使う?

    文字数カウントツールを仕事や勉強でたくさんの人が使っているのはどんな時でしょうか? どんな需要がたくさんあると思いますか? 文字置換機能や文字検索機能などはよく使いますか?

  • 文字カウントツールはどんな時に使うことが多い?

    文字カウントツールを作ろうと思っているのですが、こんな機能があるといいという情報があれば教えていただければ幸いです。 こんな時によく使う、こんな機能があったらいいのにということがあれば教えていただければ幸いです。 例えば、このオークションに出品するときに文字数制限があるけど、公式サイトはカウントしてくれない。 学校の授業で何文字制限が多いのでみんなこんな時に使っている。 仕事でこんな時に使っているなどあれば教えていただければ幸いです。 できるだけ人数の多いもので教えていただければ幸いです。

  • Word 2007で文字体裁を段落毎に変えたい

    Word2007を使っています。 フォントはMS 明朝を使っており、プローショナルフォントは使用しておりません。 ページ設定で「文字数と行数を指定する」にしており、文字数を40、フォントサイズは12pt、 行数は41にしてります。 「段落」ウィンドウの設定は「禁則処理を行う」「句読点のぶら下げを行う」「行頭の記号を1/2の幅にする」にだけチェックをいれています。 Wordのオプションの「文字体裁」はカーニングが「半角英字のみ」、文字間隔の調整が「間隔を詰めない」を選んでおります。 ある行で41行目に「、」が現れたので段落の設定に従い、その行の末尾に「、」がぶら下がりました。 ですがこの「、」が「間隔を詰めない」設定のためその行の41文字目のあたりに飛び出しています。 これを「句読点とかなを詰める」に変えれば「、」が40文字目部分でちょうど収まります。 ですがこの設定にすると文書全体に影響が出てきてしまいます。この設定を反映させたいのは特定の段落なのです。 文字体裁の「句読点とかなを詰める」を段落、あるいはセクションだけに反映させる方法はないでしょうか? ちなみに今は下記設定で逃げています。 ・行を選択し「均等割り付け」を選び、ちょうど40文字目に「、」が来るように文字数を何度か調整して設定

専門家に質問してみよう