• 締切済み

EXCELのフォームのプロパティを自動設定する方法。

EXCELのフォームのプロパティを自動設定する方法。 いつもお世話になります。フォーム上の、例えばテキストボックスの位置をVBから変更する手段はありますでしょうか。開いているフォームのプロパティを設定するのは簡単ですが、そうではなくソースのデザイン自体を変更したいのです。 宜しくお願いします。

みんなの回答

  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

NO2の回答にて、 INPUTBOXを使って100値を入力させる、でも違いますか。

naniwayasu
質問者

補足

NO1様に補足したように、自動で設定したいのは元の値(デザインモードで設定する値)なのです。フォーム起動時に値を変更しても元の値は(当然ながら)変りません。 そもそも何故そんなことをする必要があるのか疑問に思われるでしょうが、話せば長くなる事情がありまして・・・ ありがとうございました。

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.3

仕様上無理です Initializeイベントで代わりに対応するほかありません

naniwayasu
質問者

お礼

ありがとうございました

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

実行時に位置を変更するのは下記のようにすれば可能です。 ※ご質問の回答になっていないかも知れませんが…   Sub 位置変更()   UserForm1.TextBox1.Left = 100   UserForm1.TextBox1.Top = 100   UserForm1.Show End Sub

naniwayasu
質問者

補足

ありがとうございます。折角の御回答ですが、そうではありません。最初の方にも補足致しましたが、ご理解頂けるでしょうか?

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.1

言っていることがよくわかりません もう少し整理して書けないのですか?

naniwayasu
質問者

補足

申し訳ありません。それでは具体的に書きますと ・フォーム上のテキストボックスの位置を設定する。すなわちフォームのデザインで、フォーム上のあるテキストボックスのプロパティを開き、位置(Top,Left)に値を入力する。 →と言う行為をVBEから行えないか、と言うことです。

