Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3502 / 13644 ツリー ←次へ | 前へ→

【61792】TextBoxのデータを削除すると、ワークシートのデータも削除される Chikako 09/6/4(木) 14:49 質問[未読]
【61793】Re:TextBoxのデータを削除すると、ワークシ... つん 09/6/4(木) 15:11 回答[未読]
【61802】Re:TextBoxのデータを削除すると、ワークシ... Chikako 09/6/5(金) 13:49 お礼[未読]
【61795】Re:TextBoxのデータを削除すると、ワークシ... もも 09/6/4(木) 20:12 発言[未読]
【61803】Re:TextBoxのデータを削除すると、ワークシ... Chikako 09/6/5(金) 13:54 お礼[未読]

【61792】TextBoxのデータを削除すると、ワークシ...
質問  Chikako  - 09/6/4(木) 14:49 -

引用なし
パスワード
   複数のTextBoxに表示したワークシートのデータのうち、ひとつのTextBoxの内容のみCommandButtonを使って削除したいのです。下記記述ではワークシートのデータも同時に削除されれしまいます。基本が理解できていないためと思います。どこから手をつけたらいいのかわからなくなりました。よろしくお願いいたします。VBA素人です。本を見ながら記述しました。

Option Explicit

Dim curRow As Long
Dim StartRow As Long
Dim LastRow As Long

Private Sub ScrollBar1_Change()
curRow = UserForm1.ScrollBar1.Value
Call SmpControlSource
End Sub

'スクロールバーを使用してレコードを移動する
Private Sub UserForm_Initialize()
curRow = 1
StartRow = 1
LastRow = Worksheets("標識").Range("A1").CurrentRegion.Rows.Count
'スクロールバーの最大値、最小値を設定
With UserForm1.ScrollBar1
.Max = LastRow
.Min = StartRow
End With
Call SmpControlSource
End Sub

'ワークシートの値をそのままフォームに表示する
Sub SmpControlSource()
With UserForm1
.TextBox1.ControlSource = "A" & curRow
.TextBox2.ControlSource = "B" & curRow

End With

End Sub

'コマンドボタン1をクリックするとテキストボックス3にCのレコードが表示される
Private Sub CommandButton1_Click()
UserForm1.TextBox3.ControlSource = "C" & curRow
UserForm1.TextBox3.Font.Size = 24

End Sub

'コマンドボタン2をクリックし、テキストボックス3の内容を削除する
Private Sub CommandButton2_Click()
TextBox3 = vbNullString

End Sub

【61793】Re:TextBoxのデータを削除すると、ワーク...
回答  つん  - 09/6/4(木) 15:11 -

引用なし
パスワード
   ▼Chikako さん
こんにちは^^

ControlSource プロパティ のヘルプより

「コントロールの Value プロパティを変更すると、その変更はリンクされているセルまたはフィールドに自動的に反映されます。同様にセルまたはフィールドの値が変更されると、コントロールの Value プロパティに自動的に反映されます」

ということで、テキストボックスとセルはリンクしちゃってるので、

TextBox3 = vbNullString

この時点で、シートのデータも削除されるのは当然かと思われまする。

「Valueプロパティ」で設定するんじゃだめなん?

【61795】Re:TextBoxのデータを削除すると、ワーク...
発言  もも  - 09/6/4(木) 20:12 -

引用なし
パスワード
   ▼Chikako さん:
こんばんは

つんさんが仰っている事の補足程度ですが

>Private Sub CommandButton1_Click()

>UserForm1.TextBox3.ControlSource = "C" & curRow
ここを

UserForm1.TextBox3.Value = Worksheets("標識").Range("C" & curRow).Value

と、Valueで設定してあげれば、とりあえず大丈夫だと思いますよ。

【61802】Re:TextBoxのデータを削除すると、ワーク...
お礼  Chikako  - 09/6/5(金) 13:49 -

引用なし
パスワード
   つん さん ありがとうございます。

>「コントロールの Value プロパティを変更すると、その変更はリンクされているセルまたはフィールドに自動的に反映されます。同様にセルまたはフィールドの値が変更されると、コントロールの Value プロパティに自動的に反映されます」
>
>ということで、テキストボックスとセルはリンクしちゃってるので、

削除される理由が解りました。ありがとうございました。

【61803】Re:TextBoxのデータを削除すると、ワーク...
お礼  Chikako  - 09/6/5(金) 13:54 -

引用なし
パスワード
   ▼もも さん
ありがとうございます。

>UserForm1.TextBox3.Value = Worksheets("標識").Range("C" & curRow).Value
>と、Valueで設定してあげれば、とりあえず大丈夫だと思いますよ。

これで問題にしていたことは解決できました。
ありがとうございました。

回答を拝見するためツリーをクリックするたびにエラーになり、返事が遅れすみませんでした。

3502 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free