ユーザーフォームのテキストボックスの内容をsheet1のセルに代入するには?

解決


ぽこぴん  2006-04-28 21:04:57  No: 131181

初めて質問させていただきます。

UserForm1にテキストボックス1〜22まで作成しました。

sheet1のボタン1を押すとUserForm1が開きます。

sheet1のA15〜G43の範囲での最終行を取得し

各テキストボックスの内容を各セルに代入したいのです。

TextBox1はsheet1のA15〜A43の値が入っている最終行を見つけそこへ代入。

TextBox2はB15〜B43、TextBox3はC15〜C43、TextBox19はF15〜F43、

TextBox15はG15〜G43  というように飛び飛びの列に代入ということで

超初心者ゆえ、頭が真っ白になってしまいました。

過去レスで似たような記事はあるのですが、応用できず苦しんでおります。。


VB梅  2006-04-28 21:41:20  No: 131182

ぽこぴん さんこんにちわ

色々なやり方があるとは思いますが、エクセルの場合
マクロの記録である程度作れます。

その代表として
'A15を選択
    Range("A15").Select
'Ctrl+↓で最終行に移動
    Selection.End(xlDown).Select
'現在アクティブなセルの値をテキストボックスに代入
    TextBox1.Text = ActiveCell.Value

のようにマクロの記録で2行は求めることは可能です。

また、途中空白が混ざっている場合は次の方法もできます
'A44を選択
    Range("A44").Select
'Ctrl+↑で最終行に移動
    Selection.End(xlUp).Select

難点は、カーソルが画面をちょこまか動く!

そのた、ループ等で最終行を求める方法もあります。

会社内で、配布するプログラムですと、ちょこまか動いたほうが
楽しいですね。


VB梅  2006-04-28 21:48:14  No: 131183

申し訳ない^^;

テキストボックスの内容をセルに代入でしたね^^;

先ほど述べたことを応用すればできるでしょう。


Blue  2006-04-28 22:19:23  No: 131184

> 難点は、カーソルが画面をちょこまか動く!
単にSelectしなければいいです。

' TextBox1はsheet1のA15〜A43の値が入っている最終行を見つけそこへ代入
With Worksheets("sheet1").Range("A14").End(xlDown)
    If .Row <= 43 Then
        .Value = Me.TextBox1.Text
    End If
End With


Blue  2006-04-28 22:26:54  No: 131185

間違っていました。
End(xlDown)はやりづらいので、End(xlUp)の方法。

' TextBox1はsheet1のA15〜A43の値が入っている最終行を見つけそこへ代入
With Worksheets("sheet1").Range("A44").End(xlUp)
    If .Row >= 15 Then
        .Value = Me.TextBox1.Text
    Else
        Worksheets("sheet1").Range("A15").Value = Me.TextBox1.Text
    End If
End With


Blue  2006-04-28 22:28:57  No: 131186

スマソ。。。orz
> With Worksheets("sheet1").Range("A44").End(xlUp)
With Worksheets("sheet1").Range("A44").End(xlUp).Offset(1)


Blue  2006-04-28 22:32:11  No: 131187

A44もA43です。
> With Worksheets("sheet1").Range("A44").End(xlUp).Offset(1)
With Worksheets("sheet1").Range("A43").End(xlUp).Offset(1)
A44からだと、A44にも入れちゃいますので。


ぽこぴん  2006-04-28 23:57:55  No: 131188

VB梅さん、Blueさん、ご親切にありがとうございました!

レス遅くなり申し訳ありません。

御二方のコード試させて頂きました。

無事解決致しました!ありがとうございました。

又何かあれば、宜しくお願い致します。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加