• ベストアンサー

VBAプログラムについて

VBAプログラムを本を見ながら作成していますが、はっきりいって素人です。 本に載っていないこととなるとちんぷんかんぷんで、いくつかあるプロシージャのどのプロシージャ内に記入したら良いのか分からないし、新しいプロシージャをどこに記入して良いのか分かりません。 例えば、 ----------------------------------------------------------- Private Sub CommandButton1_Click() ActiveCell.Value = TextBox1.Value ActiveCell.Offset(0, 1).Value = TextBox2.Value ActiveCell.Offset(0, 2).Value = TextBox3.Value ActiveCell.Offset(0, 3).Value = TextBox4.Value ActiveCell.Offset(0, 4).Value = TextBox5.Value ActiveCell.Offset(0, 5).Value = TextBox6.Value ActiveCell.Offset(0, 6).Value = TextBox7.Value ActiveCell.Offset(0, 7).Value = TextBox8.Value ActiveCell.Offset(0, 8).Value = TextBox9.Value ActiveCell.Offset(1, 0).Activate End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub Label1_Click() End Sub Private Sub UserForm_Click() End Sub Private Sub UserForm_Initialize() Range("A2").Activate End Sub ---------------------------------------------------------- テキスト入力フォームをいくつか作っており、コマンドボタン1とコマンドボタン2で入力ボタンと閉じるボタンにしています。   このプログラムでは、入力ボタンをクリックすることでデータが入力されて、入力された列のすぐ次の列の最初のセルがアクティブな状態になります。 (1)データ入力済みのエクセルシートにおいて、アクティブな状態にしたセルや列を削除したい場合、どこにどのように書けば良いのでしょうか? (2)データ入力が一度に終わらない時、途中の任意の列から入力を始めたい場合はどこにどのように書けば良いのでしょうか? 本に書かれていることは丸写しできますが、ちょっとでも違うと壁にぶつかってしまいます。 独学で勉強する時に良いと思われる方法はどんな方法なのでしょうか? おこがましいですが素人も分かりやすい説明をして頂けると助かります。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • winuser
  • ベストアンサー率30% (35/115)
回答No.1

最近やっていないので忘れました・・・リンク先を見てください。 (1)アクティブセルの文字を削除(これでいいのかな・・・)  ActiveCell.Value = "" (2)データ入力が一度に終わらない時、途中の任意の列から入力を始めたい場合はどこにどのように書けば良いのでしょうか? 【ヒント】入力ボタンにプログラムを入れること(これだけでは完成しません) //↓アクティブセルが空白か?  if ActiveCell.Value = "" then //↓空白の場合、アクティブセルにテキストボックスの内容を表示させる  ActiveCell.Value = TextBox●.Value //↓空白でない場合 else end if ●はテキストボックス番号です ◆プログラム説明(間違ってたらすみません・・・) --------------- //↓ボタン1をクリックした場合  Private Sub CommandButton1_Click() //↓アクティブセルにテキストボックスの内容を表示させる  ActiveCell.Value = TextBox1.Value //↓現在のセルから右へ1つ移動したセルにTextBox2の内容を表示させる  ActiveCell.Offset(0, 1).Value = TextBox2.Value //↓現在のセルから右へ2つ移動したセルにTextBox3の内容を表示させる  ActiveCell.Offset(0, 2).Value = TextBox3.Value //↓現在のセルから右へ3つ移動したセルにTextBox4の内容を表示させる  ActiveCell.Offset(0, 3).Value = TextBox4.Value ・ ・ ・ //↓現在のセルから下へ1つ移動させアクティブにする  ActiveCell.Offset(1, 0).Activate  End Sub --------------- //↓ボタン2をクリックした場合  Private Sub CommandButton2_Click() //↓現在開いているフォームを閉じる  Unload Me  End Sub --------------- //↓フォームの初期化  Private Sub UserForm_Initialize() //↓セルA2をアクティブにする  Range("A2").Activate  End Sub

参考URL:
http://excelvba.pc-users.net/fol2/2_5.html
bb1234
質問者

お礼

お世話になり、ありがとうございました。