VB.NET + VB-Report 環境での話。
VB-Report というのは Excel で帳票設計できるアドバンスソフトウェア製の帳票作成ツールで、例えば、Excel シートのあるセルに **Hoge とタグを書いておけば、VB.NET のプログラム内で、
Cell("**Hoge", 0, 0).Value = "ほげ"
と書けば、**Hoge と書かれたセルの位置に「ほげ」という文字が印刷される。
Cell("**Hoge", 0, 1).Value = "ほげほげ"
と書けば、その1行下に「ほげほげ」という文字が印刷される。
Excel の「セルの書式設定」で設定した属性もちゃんと効く。
例えば、「文字の制御」の「縮小して全体を表示する」にチェックを入れておけば、そのセルに長い文字が入れば、Excel でそうであるように、帳票も文字が縮小される。
・・・が、例えば文字を打つ位置が固定ではない場合がある。
合計表示をする部分だけ太字にしたいんだけど、明細行数は決まってないから、どのセルが合計表示セルになるかわからない・・・みたいなケース。
こういう時は、プログラム内で属性をセットしてやることもできる。
Cell("**Goukei", 0, i).Attr.FontStyle = VBReport8.FontStyle.Bold
これで、そのセルの文字は Bold(太字)になる。
あと、良く使うのは上にも書いた縮小表示か。
Cell("**Hoge", 0, 1).Attr.ShrinkToFit = True
こんな感じ。
セルの結合もできる。
Pos(4, 10, 8, 12).Attr.MergeCells = True
上の例は、 4列目の 10行目から 8列目の 12行目までを結合しろということ。**Hoge のように名前を付けたセルを基準にせず、直接 X,Y の座標でセルを指定した場合は、Cell オブジェクトではなく Pos オブジェクトを使う。セル名を使って、
Cell("D10", "H12").Attr.MergeCells = True
のようにもできるけど。
セルの連結をして、更に「縮小して全体を表示する」にしたい場合は、
Pos(4, 10, 8, 12).Attr.MergeCells = TruePos(4, 10, 8, 12).Attr.ShrinkToFit = True
のように続けて書けばいい。
ちなみに、インターネット上で VB-Report についてググると、バージョン 3 の頃の情報がやたらヒットする。
その頃が VB-Report の全盛期だったのだろうか???(^^;
バージョン 3 と 8 ではプロパティ名等が全然違うので、ググった結果が全然役に立たないことも多い。
「書いてあるとおりのプロパティが設定できんやん!!?」という時は、大概バージョン違いの情報を見ているので注意ね。