ユーザーフォーム入門
第8回.セルの値をテキストボックスへ

Excelマクロのユーザーフォームの基礎、エクセルVBAの入門解説
最終更新日:2013-02-18

第8回.セルの値をテキストボックスへ


今回は、シートの実行ボタンを押下したら、


アクティブセルの行の値をフォームに表示してみましょう。

フォームのコードを表示しましょう。

右クリックします。

マクロ VBA サンプル画像

フォーム上で右クリックでも良いです。

また、

「表示」→「コード」・・・ショートカットはF7です。

では、ここで、フォームのInitializeイベントを追加します。

マクロ VBA サンプル画像

このUserFormをクリックすると、



Private Sub UserForm_Click()

End Sub

勝手にClickイベントが追加されます。


目的のInitializeイベントではないですね、

マクロ VBA サンプル画像

これで、Initializeイベントが追加されます。

Private Sub UserForm_Initialize()

End Sub

UserForm_Clickは不要なので、削除しておきましょう。


では、このUserForm_Initializeを以下のように変更して下さい。



Private Sub UserForm_Initialize()
  Dim i As Long
  With Worksheets("顧客マスタ")
    i = ActiveCell.Row
    Me.txtコード.Text = .Cells(i, 1)
    Me.txt漢字名称.Text = .Cells(i, 2)
    Me.txtカナ名称.Text = .Cells(i, 3)
  End With
End Sub

これで、アクティブセルの行の内容がフォームに表示されたはずです。


前回作成した、

Private Sub btnOk_Click()
  Dim lastRow As Long
  With Worksheets("顧客マスタ")
    lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    .Cells(lastRow, 1) = Me.txtコード.Text
    .Cells(lastRow, 2) = Me.txt漢字名称.Text
    .Cells(lastRow, 3) = Me.txtカナ名称.Text
  End With
  Unload Me
End Sub


この代入方向を逆にしただけですね。



ここまでが、ユーザーフォームの基本になります。

後は、いろいろなコントロールの使い方を覚えれば良いです。

しかし、ActiveCell.Rowをフォーム側で使うのは、どうもスマートではないです。

なんとなく、いやな感じがします。

こういう特殊なオブジェクトはなるべく使わないようにコーディングしたいところです。

次回以降は、他のコントロールに入る前に、

フォームモジュール、標準モジュール、シートモジュール、

それぞれの間でのデータの共有方法、データの受け渡し方法をやります。

書籍やネットでは、なかなか書いてない方法も含めて、かなり高度な使い方まで踏み込みます。

ここを覚えてしまえば、各コントロールの使い方なんて、大した問題ではありません。




同じテーマ「ユーザーフォーム入門」の記事

第5回.ラベルの追加
第6回.テキストボックス(TextBox)の追加
第7回.テキストボックス(TextBox)の値をセルへ
第8回.セルの値をテキストボックスへ
第9回.標準モジュールとフォーム間のデータ受け渡しⅠ
第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
第11回.コンボボックス(ComboBox)の追加
第12回.リストボックス(ListBox)の追加
第13回.チェックボックス(CheckBox)の追加
第14回.オプションボタン(OptionButton)の追加
第15回.ここまでの整理


新着記事NEW ・・・新着記事一覧を見る

SQL関数と演算子|SQL入門(12月1日)
データの取得:集約集計、並べ替え(DISTINKT,GROUP BY,ORDER BY)|SQL入門(11月30日)
データの取得:条件指定(SELECT,WHERE)|SQL入門(11月29日)
データの挿入:バルクインサート|SQL入門(11月28日)
データの挿入(INSERT)と全削除|SQL入門(11月26日)
テーブル名変更と列追加(ALTER TABLE)とテーブル自動作成|SQL入門(11月25日)
テーブルの作成/削除(CREATE TABLE,DROP TABLE)|SQL入門(11月24日)
データベースに接続/切断|SQL入門(11月23日)
SQLiteのインストール|SQL入門(11月22日)
SQL入門:VBAでデータベースを使う|エクセルの神髄(11月22日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • セルの値をテキストボックスへ

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
    掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