カテゴリー

macの便利な機能

【ユーザー辞書&Automator】macOSのユーザー辞書登録をショートカットで行う方法

2022年9月18日

こんな人におすすめ

ユーザー辞書を使い始めたんだけど、これってかなり便利!

でも、登録するときにいちいちシステム環境設定を開かないといけないから面倒。

楽にユーザー辞書登録できる方法はない?

ということで、今回はMacの標準機能「ユーザー辞書」で単語を登録する画面をショートカットで開く方法を紹介する。

実際に執筆者も面倒と感じていたので思い切って作成した。

作成直後のTwitterのツイートが以下。テンションが上がっているのがわかる。

本記事ではユーザー辞書とはということから始まり、ショートカットの作成方法の紹介とざっくりとした解説を行う。

ユーザー辞書を有効活用してよりMacライフを充実させてほしい。

本記事でのMacの環境は以下だ。

  • M1 MacBook Pro
  • macOS Monterrey
  • バージョン12.6(21G115)

運営者のメガネと申します。TwitterInstagramも運営中。

自己紹介はこちらから、お問い合わせはこちらからお願いいたします。

運営者メガネ

ユーザー辞書とは

そもそもユーザー辞書ってのは、特定の文字を打ったらそれに対応する文章が出てくるって機能だ。

よくあるのが以下のようなユーザー辞書。

  • じゅ:(自宅の住所)
  • めー:(自分のメールアドレス)
  • あり:ありがとうございます。
  • お:お世話になっております。
  • ひ:引き続きどうぞよろしくお願いいたします。

要するに文章入力用のショートカット(短縮系)のことだ。これをうまく使いこなせるようになると、文章入力が爆速になる。

実際、執筆者は200近くのユーザー辞書を登録している。

と言いつつ、実は全ての言葉を短縮しているわけではない。

タイピングミスを正常な文で登録しておくことで、ミスを簡単に修正することができる。

例えば執筆者の場合は以下のようなタイピングミスを登録している。

  • 勉強:bねきょう
  • できる:dけいる
  • 変更:へのく

Macは自動変換(ライブ変換)が搭載れているので、多少のタイプミスもこれで解決できてしまうんだ。

逆にユーザー辞書に頼りすぎていつまで経ってもタイプミスが減らない気もするが。

一般的なユーザー辞書の登録方法

一般的なユーザー辞書での単語登録では、「キーボード」を選択。

続いてユーザー辞書のタブに移動して左下の「+」を押してユーザー辞書を登録する。

いちいちシステム環境設定を開かないといけないし、画面遷移もしないといけなくて面倒。

登録するのが面倒だと登録しなくなる、その結果ユーザー辞書を活用できずに非効率に陥ってしまう。

一方で、記事の方法だとショートカット1つですぐにこの画面までいけるのでかなり楽に登録できる。

本記事の完成系イメージとコード

完成系のイメージが上の通り。

ショートカット1つでシステム環境設定を開いて自動でユーザー辞書登録画面まで移動している。

あとはユーザー辞書を登録するだけだ。

本記事でのショートカット作成はMac標準アプリの「Automator」の「クイックアクション」の機能で行っている。

Automatorの検索欄から「AppleScriptを実行」をダブルクリックして以下のコードをコピペ。

tell application "System Preferences"
	--システム環境設定のキーボードのユーザー辞書の画面へ
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			tell tab group 1 --キーボード画面のタブ
				tell group 1 --単語の登録・削除のボタングループ
					click button 1 --登録ボタン「+」
				end tell
			end tell
		end tell
	end tell
end tell

以下のように入力できていればOKだ。

たったこれだけでMacでのユーザー辞書の登録が楽になるから驚きだ。

あとはファイルを保存してシステム環境設定のキーボードのサービスから保存したファイルを探してショートカットを設定。

ここでは「Register_UserDictionary」という名称でファイルを保存している。

ショートカットを実行した際のアプリによってはエラー的なものが出るが問題ない。

「システム環境設定」の「セキュリティとプライバシー」の「プライバシー」の「アクセシビリティ」からエラーになったアプリのチェックを入れるだけ。

これが使いこなせるようになるとより効率的にキーボード入力ができるようになる。

