- 締切済み
EXCEL VBA UserFormで困っています。
WindowsXP,EXCEL2000を使用しています。 VBA Userform で Fontでポイント数を指定しラベルやテキストボックスを作成します。 作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。 Fontのポイント数を確認しても正しく設定されています。 この現象が発生したオブジェクトは削除して作成し直してみても変えることが出来ません。何故でしょうか? 教えてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
#1です。 >VBA Userform で Fontでポイント数を指定しラベルやテキストボックスを作成します。 >作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。 私には、そういう経験はないですね。 設計の段階で、プロパティを一つ作って、それに右倣えさせるというようなことはしないからです。確かに、バグッぽい感じもしますが、あくまでも、設計の段階ですからね。それで、私は、問題にするということはしないです。 VBAでは、コントロール配列がありませんから、UserForm上で、オブジェクトをコピー&ペーストはしますが、あくまでも、デフォルトでコピーして、その後でプロパティを直していきます。面倒くさいといえば、それまでですが、私は、Access も、Excelも、VBも、そうして直すように覚えてしまったからかもしれません。
Frameを使用しているとか? WindowsXP,EXCEL2000で確認したのですが こちらでは再現できません。 ・新しいパッチを当てる ・Bookが壊れている 位しか思いつきません。 お役に立てなくて御免なさい。
補足
>Bookが壊れている 文字の大きさが違っているだけで他は何の問題も無く正常に動作しますので、Bookが壊れているとは考えられません。 私のPCでは新規Bookでやっても必ず再現するのですが・・・ 私の為に悩ませてゴメンナサイ!!
- imogasi
- ベストアンサー率27% (4737/17069)
#2のご回答を中心にチェックしなおしてみてください。 私もやってみました。 UserForm1を出し、ラベルとテキストボックスを貼り付けました。右クリックして、各々プロパティウインドウで、 Fontでフォントの種類、サイズ、ForeColorで文字色を設定しました。コピーして、ユーザーフォームに貼り付けました。 コピー前に行った、デザインモード時の、コピー元のラベルやテキストボックスの変更(設定)は、コピー先のそれらに引き継がれています。 もちろん下記のような実行時のプロパティ変更は論外(関係ない)ですが。 下記のような設定を、FormのInitializeイベントでやる方法もあります。 Private Sub UserForm_Click() UserForm1.Label1.ForeColor = vbRed ' UserForm1.Label1.Font.Size = 25 ' UserForm1.Label1.Font = "HGゴシックE" UserForm1.Label1.Font = "HG行書体" '--- UserForm1.TextBox1.Text = "今晩は" UserForm1.TextBox1.ForeColor = vbBlue UserForm1.TextBox1.Font.Size = 25 ' UserForm1.textbox1.Font = "HGゴシックE" UserForm1.TextBox1.Font = "HG行書体" UserForm1.TextBox2.Text = "ごきげんよう" End Sub
補足
コピーした時点で文字の大きさが違っている事もあれば、複数個コピーした後に、書式⇒上下の間隔⇒間隔を均等にする とした時に起こる事もあります。
こんにちは UserFormのフォントを変更しているのでは? オブジェクト別にフォントを変更したらどうなります?
補足
>UserFormのフォントを変更しているのでは? >オブジェクト別にフォントを変更したらどうなります? フォントの変更はしていませんし、フォントを変更しても文字の大きさは間違った大きさのままです。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。 UserForm のテキストボックスから、どこに貼り付けるのですか? それに、通常では、オブジェクトを貼り付けることは出来ないと思います。その中のテキストではないでしょうか?そのテキストは、フォントサイズ情報などは持っておりませんから、改めて、その貼り付けの対象に対して、フォントサイズを指定することになるはずです。
補足
>UserForm のテキストボックスから、どこに貼り付けるのですか? 同じUserForm内に貼り付けています。
補足
何度もご回答くださって有難う御座います。 あなたの仰る様にバグかもしれませんね。と言うのは、事務所のPC(WindowsXP,EXCEL2000)でも同じ現象が発生しました。 また、友人のPC(WindowsXP,EXCEL2000)を借りてやっても同じです。 皆さんにそのような経験が無いと言う事は、私のやり方が何か基本的に間違っているのかなとマニュアルを読み直してみます。