Dim i
i = 0
Dim kekka
Do Until kekka = vbCancel

この辺が意味不明です。
i=0
だと定数みたいになってる。
kekkaも値自体が入ってないのに、do until kekka =2と書かれても。
(vbcancelは組込定数なので、2という数値と同じ)

型は指定した方がいいと思います。