- ベストアンサー
フォームのラベルの書式変更が不十分?
またもやお世話になります。 ユーザーフォームに、ラベルのプロパティのBorderStyleを -fmBorderStyleSingle- にして枠を表示する形式で並べ、 表に見えるような表現をしています。 枠に対する左詰、中央揃え、右詰は、プロパティの TextAlign で可能なのですが、上下の中央揃えがどうしても見つかりません。 どうすれば、文字列を上下の枠の中央に持ってこれるのでしょうか? プロパティで無理ならば、関数や、マクロでも構いませんので、よろしくご教授ください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Excelのユーザーフォームとしての回答です。 残念ながら、上下の中央揃えはできないはずです。 >関数やマクロでも構いませんので・・・ 関数やマクロでは余計無理でしょう。 だいぶ前に、『APIを使って、できる』という書き物を見た記憶がありますが・・・ 現行をあまり変えずに、『ラベルの使用』を条件に考えてみました。 ●ラベルの内容(文字数)が実行してもデザイン時のまま変わらない場合、 今あるラベルのBorderStyleは全て 0-fmBorderStyleNone にします。 今の 1-fmBorderStyleSyngle の機能の代わりに、 縦線用ラベル BorderStyle := 1-fmBorderStyleSyngle、Width := 1 横線用ラベル BorderStyle := 1-fmBorderStyleSyngle、Height := 1 を使って、罫線を書きます。縦線用ラベル、横線用ラベルをコピーして作ります。 LeftやTopを直接指定したほうが速いかもしれません。 ツール→オプション→全般タブでグリッドの表示をチェックして グリッドの単位を幅、高さとも『2』くらいにしておけば配置しやすいでしょう。 ●ラベルの内容(文字数)が実行時に変わる場合、 最大幅、最大の高さのラベルで上のようにして罫線枠を作成します。 実行時に、コードで、変更したラベルのLeftとTopを書き換えて 最適位置に配置することになります。 今は、無頓着になって、適当に配置することが多くなりました。ご参考に。
お礼
なるほど、そうだったんですね。 横が出来るので、縦も出来るだろうと思い、入手可能な範囲の本を、探しまくって判らなかったのも、仕方のないことでしたか。 では、まずは教えていただいた方法で、工夫してみます。 勉強になりました、ありがとうございます。 不明な点が出たら、また別件で質問させていただきます。