[[20171123045629]] 『ユーザーフォームのラベルについて』(amaryllis.watch) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザーフォームのラベルについて』(amaryllis.watch)

ユーザーフォームにオプションボタンやラベルにコマンドボタンなどを設置しています。

そのラベルをユーザーフォームの幅くらいまでにしています。
付けたオプションボタン(If文で)によって、ラベルに表示する内容を変えるマクロにしてあります。

つまり、
If OptionButton1.Value Then
Call 別のマクロ(TEXT1, TEXT2, TEXT3)
UserForm1.Label1.Caption = TEXT1 & vbCrLf & TEXT2 & vbCrLf & TEXT3

このマクロにして、「Call 別のマクロ(TEXT1, TEXT2, TEXT3)」で値の受け渡しを使って、
Sub 別のマクロ(TEXT1, TEXT2, TEXT3)

TEXT1 = "文章・・・(2行〜4行くらい)"
TEXT2 = "↓"
TEXT3 = "テキスト(1行)"

End Sub

このマクロでラベルに表示させるようにしました。
※ ラベルを3つ配置してやれば、簡単ですが、TEXT1に代入する文章は、2行、3行、4行がいくつもあるので、行数によってTEXT2とタブって表示されてしまうため、「vbCrLf」で改行させています。

そこで、問題ですが、
(1) TEXT2とTEXT3のテキストをラベルに表示させる際、真ん中に寄せたい。
(2) TEXT3のテキストを赤色にしてラベルに表示させたい。

どうやればできますでしょうか?

(2)の事ですが、試しに下記のマクロにしてみました。
TEXT3.ForeColor = RGB(255, 0, 0)
にしてみたら、「オブジェクトが必要です」と、エラーが出ました。

インターネットで調べてみても、セルの色のことばかりが出てきて、解決の糸口を見つけれませんでした。

因みにSub 別のマクロ(TEXT1, TEXT2, TEXT3)〜のようなマクロは20くらいあるので、1つのマクロだと、ダラダラとマクロが長くなってしまうので、別にしようとしました。

< 使用 アプリ:Excel 2010、使用 OS:Windows7 >


試す気はありませんが、こんな感じでできませんか。

1)ラベルは3つにわける
2)Text1用は、サイズを自動に設定する
3)Text2用、Text3用は、Text1用の位置にあわせて移動させる

(マナ) 2017/11/23(木) 08:53


3)のことですが、Text1用の位置にあわせて移動させるには、どのようなマクロにしたら良いですか?
(amaryllis.watch) 2017/11/23(木) 13:12

上端をTopで、高さをHeightで、取得や設定できます。
Text1用ラベルの直下にくるように、Text2用ラベルのTopを再設定してください。

(マナ) 2017/11/23(木) 14:36


ワークシートと同様の見た目を追求するなら、
発想を逆転して、ワークシートをユーザーフォーム代わりに
してはどうでしょうか。
(γ) 2017/11/23(木) 17:11

ラベルを3つ分けて、TEXT2とTEXT3をTopで、下げることで実現出来ました。

本当にありがとうございました。
(amaryllis.watch) 2017/11/23(木) 18:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.