Macで選択中のテキストの文字数をカウントするスクリプト【DL有り】

Mac

mi や CotEditor とかで文章を書いてるときなら
手軽に文字数をカウントできるのですが、

エディタ以外の場所で文字数をチェックしたいときとか、
あるじゃないですか。

ブラウザとかメールソフトだとか。

そんなとき、とりあえずコピーして
エディタや文字数カウントしてくれるサービスにペーストして
数えてもらうの、面倒で
(;´Д`)

だから以前はプログラムわからないくせに悪戦苦闘して
ClipMenu に「コピーした文章の文字数をカウント」ってメニューを
スクリプト書いて追加したりしてたのですが、

コピーいちいちするの、面倒だし
履歴も増えてうんざりするよね??

……というわけで、Mac限定ですが

「コピー不要! 選択範囲のテキスト文字数をカウントする方法!!」

しかも文字数を表示したあと、
そのダイアログが3秒で自動的に消えるよ!

一番最後まで読んでくれたあなたには
スクリプトのダウンロードプレゼントも!!(´▽`)

スポンサーリンク

WordService もあるけれど。

ぶっちゃけ昨日紹介した WordService の
「Statistics」でも同じことできるのですが、

WordService 見つける前に
頑張ってこのスクリプト書いちゃってたものだから、
お蔵入りさせるのがもったいなくて(ノ∀`)

WordService
無料
(2017.10.15時点)
posted with ポチレバ

一応違いは以下の通りです。

  • WordService の方が情報量が多い
  • 情報量は少ないけど、ウィンドウを勝手に閉じるようにできる
  • メッセージが日本語

それぞれのスクリーンショット貼り付けておきますねー。
(画像クリックで拡大)

AppleScript verWordService

Automator で「サービス」を作る

「Automator」のアクションから
「Apple Scriptを 実行」を
ダブルクリックor右側にドラッグ&ドロップ。
(画像クリックで拡大)

Automator

以下のスクリプトを「Apple Script を実行」欄に
コピー&ペーストします。

on run {input}
    try
        set str to item 1 of input
        set msg to "改行と空白を除外:" & length of new_str(str, "\\s")
        tell me to activate
        using terms from application "Finder"
            set btn1 to "OK"
            set ttl1 to "文字数カウンター"
            display dialog msg buttons {btn1} default button {btn1} with title ttl1 with icon 1 giving up after 3
        end using terms from
    end try
end run
--
on new_str(str, opt)
    set sh1 to "printf '%s' " & quoted form of str & " | "
    set sh2 to "perl -CIO -pe 's|" & opt & "||g;'"
    do shell script sh1 & sh2
end new_str

で、名前をつけて保存。
私は適当に Text Count とつけました。

ついでにショートカットも登録

なるべくキーボードから手を離したくないので、
ついでにショートカットも作っておきます。

システム環境設定 > キーボード > キーボードショートカット > サービス

ショートカット登録

システム環境設定の「キーボード」から
ショートカット登録できますので、
他とかぶらないショートカットを登録してください。

あ、登録は右側の空欄をクリックか
ダブルクリックして選択状態にしてから、

登録したいキーボードの組み合わせを
パシッと押せばOKです。
(たとえばこの例だと
⌘Command + Shift + C の
3つのキーを実際に押す)

使い方

これで使用中のアプリのショートカットとかぶってなければ

文字列を選択した状態で
⌘Command + Shift + C を同時押しするだけで……

文字数カウンター

表示できたヽ(*´∀`)ノ

SafariやChromeで表示しているWebサイトの文字列でも
入力中のフォームのテキストでも、

とにかく選択さえできていれば基本使えます。

残念ながらショートカットがかぶってるアプリでは、
普通にコンテキストメニューの
「サービス」から呼び出せばOKです。
(画像クリックで拡大)

コントロールキーとクリックでコンテキストメニューを出せる

コンテキストメニューの出し方は、
control + クリックか2本指タップです。

ダイアログウィンドウを3秒で自動で閉じる

このままリターンキーを押せば
ダイアログを閉じることはできるのですが、

それすら面倒なので3秒で自動的に
ダイアログが消える
ようにしてあります。

もし5秒とかにしたい場合は9行目の

giving up after 3

を「5」にすれば大丈夫(´∀`*)

Apple Scriptなのでちょっと重いのですが、
とにかく文字列を選択さえできればどこでも動きます。
もうほんと、快適すぎてめっちゃ捗りますよー☆

データ消えたら困るから、こうして備忘録に今日も残すのです。

参考:Apple Scriptによる選択範囲の文字カウント(改行、スペース抜き)について | Apple サポートコミュニティ

【追記】スクリプトをダウンロードできるようにしました

ファイルをダウンロードできるようにしたので、
よろしければ使ってください。

動作確認済み:
OS X 10.9 Mavericks
OS X 10.11 El Capitan

※もし試してみて動作したら動いたOS教えてください♪

Download

解凍後にできた「TextCount.workflow」を
ダブルクリックして「インストール」してください。

ワークフローのインストール

ないとは思いますが、
もしインストールの確認画面が出ない場合は

ライブラリ > Services

フォルダの中に入れれば使えると思います。

ライブラリの中のサービスフォルダへ

ライブラリの表示の仕方は、
オプションキーを押しながらメニューバーの
「移動」をクリックすると現れます。

オプションキー押しながら「移動」をクリックでライブラリが表示できる

コメント

  1. sketchbooks より:

    こんばんは。
    先ほど、TextCountインストールさせてもらいました!

    OSはmacOS High Sierraバージョン10.13.5です。

    なぜかキーボードショートカットでは動きませんでしたが、サービスからだと表示されました!

    大学のレポート中ですが、めっちゃ便利です!

    ありがとうございます!

    • Kunipon より:

      おー、使ってくださってありがとうございます!ヾ(*´∀`*)ノ゙

      ショートカットキー 、なんでだろ??
      他のメニューとの競合は大丈夫ですか?
      こちらのサイト↓

      http://c-through.blogto.jp/archives/38256351.html

      にサービスメニューのショートカットが競合してる場合の見分け方とかわかりやすく説明されてるので、念のため確認してみてください^^