VBAでセルに文字列を入力する方法 – 長年使われてきたワークシートを使う場合 –
VBAで業務の自動化を頼まれる場合、長年使われてきたワークシートにデータを入力することがあります。この時、問題になるのがデータを入力するセルに、どんな書式が設定されているか分からない事です。事前にワークシートの書式を見ればいいのでは?と私も考えて、VBAを組んだ経験があるのですが、意図しない動作をすることが多々ありました。そこで文字列をシートに入力する時は、下記のサンプルプログラムのようにしています。
Cells(1, 1).ClearContents
cells(1,1).ClearFormats
Cells(1, 1).NumberFormat = “@”
Cells(1, 1).Value = “Hello World”
まず、セルの内容と書式をクリアし、セルの書式を文字列に設定、最後に文字列を入れます。しかしこの方法だと、罫線も消えるので、必要であれば、Bordersオブジェクトを用いて、罫線を再設定します。下記のコードは、セルに二重線を設定します。
Cells(1,1).Borders.LineStyle = xlDouble
この方法のもう一つの利点は、もし使っている人がセルを間違って操作してしまっても、リカバリーが効くことです。