Automatorでユーザー辞書の登録ボタンを押す手順

ここからはユーザー辞書登録のコードがどういう構造なのかをざっくり解説する。

この部分を読むことで、他の操作にも応用できるだろう。

Automatorでコードを書く準備

まずはアプリ「AUtomator」を起動する。ロボットのアイコンのアプリだ。

アプリを起動して左側の検索欄に「ap」と入力すると「AppleScriptを実行」というアクションがヒットする。

これをドラッグ&ドロップするか、ダブルクリックで右側の灰色の部分に移動させる。

すると紫の初期コードが表示されるが、以下で処理コードを使用するので、これは使わない。

なお、入力していくコードは、右上の「実行」もしくは⌘ rのショートカットでお試し実行できる。

サクッと確認したいって時に使うと良いだろう。もちろんエラーの際はエラーと表示される。

システム環境設定を開く

tell application "System Preferences"
	activate
end tell

基本的にアプリはtell applicationで呼ぶことができる。システム環境設定は英語で「System Preferences」だ。

他にもカレンダーなら「calendar」、テキストエディットなら「TextEdit」と入力することで使用することができる。

なお、小文字でも大文字でもつづり(スペル)が正しかったらそのアプリが起動する。

ただし、つづりが違っている場合はどのアプリのことなのかを聞かれる。

上の画像では「calendar」のつづりを「calndar」にしたときの様子だ。

この画面でお目当てのアプリを選択しても、スクリプトでは修正されないので注意が必要だ。

誤解を避けるためにも正しいつづりにすることをおすすめする。

ユーザー辞書の設定まで一足飛びする

tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

システム環境設定の画面からキーボードの画面、そしてユーザー辞書まで進むにはこのコードにすれば一発だ。

システム環境設定の各大項目にはid的なものが割り振られており、anchorでその中のタブが決められている。

なので、idanchorを選択すればすぐに飛べるというもの。

今回はキーボードの中のユーザー辞書の画面まで飛ぶことができた。

  • Text:ユーザー辞書
  • com.apple.preference.keyboard:キーボードの設定

com.apple.preference.keyboardから遷移できるタブについては以下から確認することができる。

一覧にすると以下の通り。ユーザー辞書(ユーザ辞書)がTextなのは紛らわしい。

  • InputSources:入力ソース
  • shortcutsTab:ショートカット
  • keyboardTab_ModifierKeys:キーボードタブの装飾キーの変更
  • keyboardTab:キーボード
  • Text:ユーザー辞書
  • Dictation:音声入力

システム環境設定のキーボード部分の要素を取得

ここまでで一瞬で「システム環境」を開いて「キーボード」画面まで遷移、そして「ユーザー辞書」まで移動できた。

次の作業が一番の鬼門で、ユーザー辞書の登録ボタン「+」を押す作業だ。

執筆者が調べた感じ、このプラスボタンをサクッと押すことができないようだった(知っている人がいたら教えてほしい)。

ということで、以下の方法で1つひとつ確認していった。地道だが単純なので苦ではない。

  • ユーザー辞書画面の要素の一覧を表示
  • 1要素ずつ何なのか確認
  • プラスボタンを探し当てる

なお、この方法については以下の記事を参考にした。

キモになるのがevery UI elementという部分で、この文で要素一覧を出力できる。

しかし、これまでの分にevery UI elementを加えるだけだとエラーになる。

tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	every UI element
	activate
end tell

参考にしたサイトではtell processでアプリ「テキストエディタ(TextEdit)」を読んでいるので、今回もこれに倣うことにする。

一連の処理は以下。tell window "キーボード"がないとシステム環境設定の画面で要素を取ろうとする。

  1. システム環境設定→ユーザー辞書を開く
  2. 1秒待つ
  3. ユーザー辞書の画面の全ての要素を出力
tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			every UI element
		end tell
	end tell
end tell

このコードを実行すると以下のように「結果」画面にコードが出力される。

ダークモードだと黒文字が被って見づらいのでライトモードで示す。

結果部分の内容は以下。ダブルクリックで全選択でき、そのままコピペが可能だ。

