明日の私へ

日頃の生活の中で、徒然感じた事を綴っていきます。

Wordで選択範囲の計算

2023年09月13日 | ソフトウェア
ある掲示板の質問

ある掲示板で一つの質問が目に入りました。

4桁~6桁ほどの数字が100行ほど並んでおり、電卓が得意な方に合計を教えて欲しいという質問でした。

普通に考えれば、100行の数字をコピーしてExcelに貼り付ければ簡単だろうと思います。

試しにやってみると ※数字は適当に書き直しています。

Excelに貼り付けた結果は

うまく張り付きませんが、これは改行コードの違いによるものです。

Windowsで使われている改行コードは、ネット上で良く使われている改行コードと違います。

ですので、メモ帳に貼り付けて文字コードをShiftJISにすればExcelに貼り付けることができます。

今回はWordに一度貼り付けて再度コピーしただけでExcelにうまく張り付きました。

Excelには範囲指定しただけ合計などを計算してくれるAutoCalcという機能があります。

Wordや他のソフトでも範囲指定しただけで合計を出してくれればと思ったのが今回のテーマです。

AutoHotKey

書店に行くとPythonという言語による業務自動化の書籍が並んでおります。

たしかにマルチプラットフォームを考えるならPythonは便利だと思います。

ただ、Windowsに限っていえばAutoHotKeyで自動化した方が簡単だと思います。

AutoHotKeyは私のような素人でも比較的簡単に業務の自動化を実現してくれます。

[CTRL]+[SHIFT]+j  の同時押しで次の要件を満たすようスクリプトを作ってみました。

・Wordやテキストエディタで選択した範囲を計算する

・複数の行数に式が並んでいる場合はその式を合計する

・三角関数や対数などの関数を使うことができる

 

AutoHotKeyのインストールについては詳しく書かれているサイトが多いのでそちらをご覧下さい。

インストールができましたら

次のスクリプトをメモ帳等にコピーして例えば AutoCalc.ahk 等という名前で保存してください。

^+j::AutoCalc() ;;選択範囲の計算

AutoCalc()  {

  Send,^c ;選択範囲をクリップボードへコピー

  clipwait ;コピーが終了するまで待つ

  str := clipboard

  StringReplace, str, str, `r`n`r`n, , All ;改行だけの行は計算しない

  StringReplace, str, str, `r`n, +, All ;改行コードが見つかれば"+"に置換

  StringReplace, str, str, +, +, All ;googleでも読めるようにプラスを半角から全角へ

  str := RegExReplace(str, "+$", "") ;計算エラーを回避するため最後の行を+で終わらせない

  run,https://www.wolframalpha.com/input?i=%str% ;Wolframで計算

}

AutoHotKeyインストール後、このファイルをクリックします。

簡単なスクリプトですが

Wordや他のソフトで[Ctrl]+[Shift]+jの3つ同時押しで選択した範囲の計算をWolfRamAlphaへ渡します。

もちろん選択範囲に関数が入っていても大丈夫です。

1+2*Sin(30)*log(25)を選択して[CTRL]+[SHIFT]+j  を押すと

一番上の行の 「^+j」 の部分を変更すればお好きなキーに設定できます。

^ はコントロール、+はシフトを表す修飾キーです。 

WorfRamAlpha

「計算知識エンジン」として数式の計算、単位変換、グラフの描画など適切な情報や解答を提供してくるサイトです。

iPhoneでは専用のアプリをダウンロードすることができます。

とても足し算だけに使うのはもったいないサイトなのですが、高機能、高精度ということもありWolfRamAlphaへ選択範囲の計算を渡すこととしました。