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

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

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


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


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

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


右クリックします。

Excelサンプル画像

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

また、

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

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

Excelサンプル画像

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

Private Sub UserForm_Click()

End Sub

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


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

Excelサンプル画像

これで、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をフォーム側で使うのは、どうもスマートではないです。

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

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

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

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

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

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

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





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

ラベルの追加
テキストボックス(TextBox)の追加
テキストボックス(TextBox)の値をセルへ
セルの値をテキストボックスへ
標準モジュールとフォーム間のデータ受け渡しT
標準モジュールとフォーム間のデータ受け渡しU
コンボボックス(ComboBox)の追加
リストボックス(ListBox)の追加
チェックボックス(CheckBox)の追加
オプションボタン(OptionButton)の追加
ここまでの整理

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

Excelワークシート関数一覧(2010以降)|VBAリファレンス(4月22日)
クラスとCallByNameとポリモーフィズム(多態性)|VBA技術解説(4月6日)
VBAでのタイマー処理(SetTimer,OnTime)|VBA技術解説(4月3日)
クラスとイベントとマルチプロセス並列処理|VBA技術解説(4月2日)
エクセルの日付と時刻のまとめ|エクセル関数超技(3月6日)
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)

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

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



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

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


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






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

    本文下部へ