最終行の下のセルに追記するoffsetでエラーが出る理由と対処法

VBA

スポンサーリンク


スポンサーリンク


スポンサーリンク

セルの最終行にデータを追加記述できるはずが

ユーザーフォームでTextBoxに入力した文字や数字をCommandButtonをクリックするたびに自動的にセルの最終行に転記できるようにするoffsetでエラーがでてしまったことありませんか?詳しい原因は私には分からないのですが、今まで使っていたプログラムを新しく作成しようと思ったエクセルにコピーしたのにエラー!こんな画面が出ました!

調べても分からずじまい。なぜなら他のエクセルで使えるのでコード自体に間違えはないはずなので。

図1はもともと使っていたエクセルで図2が新しく作ろうとしているエクセルですが見比べてみると表のセルの場所が違います。

図1

 

図2

 

見比べてみたら、ワークシートの方に原因?転記したい表の位置?

尚、VBAのコードはコピーしてセルの位置だけA1・B1に変えただけ。

Private Sub CommandButton1_Click()
Range(“A1”).End(xlDown).Offset(1, 0).Value = TextBox1.Value
Range(“B1”).End(xlDown).Offset(1, 0).Value = TextBox2.Value
End Sub

エラーの出ない図1のもともと使っているエクセルは、A列と1行目は使っていませんがエラーの出る図2は使用しています。

どうやらこれが原因だったようです。未だ理由分からず。

エラーになるのがイヤなので念のために、空白になるセルB1・C1・D1・E1・F1には白色の文字で数字の「0」を入れてあります。

こんな単純な方法ですが、新しいエクセルも図1のようにA列と1行目を見た目は使わないように表を移動しコードもB1・C1に変えると、何の問題もなくコードが動くようになりました。
スポンサーリンク

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?