Excel VBA質問箱 IV

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

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


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

【32022】チェックボックスの使い方について Mi 05/12/4(日) 20:39 質問[未読]
【32023】Re:チェックボックスの使い方について かみちゃん 05/12/4(日) 20:47 回答[未読]
【32024】Re:チェックボックスの使い方について Mi 05/12/4(日) 21:39 質問[未読]
【32029】Re:チェックボックスの使い方について Kein 05/12/4(日) 23:30 回答[未読]
【32073】Re:チェックボックスの使い方について Mi 05/12/5(月) 20:28 お礼[未読]
【32077】Re:チェックボックスの使い方について Mi 05/12/5(月) 22:00 質問[未読]
【32078】Re:チェックボックスの使い方について かみちゃん 05/12/5(月) 22:26 回答[未読]
【32084】Re:チェックボックスの使い方について Mi 05/12/6(火) 7:10 お礼[未読]

【32022】チェックボックスの使い方について
質問  Mi  - 05/12/4(日) 20:39 -

引用なし
パスワード
   コントロールツールボックスのチェックボックスを使い

□のチェックの時に次の動作をさせているのですが
Private Sub CheckBox1_Click()
Columns("A:F").EntireColumn.Hidden = True
End Sub
□のチェックをはずした時に
Columns("A:F").EntireColumn.Hidden = False
の動作をさせたいのですが…

どのようなやり方で出来るのでしょうか。

要は一つのボタンかチェックボックスを使いOn/Offで
それぞれの動作をさせたいのですが。

【32023】Re:チェックボックスの使い方について
回答  かみちゃん  - 05/12/4(日) 20:47 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>要は一つのボタンかチェックボックスを使いOn/Offで
>それぞれの動作をさせたいのですが。

Clickイベントではなく、Changeイベントで判定すればいかがでしょうか・

Private Sub CheckBox1_Change()
 If CheckBox1.Value Then
  MsgBox "CheckBoxをOnにしました"
 Else
  MsgBox "CheckBoxをOffにしました"
 End If
End Sub

【32024】Re:チェックボックスの使い方について
質問  Mi  - 05/12/4(日) 21:39 -

引用なし
パスワード
   ▼かみちゃん さん:
早速ご解答ありがとうございました。
Changeイベントですね。
Private Sub CheckBox1_Change()
 If CheckBox1.Value Then
   Columns("A:D").EntireColumn.Hidden = True
 Else
   Columns("A:D").EntireColumn.Hidden = False
 End If
End Sub
で期待通りの動作が出来ました。
ありがとうございました。

シート数が12枚あるのですが、12枚ともに「この
Changeイベントを一回のクリックで反映させる方法は、
どのようにすると良いのでしょうか。
シート数は若干変化があり12枚を基準に1〜3枚程度の増減
が在ります。
宜しくお願いします。

【32029】Re:チェックボックスの使い方について
回答  Kein  - 05/12/4(日) 23:30 -

引用なし
パスワード
   全シートをループして処理すればよいでしょう。

Private Sub CheckBox1_Change()
 Dim Sh Ws Worksheet
 Dim Flg As Boolean

 Flg = CheckBox1.Value
 For Each Sh In Worksheets
   Sh.Columns("A:D").Hidden = Flg
 Next
End Sub

【32073】Re:チェックボックスの使い方について
お礼  Mi  - 05/12/5(月) 20:28 -

引用なし
パスワード
   ▼Kein さん:

ありがとうございました。
感激です…この短いコードで、何故?
っと思います。非表示になることは朧気ながら
推測できますし、またループして処理されている事も
分かりますが、「チェック」を外すと≪表示≫される
ことが理解できません。
でも、このように教えていただき大変うれしいです。

>全シートをループして処理すればよいでしょう。
>
>Private Sub CheckBox1_Change()
> Dim Sh Ws Worksheet
> Dim Flg As Boolean
>
> Flg = CheckBox1.Value
> For Each Sh In Worksheets
>   Sh.Columns("A:D").Hidden = Flg
> Next
>End Sub

【32077】Re:チェックボックスの使い方について
質問  Mi  - 05/12/5(月) 22:00 -

引用なし
パスワード
   ▼Kein さん:
すみません。
また質問が出てきました。もう少しシートの体裁を考えトグルを使おうか
…と思い、チャレンジ中です。
トグルボタンと組合すようなことは出来ますでしょうか。
貴殿から頂いたコードと小生のトグルボタンのコードの組み合わせを
試みたのですが、上手く行きません。トグルが働いてもHiddennが
Falseに成らないのです。
トグルのコードは次の通りです。
Private Sub ToggleButton1_Click()
  If ToggleButton1.Value = True Then
    ToggleButton1.Caption = "非表示"
  Else
    ToggleButton1.Caption = "表示"
  End If
End Sub

>>全シートをループして処理すればよいでしょう。
>>
>>Private Sub CheckBox1_Change()
>> Dim Sh Ws Worksheet
>> Dim Flg As Boolean
>>
>> Flg = CheckBox1.Value
>> For Each Sh In Worksheets
>>   Sh.Columns("A:D").Hidden = Flg
>> Next
>>End Sub

【32078】Re:チェックボックスの使い方について
回答  かみちゃん  - 05/12/5(月) 22:26 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>トグルボタンと組合すようなことは出来ますでしょうか。
>貴殿から頂いたコードと小生のトグルボタンのコードの組み合わせを
>試みたのですが、上手く行きません。トグルが働いてもHiddennが
>Falseに成らないのです。

こんな感じでしょうか。

Private Sub ToggleButton1_Click()
 Dim Sh As Worksheet
 Dim Flg As Boolean
 
 With ToggleButton1
  Flg = .Value
  If Flg Then
   .Caption = "表示"
  Else
   .Caption = "非表示"
  End If
 End With
 For Each Sh In Worksheets
  Sh.Columns("A:D").Hidden = Flg
 Next
End Sub

なお、
  If Flg Then
   .Caption = "表示"
  Else
   .Caption = "非表示"
  End If
の部分は、
  .Caption = Choose(Flg * -1 + 1, "非", "") & "表示"
と、一行にまとめることもできます。

【32084】Re:チェックボックスの使い方について
お礼  Mi  - 05/12/6(火) 7:10 -

引用なし
パスワード
   ▼かみちゃん さん:

いつも見させていただいています。
早速ご解答ありがとうございます。
今日は、会社で早速このコードを入れて
活用できるのが楽しみです。
ありがとうございました。
今後とも宜しくお願いします。

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