Excel VBA質問箱 IV

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

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


65816 / 76733 ←次へ | 前へ→

【15488】Re:不要な列を非表示
回答  kein  - 04/6/27(日) 0:35 -

引用なし
パスワード
   あー・・非表示にする列の方が、多かったんですね。それも考慮するなら、表示する
項目だけを選択する形にした方が、より能率的ですね。
というわけで書き直してみました。

↓対象シートのシートモジュールへ

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
  Dim Lp As Single, Wp As Single, Hp As Single
  Dim C As Range

  With Target
   If .Count > 1 Then Exit Sub
   If .Row > 1 Then Exit Sub
   Lp = .Left: Wp = .Width * 2: Hp = .Height
  End With
  Cancel = True
  Columns("B:M").Hidden = False
  With ActiveSheet.Buttons.Add(Lp, 0.1, Wp, Hp)
   .Caption = "月を選択"
   .Font.Size = 9
   .OnAction = "Scl_MyM"
  End With
  With ActiveSheet.ListBoxes.Add(Lp, Hp + 2, Wp, Hp * 8)
   For Each C In Range("B1", Range("B1").End(xlToRight))
     .AddItem C.Value
   Next
   .MultiSelect = xlSimple
  End With
End Sub

↓標準モジュールへ

Sub Scl_MyM()
  Dim i As Integer

  If VarType(Application.Caller) <> 8 Then Exit Sub
  ActiveSheet.Buttons(1).Delete
  With ActiveSheet.ListBoxes(1)
   If IsError(Application.Match(True, .Selected, 0)) Then
     .Delete: Exit Sub
   End If
   For i = 1 To .ListCount
     If .Selected(i) = False Then
      Columns(i + 1).Hidden = True
     End If
   Next i
   .Delete
  End With
End Sub

3 hits

【15477】不要な列を非表示 経理課支払担当 04/6/26(土) 21:20 質問
【15479】Re:不要な列を非表示 IROC 04/6/26(土) 23:00 回答
【15484】Re:不要な列を非表示 kein 04/6/26(土) 23:35 回答
【15486】Re:不要な列を非表示 経理課支払担当 04/6/27(日) 0:13 発言
【15487】Re:不要な列を非表示 kein 04/6/27(日) 0:26 回答
【15488】Re:不要な列を非表示 kein 04/6/27(日) 0:35 回答
【15545】Re:不要な列を非表示 経理課支払担当 04/6/28(月) 23:18 お礼
【15558】Re:不要な列を非表示 kein 04/6/29(火) 12:13 回答
【15576】Re:不要な列を非表示 経理課支払担当 04/6/29(火) 22:59 お礼

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