Excel2013>VBA>sendkeys動ず
Excel2013のVBAを使って自動更新をしようと思っています。
A B C
1 あ AA 0
2 い AB 1
3 う AC 0
4 え AA 1
5 お AA 0
上記のようにシート内にデータはあります。B列「AA」C列の「ゼロ」を更新してC列の値を「1」にしようとしたときに、ピボットテーブルを使ってみようと思いました。
ピボットテーブルにてB列の「AA」、C列の「ゼロ」を抽出表示しました。
A B C
1 あ AA 0
5 お AA 0
思っていたように1行目と5行目が抽出されました。
後はゼロを別の値(仮に「2」とします)に変更するときに、カーソルの移動がうまくいきませんでした。
Range("C1").End(xlDown).Select
Do
ActiveCell.Offset(0, 0) = "2"
ActiveCell.Offset(-1, 0).Select
If Len(ActiveCell.Offset(0, 0)) = 0 Then
Exit Do
End If
Loop
しかし、これではカーソルが「C4」に移動してしまいました。
ピボットテーブルでたたんでしまっても、カーソルは見えないセルに移動するようです。
そこで、下記のように変更しました。
Range("C1").End(xlDown).Select
Do
ActiveCell.Offset(0, 0) = "2"
Application.SendKeys "{UP}"
If Len(ActiveCell.Offset(0, 0)) = 0 Then
Exit Do
End If
Loop
これは、カーソルがまったく動かずに最初の地点にいたままでした。
そこで、次はTABで移動することにしました。
Range("C1").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Do
ActiveCell.Offset(0, 0) = "2"
Application.SendKeys "{tab}"
If Len(ActiveCell.Offset(0, 0)) = 0 Then
Exit Do
End If
Loop
これでもカーソルは動きませんでした。
どうにかしてsendkeysの動かし方、もしくは更新でもっとうまいやり方をご存知の方、是非教えてください。よろしくお願いいたします。
お礼
なるほど、大変よくわかりました。