文字種別カウント(WSH)→画像
(クリックするとテキストファイルがそのまま表示されてしまうので、スクリプトそのものをダウンロードするには画像か圧縮ファイルの方をクリックする。)
《countsum.vbs》《len.vbs》《StrLen1.bas》
選択範囲の文字列の文字数を表示し、またはテキストに書き込む。句読点・記号類を除いた文字数だけカウントすることができる。
《research.vbs》
選択範囲の文字列の文字種別字数を表示する。「真魚」エディタで新しい文書を開き、結果を書き込む。
《research_2.vbs》
調べたいテキストファイル名を入力すると、文字種別字数を文字コード順に日付をつけた別ファイルに書き込み、同じフォルダに保存する。
《research_3.vbs》
調べたいテキストファイル名を入力すると、文字種別字数を頻度順に日付をつけた別ファイルに書き込み、同じフォルダに保存する。
【使い方】
《countsum.vbs》《research.vbs》
任意のテキストを選択し、「真魚」のメニューからスクリプトを実行する。「真魚」エディタでスクリプトを実行する方法は、「コマンド入力」(TJSoft-21)の項を参照。
《research_2.vbs》《research_3.vbs》
単独使用可能。調べたいテキストファイルのあるフォルダにスクリプトを置き、ダブルクリックする。
《StrLen1.bas》
MS-Wordにインポートして使う。専用のツールバーを作り、そこに登録するとよい。(使い方は、GlobalTrimスクリプトの項を参照。)
《len.dms》
「VxEditor」の「ツール」に登録して使う。JavaScriptベースのDMonkeyというスクリプトにこのエディタは対応している。Editor.SelTextというプロパティで選択文字列の取得・設定ができるので、DMonkeyというのは皆目不案内だが、文字列の長さを調べるだけの最も単純なスクリプトなので、見よう見まねで作ってみたら動いたので、参考までに載せておく。
【改版履歴】
◇《countsum.vbs》作文・レポート類の文字数計算に使う。実際上の必要から作成した。正規表現の検索パターンを修正すれば、実際の需要の有無は別として、英文字だけ・漢字や仮名だけという集計もできる。以前ExcelVBAで作った文字種別カウントができれば、文章の分析に使うことができるだろうが、単純なスクリプトだけでできるかどうか。(2007.9.28)◇《research.vbs》《research_2.vbs》文字種別カウントは難しかろうと思っていたが、不思議にイメージに近い形で作成できた。ただし、コード順指定を基本にしているが、文字の無いところに「・」を埋めてあるため、中黒(・)自身を正しくカウントできないという問題がある(結果表示の途中に何カ所も紛れ込んでしまう)。また、正規表現のキーワードは「¥」記号をつけてエスケープしないとエラーが出てしまうので、その処理に手間取った。他にも最後に空白とおよそ選択文字の総文字数に近いものを吐き出すが、こういうところの理由がよく分からない。それでもともかくイメージに近い結果が出てくると、今度は頻度順にソートしたくなる。(なお、「research」という名前は、昔、この名前のフリーソフトがあって、使用文字種一覧を打ち出した。その記憶から付けたものである。)(9.29)◇《research_3.vbs》頻度順にソートするプログラムを作った。スクリプトと同じフォルダに「research^[ファイル名](日付).txt」として結果を出力する。(これはver.2も同じ。)スペース(全角・半角)、タブを区別して表示するようにした。改行文字を含めた総文字数も出てしまうが、あって困るものではないのでそのままにした。最後に1行だけ意味不明の空白文字が出てしまう。「K」よりも大きく、「!」よりも小さいコード番号の文字らしいが、正体が分からない。エディタ画面では見えない。なぜそれがカウントされるのかも不明である。まあ、厳密に考えれば何だが、日曜大工プログラムとしては合格線といえようか。正規表現のおかげで、同じ頻度の中でも結果はコード順に並ぶ。(9.30)◇「サクラエディタ」にも、「真魚」と同様に選択文字列を取得するメソッドと設定するメソッドのあることが分かった。同エディタからは、「ツール」−「キーマクロの読み込み」で選択し、同じく「ツール」−「キーマクロ実行」で実行する。「真魚」エディタの階層でさえやや手間を感じた私には、(ショートカットメニューはあるものの)これはちょっと面倒くさい。ただ、ツールバーにボタンを登録したり、ショートカットキーを登録する機能があるので、若干楽になるか。(「真魚」にもコンボボックスがあるといいが。)とにかく、同じようなマクロは可能であるらしいというサンプルとして挙げておく。(9.30)◇《StrLen1.bas》MS-Word用のVBAマクロとしてとりあえず移植した。改行コードや空白文字は数えない。ワード・エクセル等なら、選択文字列の取得と設定の問題は解消する。実際に使うまでの設定がやや面倒だが、使える場面はずっと多くなるだろう。(10.7)◇《len.dms》「VxEditor」や「Apsaly」エディタにも、「サクラエディタ」同様、選択文字列を取得・設定できるプロパティないしメソッドがあることに気づいた。それぞれの開発言語の中にそういう機能があるのだろう。この「選択文字列の取得・設定」というだけのことをWEBで調べてみて、よほど難しい技術であるらしいことがおぼろけに分かってきた。ところで、「VxEditor」の場合、そのプロパティ(メソッド)は、「Editor.SelText」と「真魚」より簡単だ。しかし、このエディタでサポートしているのはJavaScriptベースのDMonkeyというスクリプト(スクリプトの拡張子はdms)だという。マニュアルはプログラマ向けのもので、サンプルを探そうとしたがあまり多くない。一、二見つけたものから、推測で作ってみたらたまたま動いたので、ついでに並べておくことにした。JavaScriptで古典を電子化したこともあったが、1文字でも間違えると決して動いてくれない、という気難しさ(自分の間違いをトレースできない)からしばらく遠のいていた。でも、(私は個人情報を利用されたくないので使っていないが)今はやり(?)のSnap ShotもJavaScriptである。曲がりなりにも動いたとなれば、興味も湧いてくるものだし…。スクリプト自身には興味があるので、古典の電子化に戻りながら、ぽつぽつ手習いをやり直した方がよいか。とまあ、この場かぎりになりそうなメモである。(10.8)