Excelのアクセスキー

Excelでテンキーのスラッシュが突如アクセスキーの動きをするようになりました。

アクセスキー自体はAltで表示できることは知っていましたがテンキーの/でも表示できることは知りませんでした。
今まで其のようなこともなかったのでちょっと吃驚した次第です。

初めはAutohotkeyでテンキーを活用の更なる追加の途中で起こったため一旦スクリプトを終了してみました。

しかし結果は同じです。調べてみると[Excel のオプション] - [詳細設定] - [Lotus との互換性] の [Microsoft Office Excel メニュー キー] のテキスト ボックスの "/" を削除すると良いとのこと。

これをやったら問題は解決しましたが今までこの設定を見たこともなかったので突如アクセスキーが発動するようになった理由がわかりません。

ということで何となく100%解決とはいい難い状況であります。

Autohotkeyでエクセルとテンキーを便利に使う

f:id:pokogen:20200319120813j:plain

Sculpt Ergonomic Desktop Keyboard & Mouse (スカルプト エルゴノミック デスクトップ キーボード アンド マウス) | Microsoft Hardware
日々エクセルで入力するためにこのキーボードのテンキーをカスタマイズして便利に使おうと考えています。

自分にとって必要な機能とは:の入力との入力をテンキーだけで済ませてできればNumlockキーを押さずに前後左右キーを使えるようにすることです。

AutoHotKeyでWindowsやExcelやその他の操作を改善する - Qiita

上記のページを参考にしました。

~NumpadAdd::
  If (A_PriorHotKey == A_ThisHotKey and A_TimeSincePriorHotkey < 300)
  {
    SendInput, {BackSpace 2}
    Send,{U+003a}
 }
Return
*/
~NumpadSub::
  If (A_PriorHotKey == A_ThisHotKey and A_TimeSincePriorHotkey < 300)
  {
    SendInput, {BackSpace 2}
    Send,~
  }
Return

上記のスクリプト+の二連打で:が入力され-の二連打でが入力されます。

このキーに変換するのは単に私が多用する用途があると言うことだけで誰もが必要とするわけではありません。あしからず。

続いて同様の操作を上下左右キーでもやってみたのですがこちらは見事に失敗しました。

理由は直におわかりになると思いますが例えば2の連打が22と打ちたいのかを打ちたいのかを連打の時間間隔で制御するのは実際的では無いからです。

そこで考えてのがこのテンキーだけで完結してNumLockを外して入力、終わったらまたオンにするという方法を避ける方法です。

SetNumlockState, AlwaysOnと宣言しておいてこのキーをホットキーとして使います。

Numlock & numpad8::Send,{Blind}{Up}
Numlock & numpad2::Send,{Blind}{Down}
Numlock & numpad4::Send,{Blind}{Left}
Numlock & numpad6::Send,{Blind}{Right} 
Numlock & numpad9::Send,{Blind}{PgUp} 
Numlock & numpad3::Send,{Blind}{PgUp} 
Numlock & numpad7::Send,{Blind}{Home}
Numlock & numpad1::Send,{Blind}{End} 

以上でお終いですがこちらは片手操作が少し苦しいかな。

~vk08 & numpad8::Send,{Blind}{Up} 
~vk08 & numpad2::Send,{Blind}{Down}
~vk08 & numpad4::Send,{Blind}{Left}
~vk08 & numpad6::Send,{Blind}{Right} 
~vk08 & numpad9::Send,{Blind}{PgUp} 
~vk08 & numpad3::Send,{Blind}{PgUp} 
~vk08 & numpad7::Send,{Blind}{Home}
~vk08 & numpad1::Send,{Blind}{End} 

たまたまBackspaceがテンキー上にあるのでこちらも利用してみました。 こちらには~を付けてくださいね。

Autohotkeyで自動入力した年月を固定する

すぐに手抜き、時短の方法を考えるのが好きって所が悪い癖なんですがどうも直しようがありません。

本日も給料の締日がやってきてエクセルを弄っていたのですが関数で書いた日時の書式をコピーして貼り付けて文字に変換というのを簡単に出来そうじゃないかと閃きました。

余計のことをせずに手動のままにして仕事を進めたほうが時間的には早いのは分かっているのですがついついチャレンジ(そんな大層なものでもない)してしまいました。

もともとの関数は

=YEAR(TODAY())&"年"

=MONTH(TODAY())&"月分"

というものでこのまま放おっておくと次ぐに開いたときにはその年月を表示してしまいます。

でその部分をコピーして再度同じ場所に貼り付けるのをワンキーで代行できるようにと考えました。

例によってAutohotkeyのお世話になっています。

#ifWinActive ahk_exe EXCEL.EXE
F1::
send,^c
clipboard = %clipboard%
send,^v
return
#IfWinActive

上記のようにF1キーを押すと当該セルをコピーしてテキストとして同じ場所に貼り付けをするようになります。

PC版LINEのショートカットキーを換えてみた。

PC版LINEがあると大層便利です。

ただ「便利なショートカットが利用できます」とありますがこれ、実は大変不便です。

Ctrlk:Keepを開く

Ctrln:ノートを開く

この2つのショートカットキーがIMEの文節を縮めると先頭部分を確定するにバッテイングするのです。

IMEの設定は長年馴染んだものですから変更するわけにはいきません。

そもそもショートカットキーがあるからと云って漢字変換中のキーアサインを横取りするのはかなり問題ある行動だと思います。他のソフトでも確認しましたがそのようなことは起こりません。

で、LINEの方でバージョンアップの度に何らかの対策が取られるのを待っていましたが一向に治る気配がありません。

そこでどうすれば良いのかかなり悩んだのですがGoogle日本語入力のキー設定のカスタマイズから適当なキーにこの2つを割当ててました。(私は{Left}キーに文節を縮めると{Down}に先頭部分を確定)

その上でAutohotkeyスクリプトにこのように書きました。

#IfWinActive, ahk_class Qt5QWindowIcon
^N::send {Down}
^K::send {Left}
^enter::!enter
#IfWinActive

最後の行でCtrlEnterで送信出来るようにしています。

Android 10でクリップボードを活用するには

Android10になってからクリップボード履歴アプリが調子悪いとか言っている人いますよね。 でも、コピー履歴にはAndroid10の仕様によりアクセス出来なくなったのです。

Limited access to clipboard data Unless your app is the default input method editor (IME) or is the app that currently has focus, your app cannot access clipboard data on Android 10 or higher.
アプリがデフォルトの入力方式エディター(IME)であるか、現在フォーカスを持っているアプリでない限り、アプリはAndroid 10以降のクリップボードデータにアクセスできません。 https://developer.android.com/about/versions/10/privacy/changes#clipboard-data

ということで現在クリップボード履歴を使うには何らかの方法でこの規制を潜り抜けたアプリを使うかGboardをIMEとして使用するかのどちらかです。

現在私が知っている唯一のAndroid10で機能するクリップボード履歴管理アプリはこれです。

ただし正常に使用できるようにするには

以上の準備をしてからスマホとパソコンをUSB接続し次のコマンドを打つ必要があります。

adb -d shell appops set com.catchingnow.tinyclipboardmanager SYSTEM_ALERT_WINDOW allow;
adb -d shell pm grant com.catchingnow.tinyclipboardmanager android.permission.READ_LOGS;
adb -d shell am force-stop com.catchingnow.tinyclipboardmanager;