一般の家庭にまで広まっているExcel
そのExcelを利用して様々な処理をマクロでする事が出来ます。
大体の作業は新しいマクロのコピーを行う事で
おおよそのあたりがつきます。
そんなExcelマクロ、VBAにて落とし穴が潜んでいます
今日はひとつ紹介。
フォーカスを当てるために以下の処理を書く。
oSheet.Cells(1, 1).Select
しかし"A1"にフォーカスが当たって無いように見える。
よくみると上の方で"A1"にフォーカスが当たっていて
Enterを押すと"A2"にフォーカスが移動する。
なぜ、このような状態になっているかというと
フォーカスは"A1"に当たっているのですが
スクロールバーが動いてしまっていたために
開いたシートには"A1"が無いからです。
この現象を解決する為の対処方法は
ActiveWindow.ScrollRow = 1
と書けばよいのです。
設定をしてあげる事でスクロールバーが上まで行きフォーカスを設定した場所が見えるようになります。
フォーカス設定したのにその項目が見えなくなってしまう可能性がある場合には
ActiveWindow.ScrollRow の設定も忘れないようにしましょう。