プロが教える店舗&オフィスのセキュリティ対策術

WindowsXP,EXCEL2000を使用しています。
VBA Userform で Fontでポイント数を指定しラベルやテキストボックスを作成します。
作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。
Fontのポイント数を確認しても正しく設定されています。
この現象が発生したオブジェクトは削除して作成し直してみても変えることが出来ません。何故でしょうか?
教えてください。

A 回答 (5件)

こんにちは。



>作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。

UserForm のテキストボックスから、どこに貼り付けるのですか?
それに、通常では、オブジェクトを貼り付けることは出来ないと思います。その中のテキストではないでしょうか?そのテキストは、フォントサイズ情報などは持っておりませんから、改めて、その貼り付けの対象に対して、フォントサイズを指定することになるはずです。

この回答への補足

>UserForm のテキストボックスから、どこに貼り付けるのですか?

同じUserForm内に貼り付けています。

補足日時:2007/03/09 13:29
    • good
    • 0

こんにちは


UserFormのフォントを変更しているのでは?
オブジェクト別にフォントを変更したらどうなります?

この回答への補足

>UserFormのフォントを変更しているのでは?
>オブジェクト別にフォントを変更したらどうなります?

フォントの変更はしていませんし、フォントを変更しても文字の大きさは間違った大きさのままです。

補足日時:2007/03/09 13:31
    • good
    • 0

#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

この回答への補足

コピーした時点で文字の大きさが違っている事もあれば、複数個コピーした後に、書式⇒上下の間隔⇒間隔を均等にする とした時に起こる事もあります。

補足日時:2007/03/09 13:36
    • good
    • 0

Frameを使用しているとか?


WindowsXP,EXCEL2000で確認したのですが
こちらでは再現できません。
・新しいパッチを当てる
・Bookが壊れている
位しか思いつきません。
お役に立てなくて御免なさい。

この回答への補足

>Bookが壊れている

文字の大きさが違っているだけで他は何の問題も無く正常に動作しますので、Bookが壊れているとは考えられません。
私のPCでは新規Bookでやっても必ず再現するのですが・・・

私の為に悩ませてゴメンナサイ!!

補足日時:2007/03/09 16:44
    • good
    • 0

#1です。



>VBA Userform で Fontでポイント数を指定しラベルやテキストボックスを作成します。
>作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。

私には、そういう経験はないですね。
設計の段階で、プロパティを一つ作って、それに右倣えさせるというようなことはしないからです。確かに、バグッぽい感じもしますが、あくまでも、設計の段階ですからね。それで、私は、問題にするということはしないです。

VBAでは、コントロール配列がありませんから、UserForm上で、オブジェクトをコピー&ペーストはしますが、あくまでも、デフォルトでコピーして、その後でプロパティを直していきます。面倒くさいといえば、それまでですが、私は、Access も、Excelも、VBも、そうして直すように覚えてしまったからかもしれません。

この回答への補足

何度もご回答くださって有難う御座います。
あなたの仰る様にバグかもしれませんね。と言うのは、事務所のPC(WindowsXP,EXCEL2000)でも同じ現象が発生しました。
また、友人のPC(WindowsXP,EXCEL2000)を借りてやっても同じです。
皆さんにそのような経験が無いと言う事は、私のやり方が何か基本的に間違っているのかなとマニュアルを読み直してみます。

補足日時:2007/03/10 04:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!