追記: 更に改善版です!
フォーマットに指定した変数に対応する場所に書き込むことでセルの位置、つまり座標を意識しないでよくなるクラスを書きました。
抽象度が高まり、よいと存じます。
今回は、これを改善いたしましたので、それを記録いたします♪
ポイント
- 利用者が誤ってテンプレートの変数を削除した場合でもエラーとさせたくない。そのために、CellValues に設定していたキーに対応するテンプレートになくても無視するようにした。
- 書き込み対象ワークシートに書き込んだ後、書き込み先範囲を移動するメソッドを追加した。これにより、ループを使って同じフォーマットの複数の帳票を作成できる。
- WriteToVariableAndOffset → オフセット移動
- WriteToVariableAndDown → 下に移動
- プロパティにしなくとも問題ないものはプロパティから削除し、スリム化した。
- 省略しても可読性が維持できると思った部分は短く書き、行数を短くした。
次の点は、あえて対応いたしませんでした。
- フォーマットの変数に対応する値がコードに設定されていない場合は、テンプレートの変数がそのまま書き込み先シートに書き込まれてしまう。
- このとき、特にエラーは発生しない。
- コード側でのフォーマット変数定義漏れに気がつくチャンスが増えるメリットがある。
- また、コード側で値が取得できないことがあると予めわかっている場合は、空文字で初期化しておけば良い。
- よって、特に対処しない。