{button 1 of window "キーボード" of application process "System Preferences" of application "System Events", tab group 1 of window "キーボード" of application process "System Preferences" of application "System Events", button "Bluetoothキーボードを設定…" of window "キーボード" of application process "System Preferences" of application "System Events", toolbar 1 of window "キーボード" of application process "System Preferences" of application "System Events", button 3 of window "キーボード" of application process "System Preferences" of application "System Events", button 4 of window "キーボード" of application process "System Preferences" of application "System Events", button 5 of window "キーボード" of application process "System Preferences" of application "System Events", static text "キーボード" of window "キーボード" of application process "System Preferences" of application "System Events"}

長ったらしいが、基本的にはof application process "System Preferences" of application "System Events”という部分が続いているだけ。

この部分を削除し、適当に改行などを加えて整理すると以下のようになる。

{
    button 1
    tab group 1
    button "Bluetoothキーボードを設定…"
    toolbar 1
    button 3
    button 4
    button 5
    static text "キーボード"
}

この要素はシステム環境設定の「キーボード」画面の「キーボード」タブの要素だ。

なので「Bluetoothキーボードを設定…」という文字があったりする。

ユーザー辞書は画面上部のタブに該当するので、コードの上から2番目tab group 1を選択する。

tab group 1の選択は簡単で、tell tab group 1とするだけ。

これでユーザー辞書の画面に遷移できた(実際に遷移するわけではなく、プログラムの中で遷移しているイメージ)。

ユーザー辞書の画面の要素を取得

tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			tell tab group 1
				every UI element
			end tell
		end tell
	end tell
end tell

あとは同じように画面遷移した先でevery UI elementで要素一覧を取得、1つひとつ検証するだけだ。

出力された要素はまたまたややこしいので整理する。整理は先ほどと同じように被っている文字を削除するだけ。

ただし、階層が深くなっている分、削除する文章も長くなっていることに注意。今だと以下の文を削除する必要がある。

of tab group 1 of window "キーボード" of application process "System Preferences" of application "System Events"

整理した後の要素一覧は以下だ。日本語が多いのでどこのボタンなのかわかりやすくて助かる。

{
    radio button "キーボード" 
    radio button "ユーザ辞書" 
    radio button "ショートカット" 
    radio button "入力ソース" 
    radio button "音声入力" 
    scroll area 1 
    pop up button 1 
    pop up button 2 
    checkbox "英字入力中にスペルを自動変換" 
    static text "二重引用符:" 
    static text "スペルチェック:" 
    pop up button "スペルチェック:" 
    checkbox "スマート引用符とスマートダッシュを使用" 
    checkbox "スペースバーを2回押してピリオドを入力" 
    checkbox "Touch Barに入力候補を表示" 
    static text "一重引用符:" 
    checkbox "文頭を自動的に大文字にする" 
    group 1 
}

ユーザー辞書の画面と照らし合わせて確認すると、確かにこの画面の要素を取得しているのがわかる。

そうなると選別しないといけないのは以下の4種類だけとなる。かなり絞られた。

scroll area 1
pop up button 1
pop up button 2
group 1

これらを1つひとつ確認する。答えは本記事の上の方で書いているが、この際、全てのボタンについて検証してみる。

scroll area 1の要素を見てみる

tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			tell tab group 1
				tell scroll area 1
					every UI element
				end tell
			end tell
		end tell
	end tell
end tell

まずはscroll area 1から見ていく。と言ってもスクロールエリアはすでに登録している単語一覧の部分しかない。

なので、取得される要素は以下の2つだけ。表(table)とスクロールバーだ。

{
    table 1
    scroll bar 1 
}

試しにtabelの要素を取得してみる。結果は案の定、すでに登録している単語の一覧が取得できる。

執筆者の場合はユーザー辞書に200近い数の単語を保存していたので、それを取得できたということだろう。

pop up button 1, 2をクリックしてみる

tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			tell tab group 1
				click pop up button 1
			end tell
		end tell
	end tell
end tell

pop up button 1pop up button 2は同じ構造なので一緒に見ていく。

それぞれボタン形式なので、tellで要素を呼ばずにそのままクリック(click)する。

そうするとユーザー辞書の「二重引用符」の箇所のトグルがクリックされた。

