- ベストアンサー
エクセル2007VBAで連続データ(文字列)の入力
- エクセル2007のVBAでマクロを作成して同じ列に次々と文字を入力する方法について教えてください。
- A列に連続的に文字列を入力するVBAマクロを作成する際に、A1セルの内容が消去されてしまう問題が発生しています。どこに問題があるのか教えてください。
- 質問者は、エクセル2007のVBAを使用してA列に連続的に文字列を入力するためのマクロを作成しようとしています。しかし、A1セルが消去されてしまう問題に直面しています。解決方法についてアドバイスをいただけますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
InputBtn_Clickの中で,Posの値を1に固定していて増やしていないからです。 標準モジュール sub main() userform1.show end sub ユーザーフォームのコードモジュール Private sub InputBtn_Click() dim Pos as range with worksheets("Sheet1") set pos = .cells(.rows.count, "A").end(xlup).offset(1) pos.value = me.textbox1.text pos.offset(1).activate end with me.textbox1 = "" me.textbox1.setfocus end sub priavte sub CommandButton2_Click() me.hide end sub #参考 ご質問で掲示されている図のようにいきなり「A1セルから」データを記入していきたいのでしたら,その旨細工を追加してください。 一般に先頭セルには「列のタイトル」を記入し,A2以下に実データを記入していくモノではありませんか。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
シート上で同じところを指定して書き込んでいるのだろうから、質問のようになるのは当たり前。 内科医入力後のシートのでーた最終行の次行に書き込めば仕舞い。 最終行を思いつかないようでは、VBAの経験が足りない。 他のよくある問題で、まず初めに必要になる(例シートのデータ全行を処理する。For Nextどで繰り返すとき 終わりの行がどこかを知らないとやりにくい。1行下に進めて「空白か」と聞いている初心者もいるが) A列なら Sub etst021() r = Worksheets("Sheet1").Range("A65536").End(xlUp).Row MsgBox r End Sub これに+1したところが書き込むべき行。 ーー 質問文も、長々と書いているが 各時点で、「現存するデータの一番下行の次の行を求めるには?」ですむべき問題。
お礼
早速のご回答ありがとうございます。 keithin様のご回答大変参考になります。 助かりました。