• 締切済み

EXCEL VBA UserFormで困っています。

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

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#1です。 >VBA Userform で Fontでポイント数を指定しラベルやテキストボックスを作成します。 >作成したオブジェクトをCopyして貼り付けると文字の大きさが変わってしまうことがあります。 私には、そういう経験はないですね。 設計の段階で、プロパティを一つ作って、それに右倣えさせるというようなことはしないからです。確かに、バグッぽい感じもしますが、あくまでも、設計の段階ですからね。それで、私は、問題にするということはしないです。 VBAでは、コントロール配列がありませんから、UserForm上で、オブジェクトをコピー&ペーストはしますが、あくまでも、デフォルトでコピーして、その後でプロパティを直していきます。面倒くさいといえば、それまでですが、私は、Access も、Excelも、VBも、そうして直すように覚えてしまったからかもしれません。

FutottaOjisan
質問者

補足

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

noname#31387
noname#31387
回答No.4

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

FutottaOjisan
質問者

補足

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

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#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

FutottaOjisan
質問者

補足

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

noname#31387
noname#31387
回答No.2

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

FutottaOjisan
質問者

補足

>UserFormのフォントを変更しているのでは? >オブジェクト別にフォントを変更したらどうなります? フォントの変更はしていませんし、フォントを変更しても文字の大きさは間違った大きさのままです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

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

FutottaOjisan
質問者

補足

>UserForm のテキストボックスから、どこに貼り付けるのですか? 同じUserForm内に貼り付けています。

