0. はじめに
Teamsのメンション、使用する機会が多いわりに @を押して、数文字入力して、出てきた候補の中から選んでEnter とやることが多いです。
特定のユーザーへのメンションのショートカットキーを作成して、ワンアクションでメンションをつける方法を二つご紹介します。
1. PowerToysを利用した方法
PowerToysとは、Windowsが提供するユーティリティツールアプリです。
PowerToysの機能の一つに、Keyboard Managerがあります。
Keyboard Managerでは、キーの再配置やショートカットの再配置・新規作成を行うことができます。
1.1 Power Toysをインストールする
Microsoft Storeからダウンロードしてインストールします。
1.2 Keyboard Managerを開く
不要な機能は誤操作の元なのでOFFにしておきましょう。
1.3 ショートカットの再マップを開く
1.4 ショートカットキーを設定する
①ショートカットの再マップを追加から、ショートカットキーを選択します。
②ショートカットとして設定したいキーを押して設定します。今回は、Alt+kを設定します。
Alt+k→金子さん
Alt+s→佐藤さん
のようにAlt+イニシャルで設定すると覚えやすいです。
1.5 ショートカットキーを押したときのアクションを設定する
アクションをテキストの送信、キーを@ユーザー名に設定します。
1.6 ターゲットアプリをTeamsに限定する
PowerToysでは、プロセス名を指定することで設定したショートカットが動作するアプリケーションを限定できます。
他のショートカットと競合しないようになるべく狭い範囲を設定しておくのが良いと思います。
今回はTeamsのみで動作させたいので、ターゲットアプリのテキストボックスにTeamsのプロセス名であるms-teams.exeを入力します。
各アプリのプロセス名は下記のページから確認できます。
2. Pythonを使った方法
PowerToysでは、Enterキーをショートカットの出力に割り当てられないため、Alt+kのあとにEnterを押して確定させないとメンションできません。
この動作に満足できない方はこれからご紹介する方法で、メンションを確定させるところまでのショートカットを作成することができます。
2.1 python、pipをインストールします
python3.xxをインストールします。wsl(Ubuntu)経由だとpynputがうまく動かなかったので、windows側にインストールする必要がありそうです。
2.2 python、pipがインストールされていることを確認する
コマンドプロンプトを開き、下記のコマンドで確認します。
python --version
# Python 3.12.2
pip --version
# pip 24.0...
2.3 必要なパッケージをインストールする
pip install pynput
pip install pyautogui
pip install keyboard
下記のコマンドでバージョンが表示されるようになればインストールできています。
pip show pynput
# Name: pynput
# Version: 1.8.1
# ...
pip show pyautogui
# Name: PyAutoGUI
# Version: 0.9.54
# ...
pip show keyboard
# Name: keyboard
# Version: 0.13.5
# ...
2.4 ショートカット用のプログラムを作成する
下のプログラムをコピーして、mention.pyという名前で保存します。
from pynput.keyboard import Controller
import pyautogui
import keyboard as kb
import time
controller = Controller()
def mention(target):
pyautogui.press("hanja") # 全角→半角
time.sleep(0.2)
controller.type(f'@{target}')
time.sleep(0.5)
pyautogui.press("enter")
pyautogui.press("hanja") # 半角→全角
pyautogui.typewrite("sann")
pyautogui.press("enter")
pyautogui.press("space")
# ここに入力と出力の組を設定する
kb.add_hotkey('alt+s', mention, args=("sato",))
kb.add_hotkey('alt+n', mention, args=("nakao",))
kb.add_hotkey('alt+t', mention, args=("takamoto",))
kb.add_hotkey('alt+u', mention, args=("uchiumi",))
print("Esc で終了。")
kb.wait("esc")
「ここに入力と出力の組を設定する」と書いてある行から下に、kb.add_hotkeyという関数がいくつか書かれているのがサンプルです。
kb.add_hotkeyの第一引数にショートカットキーとして設定したいキーを、argsにはメンション先のアカウント名を設定してください。
pynputとpyautoguiは似たようなパッケージですが、動かしてみたところやりたい動作との相性に良し悪しがあったので両方使ってそれぞれの得意分野を処理させています。
2.5 プログラムを実行する
python mention.py
# Esc で終了。
実行したら実行しっぱなしにしておいて、常に作成したショートカットの入力を受け付ける状態にしておきます。
実行中に全角モードの状態でショートカットキーを押すと<メンション先>さんまでが入力、確定されます。
Escで終了することにしてありますが、ここは各自普段使わないキーを割り当ててください。
以上です。




