dポイントプレゼントキャンペーン実施中!

エクセルの読み上げ機能で下記のマクロを作成しました。
マクロを使用しない場合は読み上げ1セルごとにカーソルが移動しますが、下記のマクロでは読み上げはしますが、カーソルが移動しません。
1セル読み上げごとにカーソルが移動するようにするにはどうしたらいいかを教えていただきたく投稿します。

Sub 登録番号読み上げ確認()
Dim i As Long
i = Cells(Rows.Count, "S").End(xlUp).Row
Range("S2:S" & i).Select
'Range("S2").Activate
Range("S2:S" & i).Speak
Range("M19").Select
End Sub

よろしくお願いいたします。

A 回答 (2件)

視覚と聴覚で認識させたいのだと理解しました。



該当のようなプロパティがないので
一つずつ行うしかないようです。(見つけっれなかっただけかも)

このような方法ではいかがでしょう。
全体を選択しているので、読み上げる範囲を示すため
初めに対象範囲に色付けや罫線などで囲み
読み上げセルを1つずつ移動するのはどうでしょう?
移動の度、1つずつ色を変えることも出来ます。
参考
Sub 登録番号読み上げ確認()
Dim i As Long
i = Cells(Rows.Count, "S").End(xlUp).Row
'Range("S2:S" & i).Select
'Range("S2").Activate
Range("S2:S" & i).Borders.LineStyle = True
Range("S2:S" & i).Interior.Color = RGB(204, 255, 255)
For i = 2 To Cells(Rows.Count, "S").End(xlUp).Row
Range("S" & i).Select
Range("S" & i).Speak
Next
Range("S2:S" & i).Borders.LineStyle = False
Range("S2:S" & i).Interior.Color = xlNone
Range("M19").Select
End Sub
forで回す変数は、i でも結果良いですが気になるようであれば
別に変数を設定してください。

あくまで代替え案です。
    • good
    • 1
この回答へのお礼

Qchan1962様、回答ありがとうございました。
罫線の行を使うと元の罫線が消えてしまったので、下記のように書き換えてみました。
もともと望んだ以上のものになりました、ありがとうございます。

Sub 登録番号読み上げ確認()
Dim i As Long
i = Cells(Rows.Count, "S").End(xlUp).Row
For i = 2 To Cells(Rows.Count, "S").End(xlUp).Row
Range("S" & i).Select
Range("S" & i).Interior.Color = RGB(204, 255, 255)
Range("S" & i).Speak
Range("S" & i).Interior.Color = xlNone
Next
Range("M19").Select
End Sub

お礼日時:2020/04/21 17:13

例えば、A1セルからA6セルまで1セルずつ読み上げさせるには


次のようなマクロになります。

Sub Example()
 Range("A1").Activate
 Range("A1").Speak
 Range("A2").Activate
 Range("A2").Speak
 Range("A3").Activate
 Range("A3").Speak
 Range("A4").Activate
 Range("A4").Speak
 Range("A5").Activate
 Range("A5").Speak
 Range("A6").Activate
 Range("A6").Speak
End Sub

これを「繰り返し」機能を使って再現しましょう。
繰り返す回数は範囲から求める。
それで希望する動作になると思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!