関連するQ&A

  • EXCEL VBA UserFormで困っています。

    EXCEL VBA UserFormで困っています。 VBAプログラミングで以下のような現象が起こります。 開発環境  WinXP , EXCEL2003 ブックを起動するとメニューが表示され、そこからボタンを押すとuserform1が表示されるというプログラムなんですが、そのボタンを押してuserform1を起動しようとすると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。 UserForm1.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 過去に似た質問を見つけ、そのアドバイスを元に以下を試してみました。 http://okwave.jp/qa/q2001805.html ・エラーの発生行の特定 userform1.showの前に、userform1.label.visible=falseのように、表示、非表示を切り替える命令を出しており、どうやらその表示命令の行でつまづいている事がわかりました。 表示命令を全て消去し実行したところ、現在までは問題なく起動できています。 ・on timeメソッドで時間差をつける ラベルやボタンの表示、非表示命令行をまとめて、 Application.OnTime Now + TimeValue("00:00:01"), "ラベルボタン表示設定" userform1.show といった形で時間差をつけてみました。 結果として、userform1自体は立ち上がるようになったのですが、時間差で実行される"ラベルボタン表示設定"の実行時に「オートメーションエラーです。起動されたオブジェクトはクライアントから切断されました。」と出てくるようになってしまいました。 ラベルはまだ良いのですが、コマンドボタンの表示、非表示は、誤操作を防ぐ手段として非常に重要です。なんとかエラーを出さずにコード通りに起動する方法はありませんでしょうか。

  • EXCEL VBA UserFormで困っています。

    現在VBAで業務用のシステムを開発しているのですが以下のような現象が起こります。 開発環境  WinXP , EXCEL2000 現象(1) 起動すると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。 UserForm.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 現象(2) WinXP , EXCEL2000で正常に動作するものを WinXP , EXCEL2003で起動すると『パス名が無効です』のメッセージが出て起動しません。 (1)と同様にUserForm.Showのステップで一旦止めてステップモードで続行すると正常に動作します。 2点とも UserForm.Show のステップに問題があると思うのですが、自分なりに半月かけて調査しても何の解決の糸口も見つからずに困り果てています。 もし、ご存知でしたらご教示願えないでしょうか?

  • エクセル VBA BeforeDoubleClick

    エクセル VBA 初心者です エクセルで セルをダブルクリック(複数のセル)しUserFORMが出るところまではできましたが UserFormでの登録時のオブジェクトがわかりません;;  sheetでtarget.range("A1:G1")して A1~G1でUserFormをよびだしています UserFormで登録時 target.offset(1,0)=textbox1.text みたいな感じで作ったらオブジェクトが見つかりませんが でます userformでのtarget指定はできるでしょうか?

  • エクセルのuserformに自動入力したい

    こんにちわ! 最近userformを使い始めたのですが、エクセル上にあるデータをuserformを開いた際に自動で読み込むことは可能でしょうか? 例えば、 userformを開いた時点でラベルや、テキストボックスをクリックをせずとも自動でエクセル上のA1に入力されているデータをcaptionに読みこみたいです。 アドバイスの程よろしくお願いします。

  • エクセルVAB UserForm間の移動ぢょ里

    エクセルのVBAにて UserForm1内のテキストボック1の値をコマンドボタン1 クリック時に同時に開いているUserForm2のテキストボックス2に 入力するようにしたいのですがどの様に書き込めば宜しいでしょうか?

  • Excel VBAのフォーム_ラベルの縦位置

    Excel VBAのフォームを作成しているのですが、 ラベルのキャプションの縦位置が指定できません。 テキストボックスを入力不可の状態にすると、文字が薄いグレーになってしまい、 ラベルにすると表示される文字が上によってしまいます。 ラベルの文字列を下付き文字にするか、テキストボックスのもじれるを黒くする方法を教えてください。 よろしくお願い致します。

  • Excel2000 Userformについて

    こんばんは、よろしくお願いします。 Userformでラベルを縦に10個配置したとします。この配置したラベルは、左揃え等にする事はできますが、例えば、等間隔に1発に揃える(ワードのような機能)事は無いでしょうか? また、ワード等だと、Ctrlを押しながら矢印キーで微調整ができましたが、Userformでは微調整等をキーボードから出来ないでしょうか? 多くのラベルやチェックボックスを配置したいのですが、マウスで目を凝らして配置していくのは、結構大変なので、綺麗に等間隔にできる操作方法がありましたらご教授をお願いします。 ※Excel2000を使用しています。

  • EXCEL VBA UserForm のご質問

    よろしくお願いします ユーザーフォームに決定ボタンで、テキストボックスを任意の数追加しました。 追加されたテキストボックスにD1.D2.D3.D4・・・と名前をつけ、それぞれに 1.2.3と数値を記入し、 登録ボタンをクリックした後ワークシートkeyplanの 指定したセルD30~G30へ代入させようとしたところ、 「変数が定義されていません」となってしまいます。 Nameの付け方が悪いのでしょうか。転機の仕方が悪いのでしょうか。 マクロを勉強し始めて日が浅いので、対処の方法がわかりません。 ご回答よろしくお願いします。 Option Explicit Private Sub UserForm_Initialize() worksheets("keyplan").Select End Sub Private Sub 決定_Click() Dim txt As Variant Dim i As Integer 'テキストボックスを配置 i = nyuryokubox() For i = 1 To i Set txt = Me.Controls.Add("Forms.Textbox.1", , True) With txt .Width = 20 .Height = 18 .Top = 300 .Left = 1 + (.Width + 80) * (i + 1) .BorderColor = &H666666 .BorderStyle = fmBorderStyleSingle .Font.Size = 15 .Name = "D" & i End With Next End Sub Private Sub 登録_Click() With worksheets("keyplan").Select .Range("D30").Value = D1.text .Range("E30").Value = D2.text .Range("F30").Value = D3.text .Range("G30").Value = D4.text End With End Sub 変数 i にはテキストボックス(nyuryokubox)に直接数値を入れるようにしています

  • ExcelとPowerPointをVBAで連携させる方法

    おけましておめでとうございます。 本年もよろしくお願いします。 で、本題ですが、 (Win95でExcel2000とPowerPoint2000を使用) EXCELのデータベースの表を順々にPowerPointのテキストボックスへ コピーして印刷するためにVBAを作成したいと思ってます。 (印刷形式がPowerPointのため) ここには作成できるんですが、両者のVBAをどのように 連携させるかわかりません。 よろしくご教授ください。 また、PowerPointのVBAでマクロの記録を使わず、オブジェクト名 (("Text Box 1")とか)を知る方法もあわせてよろしくご教授ください。

  • VBAについて

    VBAに関する質問です。MsgBoxにテキストボックスを埋め込むことは可能ですか? もし可能であればやり方を教えてください。 UserFormでテキストボックスを埋め込むやり方はわかるのですが、 その際インフォメーションアイコンを表示することができません。 もしそのやり方をご存知であれば教えてください。 よろしくお願いします。

専門家に質問してみよう