• ベストアンサー

エクセルでのテキストボックスの表示非表示について

 いつもお世話になっております。  エクセル2010を使用していますが、条件によってテキストボックスを表示か非表示にしたいと考えています。テキストボックスは、1つを想定しています。 【例】 (1)sheet1のセルA1が「該当」のとき  →sheet2にあるテキストボックスを表示 (2)sheet1のセルA1が「非該当」のとき  →sheet2にあるテキストボックスを非表示  以上、モジュールでの対応となると思いますが、やり方が分からず苦慮しています。ご教授をどうぞよろしくお願いいたします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

A1の値が変更されたときだけにA1の値をチェックでしたら(A1以外の変更やA1の値を変更せずに単にセルを移動しただけではA1の値をチェックしない) A1のシートモジュールに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> Range("A1").Address Then Exit Sub End If Application.EnableEvents = False If Sheets("Sheet1").Range("A1").Value = "該当" Then Sheets("Sheet2").Shapes.Range(Array("テキスト ボックス 1")).Visible = msoTrue ElseIf Sheets("Sheet1").Range("A1").Value = "非該当" Then Sheets("Sheet2").Shapes.Range(Array("テキスト ボックス 1")).Visible = msoFalse End If Application.EnableEvents = True End Sub

ankle
質問者

お礼

kkkkkmさん、ご回答ありがとうございます。 自分の考え通りの動きです。大変ありがとうございます。 これから早速、本番データにプログラミングしたいと思います。 今後とも、どうぞよろしくお願いいたします。

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

> A1セルから他のセルに動いたと同時に、テキストボックスを表示・非表示にできますでしょうか。 移動先のセルはTargetで取得できますが移動前は取得できませんので、セルの選択が変更されたとき毎回A1の値をチェックすることになります。 A1セルのシートのシートモジュールに Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False If Sheets("Sheet1").Range("A1").Value = "該当" Then Sheets("Sheet2").Shapes.Range(Array("テキスト ボックス 1")).Visible = msoTrue ElseIf Sheets("Sheet1").Range("A1").Value = "非該当" Then Sheets("Sheet2").Shapes.Range(Array("テキスト ボックス 1")).Visible = msoFalse End If Application.EnableEvents = True End Sub

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

テキストボックス の名前がテキスト ボックス 1だとした場合、以下で試してみてください。 Sub Test() If Sheets("Sheet1").Range("A1").Value = "該当" Then Sheets("Sheet2").Shapes.Range(Array("テキスト ボックス 1")).Visible = msoTrue ElseIf Sheets("Sheet1").Range("A1").Value = "非該当" Then Sheets("Sheet2").Shapes.Range(Array("テキスト ボックス 1")).Visible = msoFalse End If End Sub

ankle
質問者

補足

kkkkkmさん、ご回答ありがとうございます。 想定どおりの動きができました。 すみませんが、もう一点お聞きします。 A1セルから他のセルに動いたと同時に、テキストボックスを表示・非表示にできますでしょうか。 ご教授をどうぞよろしくお願いいたします。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.1

フォーム表示 ユーザーフォーム.Show フォーム非表示 ユーザーフォーム.Hide

ankle
質問者

お礼

masnoskeさん、ご回答ありがとうございます。 参考にさせていただきます。