Excel VBA質問箱 IV

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

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


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

【27295】2種類の処理を1つのボタンに登録することはできますか? アイアム 05/8/4(木) 15:17 質問[未読]
【27296】Re:2種類の処理を1つのボタンに登録するこ... ぱくぱく 05/8/4(木) 15:36 回答[未読]
【27297】Re:2種類の処理を1つのボタンに登録するこ... Jaka 05/8/4(木) 15:36 回答[未読]
【27298】Re:2種類の処理を1つのボタンに登録するこ... ぱくぱく 05/8/4(木) 15:40 発言[未読]
【27306】解決です。ありがとうございました。 アイアム 05/8/4(木) 17:08 お礼[未読]
【27318】Re:2種類の処理を1つのボタンに登録するこ... アイアム 05/8/5(金) 11:37 質問[未読]
【27325】Re:2種類の処理を1つのボタンに登録するこ... アイアム 05/8/5(金) 13:00 質問[未読]
【27327】Re:2種類の処理を1つのボタンに登録するこ... でれすけ 05/8/5(金) 13:28 回答[未読]
【27331】解決です。ありがとうございました。 アイアム 05/8/5(金) 15:21 お礼[未読]

【27295】2種類の処理を1つのボタンに登録すること...
質問  アイアム  - 05/8/4(木) 15:17 -

引用なし
パスワード
   次のような2つの処理をVBAで書いたのですが、、、
○パターン1
Sub openCol()
  Columns("C:C").Select
  Selection.EntireColumn.Hidden = False
  Range("A1").Select
End Sub

○パターン2
Sub closeCol()
  Columns("C:C").Select
  Selection.EntireColumn.Hidden = True
  Range("A1").Select
End Sub

C列が非表示状態のときに「ボタン」をクリックすると、パターン1の動作が走り、C列が表示状態になる
C列が表示状態のときに「ボタン」をクリックすると、パターン2の動作が走り、C列が非表示状態になる

パターン1とパターン2を1つのボタンに登録することはできますでしょうか。
出来るとしたら、どのようにすればいいのでしょうか。。。
教えてください。

【27296】Re:2種類の処理を1つのボタンに登録する...
回答  ぱくぱく  - 05/8/4(木) 15:36 -

引用なし
パスワード
   アイアムさん、こんな感じ?

Sub HideAndShow()
 Dim cel As Range
 
 Set cel = ActiveSheet.Range("C:C")
 
 With cel.EntireColumn
  If .Hidden = True Then
   .Hidden = False
  Else
   .Hidden = True
  End If
 End With
End Sub

【27297】Re:2種類の処理を1つのボタンに登録する...
回答  Jaka  - 05/8/4(木) 15:36 -

引用なし
パスワード
   こんにちは。
こういう事でしょうか?

Sub open_close_Col()
  With Columns(3)
    .Hidden = Not .Hidden
  End With
end sub

【27298】Re:2種類の処理を1つのボタンに登録する...
発言  ぱくぱく  - 05/8/4(木) 15:40 -

引用なし
パスワード
   ▼Jaka さん:
>こんにちは。
>こういう事でしょうか?
>
>Sub open_close_Col()
>  With Columns(3)
>    .Hidden = Not .Hidden
>  End With
>end sub

なるほど、、、こう書けばすっきりですね。1行か、、、

【27306】解決です。ありがとうございました。
お礼  アイアム  - 05/8/4(木) 17:08 -

引用なし
パスワード
   ぱくぱく様、Jaka様、回答ありがとうございます。

まさか、こんな数行の処理で終わるとは思いもしませんでした。
ありがとうございました。

【27318】Re:2種類の処理を1つのボタンに登録する...
質問  アイアム  - 05/8/5(金) 11:37 -

引用なし
パスワード
   同じ列の表示/非表示切り替えではなく、違う列の場合だと、どうなるのでしょうか?

○パターン1
Sub openCol()
  Columns("F").Select
  Selection.EntireColumn.Hidden = False
  Columns("E").Select
  Selection.EntireColumn.Hidden = True
End Sub

○パターン2
Sub closeCol()
  Columns("E").Select
  Selection.EntireColumn.Hidden = False
  Columns("F").Select
  Selection.EntireColumn.Hidden = True
End Sub

【27325】Re:2種類の処理を1つのボタンに登録する...
質問  アイアム  - 05/8/5(金) 13:00 -

引用なし
パスワード
   自力でやってみました。
もっとスッキリしたりできますか?
よいアドバイスありましたら、お願いします。

○ひとつのボタンで切り替え
Sub openCol_closeCol()

  If Columns("F").Hidden = True Then
    Columns("E").Hidden = True
    
    With Columns("F")
      .Hidden = Not .Hidden
    End With
    
  ElseIf Columns("E").Hidden = True Then
    Columns("F").Hidden = True
    
    With Columns("E")
      .Hidden = Not .Hidden
    End With
    
  End If
    
End Sub

【27327】Re:2種類の処理を1つのボタンに登録する...
回答  でれすけ  - 05/8/5(金) 13:28 -

引用なし
パスワード
   こんにちは。

E列とF列のプロパティを入れ替えればどうでしょう

Dim swptmp As Boolean
swptmp = Columns("E").Hidden
Columns("E").Hidden = Columns("F").Hidden
Columns("F").Hidden = swptmp

【27331】解決です。ありがとうございました。
お礼  アイアム  - 05/8/5(金) 15:21 -

引用なし
パスワード
   でれすけ様、回答ありがとうございます。

なるほどです。
こういう考え方もあるのですね。
勉強になります。

ありがとうございました。

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