アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

当方、EXCEL2003を使用しております。
現在、Textboxに入力した値をエクセルのセルへ代入していく
フォームを作成しているのですが、このフォームに『元に戻す』
ボタンを追加したいと考えております。
つまり、ひとたびセルに代入した値を代入される前の状態に戻す
作業をフォーム上から行いたいのです。

正直、vbaの知識はまだあまり持ち合わせておらず、本やネットを
参考に組んでいるレベルです。
どうか、宜しくお願いいたします。

A 回答 (2件)

>この場合、ご説明頂いたような、("a1")のように特定のセルを記述する方法だとうまくいかないのです。


別に数が増えただけで、基本的に出来ますよ

'書き込みボタン
Private Sub CommandButton1_Click()
Select Case ComboBox1
Case "第1分冊_テキスト"
rtn0 = ComboBox1.Value
rtn1 = Range("E7").Value
rtn2 = Range("H7").Value
rtn3 = Range("I7").Value
rtn4 = Range("I7").Interior.Color
Range("H7") = Range("E7").Value
Range("I7").Interior.Color = vbYellow
Range("I7") = ""
Range("E7") = TextBox1.Value
TextBox1 = ""
Case "第1分冊_添削問題"
rtn0 = ComboBox1.Value
rtn1 = Range("E8").Value
rtn2 = Range("H8").Value
rtn3 = Range("I8").Value
rtn4 = Range("I8").Interior.Color
Range("H8") = Range("E8").Value
Range("I8").Interior.Color = vbYellow
Range("I8") = ""
Range("E8") = TextBox1.Value
TextBox1 = ""
End Select
End Sub

'戻すボタン
Private Sub CommandButton2_Click()
Select Case rtn0
Case "第1分冊_テキスト"
Range("E7").Value = rtn1
Range("H7").Value = rtn2
Range("I7").Value = rtn3
Range("I7").Interior.Color = rtn4
Case "第1分冊_添削問題"
Range("E8").Value = rtn1
Range("H8").Value = rtn2
Range("I8").Value = rtn3
Range("I8").Interior.Color = rtn4
End Select
End Sub

同じ処理なので、後半端折りました
ComboBoxの値も変数へ取り込み
書き込みの時と同じように、その変数でselect caseで判断すればよいのです
ここに気づけば、最初の回答と同じ処理でいけますよね
    • good
    • 0
この回答へのお礼

なるほど、大変勉強になりました。
なんとか、思っていた通りに処理することが出来るようになりました。

どうもありがとうございました!

お礼日時:2009/02/08 21:14

詳細が無いので要点だけ


textboxからセルへ書き出しは
range("a1").value=userform1.textbox1.value
のようにしてるとして
セルへ書き出す前に、セルの値を他のセルや変数に書き出す必要があります
例として
1 他のセルに記憶しておく(シート2のA1)
worksheets("sheet2").range("a1").value=userform1.textbox1.value
range("a1").value=userform1.textbox1.value

2 変数に記憶しておく(変数=abc)
abc=userform1.textbox1.value
range("a1").value=userform1.textbox1.value

戻す場合は
1 セルに記憶したものを戻す
range("a1").value=worksheets("sheet2").range("a1").value

2 変数に記憶したものを戻す
range("a1").value=abc

基本的にはこのような方法になるかと思います
注意点は、2の変数は宣言セクションで宣言しなければいけません

分からない単語等は、自分で調べてね
    • good
    • 2
この回答へのお礼

分かりやすい、ご回答ありがとうございます。
大変参考になりました。

私の説明不足で大変恐縮なのですが、実はフォーム内の
コンボボックスで選んだ項目に応じて、入力が行われるセルが
変わる仕組みになっているのです。

この場合、ご説明頂いたような、("a1")のように特定のセルを記述する方法だとうまくいかないのです。

『以下抜粋』
Private Sub CommandButton1_Click()
  Select Case ComboBox1
    Case "第1分冊_テキスト"
      rtn1 = ("E7")
      rtn2 = ("H7")
      Range("H7") = Range("E7")
      Range("I7").Interior.Color = vbYellow
      ActiveCell.Value = ""
      Range("E7") = TextBox1
      TextBox1 = ""
    Case "第1分冊_添削問題"
      Range("H8") = Range("E8")
      Range("I8").Interior.Color = vbYellow
      Range("I8") = ""
      Range("E8") = TextBox1
      TextBox1 = ""
    Case "第1分冊_答案"
      Range("H9") = Range("E9")
      Range("I9").Interior.Color = vbYellow
      Range("E9") = TextBox1
      TextBox1 = ""
    Case "第1分冊_模範"
      Range("H10") = Range("E10")
      Range("I10").Interior.Color = vbYellow
      Range("E10") = TextBox1
      TextBox1 = ""
  End Select
End Sub

お礼日時:2009/02/08 13:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A