ということはclick pop up button 2とすると変わりに一重引用符のトグルが押されることになる。シンプル。

これはこれで感動ものだが、欲しいのはユーザー辞書の新規単語登録の「+」のみ。

残されたgroup 1が正解の「+」だ。

group 1の要素を見てみる

tell application "System Preferences"
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			tell tab group 1
				tell group 1
					every UI element
				end tell
			end tell
		end tell
	end tell
end tell

ということで、最後のgroup 1を見ると、おそらく「+」「-」だろうボタンが2つ出現した。

{
    button 1 
    button 2 
}

左にある「+」がbutton 1に該当するだろう。

実際に確かめてみるとちゃんとユーザー辞書の登録ボタンが押されているのが確認できた。

一方でbutton 2にすると、一番下にあった「わ:WordPress」が削除された。

完全にビンゴだ。

これでクリックせずに「システム環境設定を開く」「キーボードのユーザー辞書の画面に遷移」「ユーザー辞書の登録状態」まで遷移することができた。

コメント付きのAppleScriptコードが以下だ。

tell application "System Preferences"
	--システム環境設定のキーボードのユーザー辞書の画面へ
	reveal anchor "Text" of pane id "com.apple.preference.keyboard"
	activate
end tell

delay 1 --処理が詰まるのを防止

tell application "System Events"
	tell process "System Preferences"
		tell window "キーボード"
			tell tab group 1 --キーボード画面のタブ
				tell group 1 --単語の登録・削除のボタングループ
					click button 1 --登録ボタン「+」
				end tell
			end tell
		end tell
	end tell
end tell

あとはこのコードを保存して使いやすくするだけだ。

アプリorクイックアクションとして保存

続いては作成したコードをファイルをして保存する。

今回、執筆者はクイックアクションとして保存するが、初めにアプリを選択した場合はちょっと表示が異なるだろう。

ファイルの保存先はそれぞれ以下だ。

  • クイックアクション:/Users/(ユーザー名)/Library/Services
  • アプリケーション:/Applications

ショートカットを作成(クイックアクションのみ)

クイックアクションを選択した人は「システム環境設定」「サービス」からショートカットを選択できる。

執筆者は今回「Register_UserDictionary」という名称で保存したので、この欄にその名称が表示されている。

右側の「ショートカットを追加」をクリックし、好きなショートカットを登録する。

登録して他の部分をクリックすると登録内容を確認できる。

この時、他のアプリやMac標準のショートカットと被ると使いづらいので注意が必要だ。

次にショートカットを入力すると以下のようにエラーが発生することがある。

この場合は「システム環境設定」「セキュリティとプライバシー」「プライバシー」「アクセシビリティ」から設定を変更する必要がある。

左下のロックを解除してそのショートカットを押した時のアプリの項目にチェックを入れる。

例えばChromeの状態でショートカットを押してエラーが起きたのなら、Chromeの項目にチェックを入れる必要がある。

今回だとブラウザのSidekickで起きたので、Sidekickの項目にチェックを入れた。

チェックを入れて再度ショートカットを実行すると正常に動作してユーザー辞書の新規登録ができるようになる。

以上でユーザー辞書登録の手順は終わりだ。

お疲れ様でした。

ユーザー辞書をもっと気軽に

ということで、今回はMacのユーザー辞書の新規登録をショートカットで実現する方法を紹介した。

ユーザー辞書の機能は広まっていると思うが、その多くはポチポチと押しているだけだろう。

本記事の手法を使って一瞬でユーザー辞書登録をして、さらに効率的に作業に取り組んでいただきたい。

  • この記事を書いた人

メガネ

ベンチャー企業のWebエンジニア駆け出し。独学のPythonで天文学系の大学院を修了→新卒を1.5年で辞める→転職→今に至る。
常時金欠のガジェット好きでM1 MacBook Pro x Galaxy S22 Ultraの狂人。
人見知りで根暗だったけど、人生楽しもうと思って良い方向に狂う→人生が楽しい

ガジェットのレビューとPythonコードを記事にしています。ぜひ楽しんでください🦊
自己紹介と半生→変わって楽しいの繰り返し

-macの便利な機能