関連するQ&A

  • Access(フォームのプロパティボックスの設定)

     Win XP Office 2003 Accessを勉強中です。  フォームをデザインビューに作成するときに、ラベルとテキストボックスが作成されます。  これらのプロパティで「すべて」のタブで一番上から「名前」、「表題」または「コントロールソース」という項目がありますが、 これらは最初に、「テキスト○○」「ラベル○○」と表示されています。  「表題」または「コントロールソース」の欄の内容を変更すると、その内容がフォームから見えますが、  「名前」の欄を変更してやらなければならない場合とかはあるのでしょうか。  色々なテキストを見ると、「この場合には、必ず「表題」または「コントロールソース」の内容と同じ内容にすること」 と書かれていますが、これはフォームの入力欄の種類(コンボボックス、トグルボタン、チェックボックス、リストボッ クス)によって、変更するかしないかが決定されるのでしょうか。  どのような場合に「名前」の欄の内容を表題とかに合わせて変更するとか、この場合には変更しなくても良いという決まり はあるのでしょうか。

  • フォームのプロパティを設定したい(Access2000)

    Access2000 XPです。 都道府県名が1レコードに1つずつ入っているテーブルと 各都道府県名のテーブルが47コあります。 新規でフォームを作成し(フォームのレコードソースはまだ未設定) コンボボックスを1つ置いて、値集合ソースに都道府県テーブルを設定し コンボボックスで選ばれた都道府県にフォームのレコードソースを変更しようと思っています。 Me.RecordSource=コンボボックス.text 単純にこれで良いと思うのですがエラー(入力された値は、フィールド又はコントロールで定義されている入力規則に従っていません)が出て全然更新されません。 どなたか分かる方、解決法をお願いします。。。

  • フォームのラベルのプロパティを自動で設定したい

    Access2013 vba です。 フォームの全てのラベル、テキストボックス、ボタン類をそれぞれの背景色や、テーマ、背景スタイルなどを設定したいのですが、どうやれば、全てのラベル、テキストボックス、ボタンなどを自動でループ処理で取得出来ますでしょうか。 よろしくお願いします。

  • TextBoxのhWndプロパティVBAでも使えませんか?

    環境 OS:Win2000ProSP4 Excel2000および2002 Excel2000で、テキストボックスのあるフォームを作成しました。 選択したファイルを読み込んでテキストボックスに表示する機能があり それに加えて、テキストボックス中をマウスでクリックした時、その場 所のカーソルの位置(そこの行数と行内で何カラム目か、の2つ)を取得し て同じフォーム上に表示させる機能をつけました(矢印ボタンでカーソ ルが移動しても、位置情報を更新するようにしています)。ただし、 ネットで調べたカーソル位置取得方法はVBAでなくてVBのものなので、 API(SendMessage)に渡すテキストボックスのhWndプロパティはなく、 困ってしまいました。窮余の一策として、普通のテキストボックスの 代わりに、リッチテキストコントロールを使用して、その中にある hWndプロパティを渡して、上の機能を実現していました。ところが、 Excelを2002にアップグレードしたら、リッチテキストコントロール が使えないことが判明しました(MSのサイトによると、セキュリティの ため、とのこと)。 Excel2002で、2000時代につくったフォームを開くと、リッチテキスト コントロールがすっぽり抜け落ちている状態です。こうなれば、普通の テキストボックスのhWndプロパティをAPIで取得できないか、というこ とを調べているところで困っています。あるいは、2002でも使える同じ ようなコントロールがあれば助かります。 長くなりましたが、ご存知の方、アドバイスをお願いします。

  • エクセルでフォーム中のテキスト値の保存方法

    今までは、エクセル(VBA)で、フォームを作成しテキストボックスを貼り付け入力された値の保存が必要な場合、シートに複写して保存しておき、フォームのイニシャライズの時に値を設定する。ってなことをしていました。ところが、ふと気づいたのですが、VBEでプロパティを直接設定(入力)した値は、シートに保存しておかなくとも、また、イニシャライズ時に値を設定しなくとも値が自動的に再設定されますよね? あれを、VBAから実現できないのでしょうか?必ずどこかに値の保存が自動的にされていると思うのですが・・・・? Me.TextBox1.Text = "test"ってVBA中で設定しても、値は保存されません。ところが、VBEでTextプロパティに直接入力した値は、次に、UserForm.showとした時に自動的に表示されます。なぜですか? どなたか?詳しい方いらっしゃいましたら保存する方法を教えてください。よろしくお願いいたします。

  • Access フォーム上でのテキストボックスとテーブルの連結

    フォームヴィザードからフォームを作成すると、 テキストボックスと指定したテーブルを連結させることができるのですが、デザインビューでそれをするときに、テキストボックスのプロパティのコントロールソースにテーブル名を入れれば連結できるのかと思いきや、うまく表示されません。どこを設定すればテキストボックスとテーブルを連結できるのでしょうか?

  • Designer.vbは直接コードをいじってはだめ?

    VB.netです。 新規でフォームを作成したときに Form1.Designer.vbが作成されますが そこに 'Windows フォーム デザイナを使用して変更できます。 'コード エディタを使って変更しないでください。 と書いてあります。 その下に Me.Name = "Form1" Me.Text = "Form1" などありますが、 これを変更したい場合は、ここをいじるのではなく、 Form1.vb(デザイン)のプロパティから設定しなさい。という意味なのでしょうか? 試しに Form1.vb(デザイン)のプロパティから Textを「フォーム1」にし、 Designer.vbを確認したら Me.Text = "フォーム1"と変わっていました。 しかし、Designer.vbのMe.Textを Me.Text = "ふぉーむ1"にして、 Form1.vb(デザイン)に移ると、 Form1.vb(デザイン)のプロパティも"ふぉーむ1"になりました。 「コード エディタを使って変更しないでください。」 と言う意味がわかりません。 よろしくお願いします。

  • Accessのフォームのプロパティについて。

    Accessのフォームのプロパティについて。 Accessのフォームで、テキストボックスのプロパティに以下のように指定してあります。  規定値 =TimeValue(Now())  入力規則 Between #7:00:00# And #10:00:00#  エラーメッセージ 受付は7時~10時です。 これで実際にやってみると、規定値のままだと入力規則だと実行されず、20時でも入力できてしまいます。 時刻を入力し直すと、ちゃんとエラーメッセージが出るのですが…。 どうしたらいいでしょうか? また、このテキストボックスは規定値のまま変更できないように  使用可能 いいえ  編集ロック=いいえ にしたいのですが、そうすると、フォームを開きっぱなしにした場合、時刻が更新されず、おかしなことになってしまいます。 どうしたらいいでしょうか? ご回答、よろしくお願い致します。

  • エクセル VBA フォーム設定について

    いつもお世話になっています。 エクセル VBAでユーザーフォームについて教えてください。 あるシートのデータをフォームに読み込み、違うシートにそのデータを書き込んでいます。元データの列順と書き込むシートの列順が違うので、VBAで設定して使っています。 書き込みはうまくいっています。ただ、書き込む際にフォーム上で少しデータを修正して書き込みを行うのですが、編集したいフォーム上のテキストボックスをクリックすると、データの最後のほうにカーソルが飛んでしまいます。 テキストボックスをできるだけ大きくして対応していますが、限度があります。テキストボックスをクリックした際にデータの最後(文字データで言うと文章の最後を表示してしまう)まで動かずに、クリックしても先頭のままになるようにするにはどうすればいいのでしょうか。 同じように、コンボボックスもクリックするとリストの最後から表示されます。リストの先頭から表示させる方法を教えてください。

  • エクセル2000の自動保存の設定

    エクセル2000で自動保存の設定のダイロボックスで内容を変更(たとえば自動保存を行う間隔等)を変更して、そのファイルをしめて、また新たにエクセルを開くと自動保存の設定のダイロボックスの内容が初期設定の状態にもどってしまいます。変更した内容を保持したいのですができないのでしょうか。よろしくお願いいたします。

専門家に質問してみよう