-PR-
解決
済み

テキストボックスを消すVBA

  • すぐに回答を!
  • 質問No.87860
  • 閲覧数453
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 59% (116/195)

ボタンを押すことでテキストボックスが消えるようにしたいのですが、
ボタンは、2つ 「ONとOFF」 1~3のSheetにあるテキストボックスをSheet5に配置した「ONとOFF」のボタンで操作するようにしたいのですがよろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

テキストボックスは図形を使っていましたよね。コントロールツールボックスのテキストボックスなら簡単に操作できるのですが・・・

まず、各シートのテキストボックスに共通の文字を持った名前をつけて下さい。
Sheet1ではmyText1_1、myText1_2・・・、Sheet2ではmyText2_1、myText2_2・・・の要領です。
下の例では名前の前6文字をVBAで判定に使っています。
やっていることはテキストボックスの座標を操作しているだけです。目で見える範囲や印刷等の範囲の外に出るように増分zoubunを適当に設定して下さい。(図形を見た目だけ消すのはたいへんです)

最初に動かすときは、「ボタンON」のプロパティのvisibleをfalseにしておきます。

「ボタンOFF」を押すと図形が消え、「ボタンOFF」が見えなくなり「ボタンON」が現れます。
「ボタンON」を押すと図形が現れ、「ボタンON」が消え「ボタンOFF」が現れます。

これは標準モジュールに貼り付けます。
Public Sub ON_OFF(FLG As Boolean)
Dim sht As Integer 'シートカウンタ
Dim shp As Shape '図形
Const zoubun = 500 '位置を変える大きさ
Dim fugo As Integer '符号
fugo = 1: If FLG = True Then fugo = -1

Application.ScreenUpdating = False
For sht = 1 To 3
Worksheets("Sheet" & sht).Activate
For Each shp In Worksheets("Sheet" & sht).Shapes
If Left(shp.Name, 6) = "myText" Then
shp.Top = shp.Top + zoubun * fugo
shp.Left = shp.Left + zoubun * fugo
End If
Next
Next
Worksheets("Sheet5").Activate
Application.ScreenUpdating = True
End Sub

シート5に貼り付けます
Private Sub cmdOff_Click()
cmdOff.Visible = False: cmdON.Visible = True: ON_OFF False
End Sub

Private Sub cmdON_Click()
cmdOff.Visible = True: cmdON.Visible = False: ON_OFF True
End Sub
お礼コメント
rurucom

お礼率 59% (116/195)

nishi6さん!いつもありがとうございます。

今回は、一発成功!しました。VBAが少しづつ分かってきているような気がします。nishi6さんには、いつもお世話になりっぱなしですみません。本当にありがとうございます。
投稿日時 - 2001-06-11 21:38:31
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 33% (196/589)

以下のようにします。 ■コマンドボタンONの処理 Private Sub CommandButtonON_Click() Sheet1.TextBox1.Visible = True Sheet2.TextBox1.Visible = True Sheet3.TextBox1.Visible = True End Sub ■コマンドボタンOFFの処理 Pri ...続きを読む
以下のようにします。

■コマンドボタンONの処理
Private Sub CommandButtonON_Click()
Sheet1.TextBox1.Visible = True
Sheet2.TextBox1.Visible = True
Sheet3.TextBox1.Visible = True
End Sub

■コマンドボタンOFFの処理
Private Sub CommandButtonOFF_Click()
Sheet1.TextBox1.Visible = False
Sheet2.TextBox1.Visible = False
Sheet3.TextBox1.Visible = False
End Sub
お礼コメント
rurucom

お礼率 59% (116/195)

gould09さん!ありがとうございました。
ちょっとエラーが出てしまいましたが、意味は理解でき、何とかできました。
ありがとうございました。
投稿日時 - 2001-06-11 21:34:27
  • 回答No.2
レベル8

ベストアンサー率 32% (8/25)

もしも、画面上で見えたり見えなくするというのではなく、本当に消したい場合は以下のようにしみてください。 (多分質問の意図は前述の方のやり方が回答になっていると思いましたが) --ONの処理-- Sub ボタン1_Click()  Sheets("Sheet1").Select  ActiveSheet.OLEObjects.Add(ClassType:=& ...続きを読む
もしも、画面上で見えたり見えなくするというのではなく、本当に消したい場合は以下のようにしみてください。
(多分質問の意図は前述の方のやり方が回答になっていると思いましたが)

--ONの処理--
Sub ボタン1_Click()
 Sheets("Sheet1").Select
 ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1",        Link:=False,・・・・・その他設定)
 (シート2・シート3も同様に)
End Sub


--OFFの処理--
Sub ボタン2_Click()
 Sheets("Sheet1").Shapes("TextBox1").Delete
 Sheets("Sheet2").Shapes("TextBox1").Delete
 Sheets("Sheet3").Shapes("TextBox1").Delete
End Sub
補足コメント
rurucom

お礼率 59% (116/195)

batu1さん!ありがとうございます。
早速やってみましたが、
ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1",Link:=False,・・・・・その他設定)
がエラーになってしまいました。

OFFはうまくいました。
投稿日時 - 2001-06-11 21:29:55
お礼コメント
rurucom

お礼率 59% (116/195)

すみません!お礼のほうに書くべきでした。
とりあえず、うまくいきそうなのでがんばってみます。
投稿日時 - 2001-06-11 21:35:35
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