もくじ

taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
TextBoxのデータをsheetに転記する方法
【TextBoxのデータをsheetに転記する方法】
先日、ExcelVBAの勉強を始めたばかりの同僚に聞かれて説明したのですが、まだ本ブログで紹介をしてい無かったので今回ブログに書こうと思いました。
ExcelVBAで初めてユーザーフォームでデータを追加する時にぶつかる一つの壁になると思いますが説明を見れば割と理解しやすいコードになっていますのでこの記事が少しでも役に立てれば光栄です。
用意するユーザーフォーム
TextBoxのデータをシートに転記する方法という事でユーザーフォームを使用します。今回は下記のようなフォームを用意します。
ユーザーフォームについてはこちら
データを追加するコード
今回のデータを追加するコードですが、今回はコマンドボタンで登録をするという方法を取ります。
今回使用するコードはこちらになります。
Private Sub CommandButton1_Click() With Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp) .Offset(1, 0) = TextBox1.Value .Offset(1, 1) = TextBox2.Value End With End Sub
これは本当に最低限データを追加するためだけのコードです。※エラーチェックなどの機能はありません。
コードの解説
ではコードの解説を始めます。
今回の流れは
- Withを使う
- データがある最終行を取得する
- データを追加する
この3ステップを踏んでいきます。
1.Withを使う
まずコードの簡略化をするために【Withステートメント】を使用します。
With
Withステートメントは簡単に説明すると宣言しておいて繰り返すことを簡略することです。
鈴木.歩く
鈴木.走る
鈴木.ジャンプ
という命令を
鈴木は【With】
歩く
走る
ジャンプ
した。【End With】
のようにするイメージになります。
Withステートメントについてはこちら
2.データがある最終行を取得する
データを追加するにはデータの最終行を取得する必要があります、そのコードがこちら。
With Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp)
これは【sheet1のA列を下から見ていってデータがある所】で止まるという意味のコードです。
そしてWithでこのコードを宣言しておくことでWithの範囲内ではこのコードは今後不要になります。
データの最終行の取得についてはこちら
3.データを追加する
上記のままでは最終行を取得しても、そこにデータを追加するのでは最終行でずっとデータを上書きをし続けるだけになってしまいます。データがある行の下に追加していかないといけないのです。
データの最終行の下を取得するのがOffsetプロパティです。
Withで最終行取得まで省略しているので下記のコードだけでOKです。
.Offset(1, 0) = TextBox1.Value .Offset(1, 1) = TextBox2.Value End With
このように記述することによって【sheet1のA列を下から見ていってデータがある所の一個下【Offset(1, 0)】のデータはTextBox1のデータ】というコードが完成します。
赤文字がWithのコードです。
まとめ
今回のデータの追加のコードはデータを追加するコードの中でよく紹介されているコードです、ExcelVBAを始めたばかりの人は必ずこのコードを通っていくと思います。そして長い期間使用するコードでもありますので是非覚えてExcelVBAをさらに勉強していってください。
※なるべく解りやすく書いたつもりですが解りにくい所がありましたら指摘があれば訂正します。
下にサンプルファイルを用意してありますのでご利用ください。
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
ファイルやコードの利用、WEBサイトの利用について
サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。Sponsored Link
WordPressでブログを始めるなら
WordPress簡単インストール&安心の安定性


この記事が気に入ったら
いいねしよう!
最新記事をお届けします。
Private Sub CommandButton1_Click()
With Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = TextBox1.Value
.Offset(1, 1) = TextBox2.Value
End With
End Sub 右側に記録していくにはどうしたらいいですか。
コメントありがとうございます。
ご返信が遅くなってしまい申し訳ございません。
右側に項目を増やすという認識でよろしいでしょうか?
そうであれば
Private Sub CommandButton1_Click()
With Worksheets(“Sheet1”).Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = TextBox1.Value
.Offset(1, 1) = TextBox2.Value
.Offset(1, 2) = TextBox3.Value’項目追加分
End With
End Sub
のようにOffsetの右側の数字を増やしていくとセルの横方向に指定を変更することが出来ます!