[[20170522192706]] 『整数のドロップダウンリストを指定した値まで』(ナサ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『整数のドロップダウンリストを指定した値まで』(ナサ)

整数のドロップダウンリストリストを作りたいのですが、セルA2に入力されている数字まで0〜リスト化できないでしょうか。

例)
A2が5であれば
ドロップダウンリストは0,1,2,3,4,5になるようなマクロです

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 ユーザーフォームにコンボボックスがあったとして
    Private Sub UserForm_Initialize()
        Dim n As Long
        With Me.ComboBox1
            For n = 0 To Range("A2").Value
                .AddItem n
            Next n
        End With
    End Sub
 でいかがですか?
(稲葉) 2017/05/22(月) 19:39

お返事ありがとうございます。
できればユーザーフォームではなく入力規則のドロップダウンリストで設定したいのですが、無理でしようか。
(ナサ) 2017/05/22(月) 21:54

 マクロの必要性を感じないですが、数式案
 1)B列に連番を作る
 2)入力規則を入れたいセルの入力規則の「リスト」にC1の数式を入れる
 でいかがですか?
 例としてB列を指定していますが、ここは適宜変更してください。

     |[A]|[B]|[C]                  
 [1] |   |  0|=OFFSET(B:B,0,0,A2+1)
 [2] |  5|  1|                     
 [3] |   |  2|                     
 [4] |   |  3|                     
 [5] |   |  4|                     
 [6] |   |  5|                     
 [7] |   |  6|                     
 [8] |   |  7|                     
 [9] |   |  8|                     
 [10]|   |  9|                     
 [11]|   | 10|                     

 どうしてもマクロがよいのであれば以下の手順で土台を自分で作ってください。
 1)マクロの記録で、入力規則を変更したいセルの入力規則の「リスト」を設定する(記録終了)
 2)対象のシートモジュールに以下のコードを入れる
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim buf As Variant
        Dim n   As Long
        Dim f   As String
        If Target.Address = "$A$2" Then
            buf = Target.Value
            If IsNumeric(buf) Then
                For n = 0 To buf
                    f = f & n & ","
                Next n
                f = Left(f, Len(f) - 1)

                'マクロの記録で得たコード
                'Formula1:= の右辺を変数fに置き換える
            End If
        Else
            '何もしない
        End If
    End Sub
 3)シートモジュールに張り付けたコード内の「マクロの記録で得たコード」のところに、記録されたコードを当てはめてみる

 で試してください。

(稲葉) 2017/05/23(火) 08:16


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.