• ベストアンサー

フォームのラベルの書式変更が不十分?

 またもやお世話になります。  ユーザーフォームに、ラベルのプロパティのBorderStyleを -fmBorderStyleSingle- にして枠を表示する形式で並べ、 表に見えるような表現をしています。  枠に対する左詰、中央揃え、右詰は、プロパティの TextAlign で可能なのですが、上下の中央揃えがどうしても見つかりません。 どうすれば、文字列を上下の枠の中央に持ってこれるのでしょうか?  プロパティで無理ならば、関数や、マクロでも構いませんので、よろしくご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

Excelのユーザーフォームとしての回答です。 残念ながら、上下の中央揃えはできないはずです。 >関数やマクロでも構いませんので・・・ 関数やマクロでは余計無理でしょう。 だいぶ前に、『APIを使って、できる』という書き物を見た記憶がありますが・・・ 現行をあまり変えずに、『ラベルの使用』を条件に考えてみました。 ●ラベルの内容(文字数)が実行してもデザイン時のまま変わらない場合、  今あるラベルのBorderStyleは全て 0-fmBorderStyleNone にします。  今の 1-fmBorderStyleSyngle の機能の代わりに、   縦線用ラベル BorderStyle := 1-fmBorderStyleSyngle、Width := 1   横線用ラベル BorderStyle := 1-fmBorderStyleSyngle、Height := 1  を使って、罫線を書きます。縦線用ラベル、横線用ラベルをコピーして作ります。  LeftやTopを直接指定したほうが速いかもしれません。  ツール→オプション→全般タブでグリッドの表示をチェックして  グリッドの単位を幅、高さとも『2』くらいにしておけば配置しやすいでしょう。 ●ラベルの内容(文字数)が実行時に変わる場合、  最大幅、最大の高さのラベルで上のようにして罫線枠を作成します。  実行時に、コードで、変更したラベルのLeftとTopを書き換えて  最適位置に配置することになります。 今は、無頓着になって、適当に配置することが多くなりました。ご参考に。

TK1961
質問者

お礼

 なるほど、そうだったんですね。 横が出来るので、縦も出来るだろうと思い、入手可能な範囲の本を、探しまくって判らなかったのも、仕方のないことでしたか。  では、まずは教えていただいた方法で、工夫してみます。 勉強になりました、ありがとうございます。  不明な点が出たら、また別件で質問させていただきます。

関連するQ&A

専門家に質問してみよう