Home > Excel VBA Macro コントロール1 > FAQ

エディットボックスにセルの値を初期表示するには?

Question 51.6 Previous Next
詳細は こちら 500連発第2弾 いろいろ参考にさせていただいています。
No.359の「テキストボックスにセルの値を表示する」でテキストボックスが例に取られていますが、ダイアログシート内のエディットボックスに表示する場合は、どのようにすればよろしいのでしょうか。
よろしくお願い致します。
Answer  Excel 95仕様 Copyright (C) 2002.1.24 永井善王
500連発第2弾359番は昆野憲一氏の作品ですが、監修を担当した私に質問されましたので、お答えします。
500連発第2弾359番のワークシート 500連発第2弾359番のテキストボックス
359番のサンプルは、左図の 'Title' ワークシートのセルの値を、
右図のテキストボックスにセットして表示するマクロです。

G9セルの値をテキストボックス1に、
G10  〃       〃    2に、
G11  〃       〃    3に
セットしています。
マクロコードは下記のように書かれています。
Const SheetName = "Title"
Const Cell0 = "G9"
Const Cell1 = "G10"
Const Cell2 = "G11"
    frmSumple.txtInput0.Text = Sheets(SheetName).Range(Cell0)
    frmSumple.txtInput1.Text = Sheets(SheetName).Range(Cell1)
    frmSumple.txtInput2.Text = Sheets(SheetName).Range(Cell2)
    frmSumple.Show

マクロコードが、定義したオブジェト名で書かれているので、わかりやすくするために既定のオブジェクト名を使って書き直してみると、次のようになります。
    UserForm1.TextBox1.Text = Sheets("Title").Range("G9")
    UserForm1.TextBox2.Text = Sheets("Title").Range("G10")
    UserForm1.TextBox3.Text = Sheets("Title").Range("G11")
    UserForm1.Show
エディットボックスボックス エディットボックス・コントロール
このコントロールは Excel95のもので、機能はテキストボックスとホボ同様です。そして、Excel97以上で作成することも使用することも可能です。

ご質問が、ダイアログシートへのデザイン方法を尋ねられているのでしたら、すでに、 「
Excel95のダイアログシートをExcel97以上で使うには?」のページで解説していますので、参照してください。

マクロコードをエディットボックス用に書き直してみると、次のようになります。
'------------------------------------------------------------------------------
Sub エディットボックスにセルの値を初期表示する()
    DialogSheets(1).EditBoxes(1).Text = Sheets("Title").Range("G9")
    DialogSheets(1).EditBoxes(2).Text = Sheets("Title").Range("G10")
    DialogSheets(1).EditBoxes(3).Text = Sheets("Title").Range("G11")
    DialogSheets(1).Show
End Sub
'------------------------------------------------------------------------------
すぐ上に示したテキストボックス用のコードと比べてみると、
UserForm1DialogSheets(1) に、
TextBox1EditBoxes(1) に変っていることが、おわかりいただけるかと思います。
改造したサンプルブックのダウンロードは
ここをクリック (500-2-359.xls 35KB)
  ※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。

関連ページ
 
Macro コントロール エディットボックス の「エディットボックスでDBシートへ直接入力」、「別シート経由でDBシートへ」
 
エディットボックスでDBへ入力するには?
 
テキスト(エディット)ボックスのフォーカスを自動的に移動させるには?

 

Excel VBA Macro

Excel DownLoad