Excel便利化計画・入力したらしゃべらせよう

Excelでは、VBAが使えます。
今日は、VBAを使ってExcelがどのくらい便利になるのかというのを、VBAを操作したことのあまりない、Excelライトユーザー向けに、VBAを使うとExcelがこんなに便利になるんだよという紹介をします。

セルの読み上げ

入力作業とか計算式を作成する作業って、Excelを使用しているとよくすると思います。
そんなとき、入力した値をExcelが喋ってくれたら便利だと思いませんか?
実はVBAを使わなくてもそういう機能はExcelについています。
セルの読み上げという機能で、範囲選択して、AlT+Qのショートカットキーを押して、操作アシストに読み上げと入力すれば、Excelの範囲内に入力された値を読み上げてくれます。

入力後に、入力する原本を見ながらセルの読み上げ機能でしゃべってる内容を突き合わせてマーカーチェックするといいのではないでしょうか。
でも、入力した直後にすぐに入力間違いに気付くために、セルに入力して確定した直後に、どこのセルにどんな入力をしたかしゃべってくれるといいと思いませんか?

入力したものをしゃべる

セルに入力するものは、値と数式になると思います。
セルの読み上げは計算式だと求めた値しかしゃべらず、数式の内容はしゃべってくれません。入力した時は、入力した値をしゃべってほしいものです。そこで、入力したものが値であれば値を、数式を入力したら数式を、そして、セル内容を削除して空白になったら空白としゃべってくれるような仕組みを作りました。
それが次のものです。VBAで作っています。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim speakdat As String
    Dim adr As String
    speakdat = Target.Formula
    adr = ActiveCell.Address(False, False, xlA1)
    If speakdat = "" Then
      Application.Speech.Speak "セル" & adr & "は空白です"
    ElseIf Left(speakdat, 1) = "=" Then
      Application.Speech.Speak "セル" & adr & "の数式は" & speakdat & "で値は" & Target.Value & "です"
    Else
      Application.Speech.Speak "セル" & adr & "の値は" & speakdat & "です"
    End If
End Sub

これ、果たしてどうしたらいいでしょうか。このままでは使えません。
これをExcelに組み込む必要があります。とはいってもコピペするだけでOKです。
まず、入力確定したらしゃべらせたいシートの見出しを右クリックし、コードの表示をクリックします。

そのまま、右の画面に上のVBAをコピペします。

で、×で閉じます。
これでもう使える状態になりました。
セルA1にあああと入れて確定すると、セルA1の値はあああですとしゃべります。
セルA2に=1+20と入力して確定すると、セルA2の数式は=1+20で答えは11ですとしゃべります。
セルA1の値を削除すると、セルA1の値は空白ですとしゃべります。
こうしたら入力する時に音声でチェックしながら入力できるのであっちこっち見ながら入力することもないのかなと思います。

操作をやめる

確定した時にしゃべらせるのをやめるときは、またシート見出しを右クリックして、コードの表示をして、右に入力したものをすべて消して×ボタンで閉じればOKです。

まとめ

今回はVBAの解説はせずに、VBAを使えばこんな便利なことができるんだよという一例をお見せしました。
どうでしょう、VBAでは世界が広がることを感じていただければ幸いです。
今までVBAに難しそうだな、手に負えないなと思っていたイメージを持っていたとしても、この記事でVBAに興味を持ってもらえれば幸いです。

コメント

タイトルとURLをコピーしました