Excel VBA質問箱 IV

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

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


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

【19406】初歩的な質問で申し訳ありません iruka 04/10/31(日) 18:35 質問[未読]
【19407】Re:初歩的な質問で申し訳ありません IROC 04/10/31(日) 18:45 回答[未読]
【19408】Re:初歩的な質問で申し訳ありません iruka 04/10/31(日) 19:10 発言[未読]
【19411】Re:初歩的な質問で申し訳ありません IROC 04/11/1(月) 8:48 回答[未読]
【19441】Re:初歩的な質問で申し訳ありません iruka 04/11/3(水) 11:31 お礼[未読]
【19446】Re:初歩的な質問で申し訳ありません Hirofumi 04/11/3(水) 15:37 回答[未読]

【19406】初歩的な質問で申し訳ありません
質問  iruka  - 04/10/31(日) 18:35 -

引用なし
パスワード
   是非教えていただけないでしょうか。

顧客データで、氏名を昇順で並び替えるマクロと
降順で並び替えるマクロは、マクロの記録を使用して作ったのですが。

この二つを一つのコマンドボタンで、まとめられないでしょうか?


一回目のクリックは、昇順
二回目のクリックは、降順
三回目のクリックは、昇順

のようにできませんでしょうか?

【19407】Re:初歩的な質問で申し訳ありません
回答  IROC  - 04/10/31(日) 18:45 -

引用なし
パスワード
   トグルボタンを使用しては如何でしょうか?
ON/OFFをIF文で判定すれば簡単にできると思います。

【19408】Re:初歩的な質問で申し訳ありません
発言  iruka  - 04/10/31(日) 19:10 -

引用なし
パスワード
   ▼IROC さん:
>トグルボタンを使用しては如何でしょうか?
>ON/OFFをIF文で判定すれば簡単にできると思います。

トグルボタンでのイメージがわかないため
IF文の内容を教えていただけますでしょうか?

【19411】Re:初歩的な質問で申し訳ありません
回答  IROC  - 04/11/1(月) 8:48 -

引用なし
パスワード
   サンプルです。

Private Sub ToggleButton1_Click()
  If ToggleButton1.Value = True Then
    MsgBox "OFF になります。"
  Else
    MsgBox "ON になります。"
  End If
End Sub

【19441】Re:初歩的な質問で申し訳ありません
お礼  iruka  - 04/11/3(水) 11:31 -

引用なし
パスワード
   ▼IROC さん:
>サンプルです。
>
>Private Sub ToggleButton1_Click()
>  If ToggleButton1.Value = True Then
>    MsgBox "OFF になります。"
>  Else
>    MsgBox "ON になります。"
>  End If
>End Sub

返信ありがとうございます。
早速試してみたいと思います。

【19446】Re:初歩的な質問で申し訳ありません
回答  Hirofumi  - 04/11/3(水) 15:37 -

引用なし
パスワード
   UserFormで作るとこんな様
コマンドボタンとトグルボタンの2通り書いて置きます

Option Explicit

'ソート範囲
Private rngScope As Range
'CommandButtonの場合の状態記憶変数
Private blnSwitch As Boolean

Private Sub CommandButton1_Click()

  DataSort blnSwitch
  blnSwitch = Not blnSwitch
  
End Sub

Private Sub ToggleButton1_Click()

  DataSort ToggleButton1.Value
  
End Sub

Private Sub UserForm_Initialize()

  'ソート範囲を取得
  Set rngScope = ActiveSheet.Cells(1, "A").CurrentRegion
  
  'CommandButtonの場合の表示
  blnSwitch = Not blnSwitch
  With CommandButton1
    .Caption = "Ascending"
  End With
  
  'ToggleButton1の場合の表示
  With ToggleButton1
    .Caption = "Ascending"
  End With
  
End Sub

Private Sub UserForm_Terminate()

  'ソート範囲を破棄
  Set rngScope = Nothing

End Sub

Private Sub DataSort(blnOrder As Boolean)

  Dim lngOrder As Long
  
  'CommandButtonの場合の表示
  With CommandButton1
    If blnOrder Then
      .Caption = "Descending"
    Else
      .Caption = "Ascending"
    End If
  End With
  
  lngOrder = 2 + CLng(blnOrder)
  With rngScope
    .Sort Key1:=.Cells(1, 1), Order1:=lngOrder, _
        Header:=xlYes, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom, _
        SortMethod:=xlStroke
  End With
  
End Sub

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