戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
リストボックスのリストによってマクロを変える

    [189412] リストボックスのリストによってマクロを変える-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ ぎん -(2019/05/30(13:53))
    □U R L/
      WIN7 EXCEL2010
      Sheet1のA列に記載日時、B列に氏名、C列に登録ID、D列にマクロ番号という表を
      作成して、UserForm1にリストボックスとCommandButton1を設けました。
      このUserForm1に、
      Private Sub UserForm_Initialize()
       Dim LastRow As Long
        LastRow = Sheets("Sheet1").Cells(rows.Count, 1).End(xlUp).Row
        With ListBox1
         .ColumnHeads = True
         .ColumnCount = 63
         .ColumnWidths = "0;100;100;0"
         .RowSource = "Sheet1!" & Range("A2", "D" & LastRow).Address
      End With
      End Sub
      でリストボックスにSheet1の内容を反映させて、
      
      Private Sub CommandButton1_Click()
        Dim tmp As Single
         If ListBox1.List(ListBox1.ListIndex, 3) = "ST1" Then
          Call ST1
         Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST2" Then
           Call ST2
         Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST3" Then
           Call ST3
         Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST4" Then
           Call ST4
         Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST5" Then
           Call ST5
          Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST6" Then
           Call ST6
           Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST7" Then
           Call ST7
            Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST8" Then
           Call ST8
            Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST9" Then
           Call ST9
            Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST10" Then
           Call ST10
            Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST11" Then
           Call ST11
           Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST12" Then
           Call ST12
           Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST13" Then
           Call ST13
           Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "ST14" Then
           Call ST14
           Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "CV1" Then
           Call CV1
           Else
          If ListBox1.List(ListBox1.ListIndex, 3) = "CV2" Then
           Call CV2
         End If 'ST1に対する
         End If 'ST2に対する
         End If 'ST3に対する
         End If 'ST4に対する
         End If 'ST5に対する
         End If 'ST6に対する
         End If 'ST7に対する
         End If 'ST8に対する
         End If 'ST9に対する
         End If 'ST10に対する
         End If 'ST11に対する
         End If 'ST12に対する
         End If 'ST13に対する
         End If 'ST14に対する
         End If 'CV1に対する
         End If 'CV2に対する
      End Sub
      でSheet1のD列にマクロ番号に応じたマクロを実行するように作成しました。
      
      マクロには詳しくなくて、色々なホームページを見て、この形で思ったような
      動作はするようになったのですが、マクロが上記で16個のところ実際は100個
      くらいになります。
      
      このままの文面では、EndIfを100個くらい並べることになるので、果たして
      この文面のまま作成を継続して良いのか不安になりました。
      
      もっと簡単な方法はあるかもと思いましたので質問させて頂きます。
      
      宜しくお願いします。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189413] Re[1]: リストボックスのリストによってマクロを変える-

    記事引用/メール受信=OFF■

    □投稿者/ ぴんく -(2019/05/30(14:46))
    □U R L/
      参考に
      Private Sub CommandButton1_Click()
          With Me.ListBox1
              If .ListIndex <> -1 Then
                  Application.Run .List(.ListIndex, 3)
              End If
          End With
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189414] Re[2]: リストボックスのリストによってマクロを変える-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ ぎん -(2019/05/30(15:28))
    □U R L/

      ぴんくさん 有難うございます。

      まさにこれです。

      この様に簡単な文章になるのですね。
      改めて勉強いたします。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G