• 締切済み

excel リストボックスを使った入力について

excelにリストボックスを使って、複数の入力を一括で行いたいと考えています。 添付画像のように、横並びに入力する方法、縦並びに入力する方法があるのですが、 番号順に入力を自動で行う手順を作成している段階で詰まっております。 考えとしては アクティブのセル(番号1)から、リストボックスを起動し、for nextを使って順に入力 リストボックスで一度入力されたものは、Selectedコマンドにてfalseとし、 次の入力(番号2)に進むようにする。 それぞれ、3、6の入力後、次の行(列)の1の同行(同列)に移動する。 この3、6の位置で行列が切り替わるようにプログラムを組む方法で詰まっております。 なお、入力するセルの個数につきましては、最低1個、最大で9個となり、変化します。 アドバイスいただければと思います。また、別法でも構いません。 よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

基点セルはユーザーフォームが起動した時点でのアクティブセルで良いとして, >入力するセルの個数につきましては、最低1個、最大で9個となり、変化します。 これは「幾つ入力する」か不明と言ってるだけで,「3列で折り返す」のは常に固定でいいんですね。 準備: ユーザーフォームにListBox1があり,9個の元ネタを表示するよう設定済みである ListBox1は事前にMustiSelectをfmMultiSelectMultiにしておく #複数選択可能として,選択されている項目を選択順にシートに転記する マクロ: Dim a() As Variant Private Sub ListBox1_Change()  Dim i, n  Dim aTemp As Variant  If Me.ListBox1.Selected(Me.ListBox1.ListIndex) Then   If Sgn(a) = 0 Then    ReDim a(0)   Else    ReDim Preserve a(UBound(a) + 1)   End If   a(UBound(a)) = Me.ListBox1.List(Me.ListBox1.ListIndex)  Else   aTemp = Filter(a, Me.ListBox1.List(Me.ListBox1.ListIndex), False)   If UBound(aTemp) = -1 Then    Erase a   Else    ReDim a(UBound(aTemp))   End If   For i = 0 To UBound(aTemp)    ReDim Preserve a(i)    a(i) = aTemp(i)   Next i  End If  ActiveCell.Range("A1:C3").ClearContents  If Sgn(a) <> 0 Then   For i = 0 To UBound(a)    ActiveCell.Range("A1:C3").Cells(i + 1) = a(i)   Next i  End If End Sub ##思いつきでちょこちょこっと書いてみたので全然整理できてないのはご容赦。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelでリストボックス(入力規則)を活用したい

    Excelでセルにリストボックスを作りたいと思っています。 リストボックスの値は、シートのセルから導きだすのですが、A1からA12までに値が入力されているとして、重複する値はリストボックスに含めないようにリストボックスを作成したいのです。 入力規則の手順は分かるのですが、重複しない配列を作成する方法が分からないです。 詳しくは画像のとおりです。 どうぞよい知恵を授けてください。

  • excelのリストボックスで選択した項目をアクティブセルに入力方法

    もしかしたら既出かもしれませんが・・・ フォームコントロールのリストボックスで入力範囲の指定したリストをリンクするセルをワークシート上にクリックしたセルに入力させる方法はありますか? もし、不可能でしたら、ActiveXコントロールのリストボックスでも構いません。よろしくお願いいたします。

  • EXCEL リストボックスについて

    現在、エクセルであることをしようとしているのですが、どうやってやったらいいのかわからないので、ぜひ教えてください。 それと出来るかどうかも教えてください。 内容といたしましては、エクセルのシートの中にあるセルを選んだときにリストボックスを表示して、そのリストボックスにある内容を選んで確定するとその選んだ文字が入るようにしているのですが、入力規則からのリストボックスだとシート自体を小さくすると中の文字が見えなくなり、選びづらくなります。 そこで、コンボボックスで同じことをすると、文字のサイズが大きくなるのですが、印刷時に下向きの矢印も一緒に表示されてしまいます。 そこで、別の視点から考えて、セルを選んだ時にリストボックスみたいなユーザフォームをだし、そこで選んだ文字を選んだセルに表示すれば、印刷時に表示もしないし見た目も良くなると思うのですが、出来そうですか? 出来るのであれば、ぜひ教えてください。 出来れば、VBかVBAで出来るのか、教えてください。

  • エクセルのリストボックスの使い方

     WindowsXP Pro エクセル2003です。  エクセルのコントロールボックス機能を使ってリストボックスをつくりました。  リストボックスからある項目を選択するとアクティブセルにそのデータが入るようにしています。(ActiveCell.Value = ListBox1.Value)その後、セルは下に移動させます(Selection.Offset1,0).Select)。  そこで、もう一度同じ項目を入力するために上のセルと同じ項目をクリックしてもその項目が入力されません。 コントロールボックスのアクションは、リスト内の「他の項目をクリックしたとき」に実行されるということで、同じ項目は続けて指定できないようになっているようです。そこで、ある項目をクリックしたら、リスト項目内で違うところに選んだリストの場所を移動させたいと思っているのですが、そういうことができるのでしょうか。  ご存じの方よろしくお願いします。

  • リストボックス文字を連結しセルへ入力

    左上入力表にユーザーフォームリストボックスより選出実行された文字をB列にはリストボックス1の選出文字をC列にはリストボックス2、3、4から選出された文字を連ねて入力したいのですが。 尚、行に記入があれば次の空白から順に入力したい。 どなたかコードが解る方よろしくお願いします。

  • 入力規則のリストボックス

    エクセルの入力規則でリストボックスを使って選択したいのですが その時に、数字のみを抽出する方法はないですか? 例えば 1:りんご 2:みかん 3:バナナ をリストから選択する時、番号のみが表示されるように したいのです。 リストにはその番号がどれに該当するかわかるように りんご、みかん、バナナという内容も表示させたいのです。 よろしくお願いします。

  • Excelの入力規則のリストについて。

    行のセルの結合でリストボタンの矢印が小さくなって不便です。 これを改善する方法はありますか。 もしくは、入力規則の他に、便利なリストボックスなどはあるんでしょうか。 よろしくお願いします。

  • エクセル リストボックスについて

    現在、エクセルにて入力フォームを作っているんですが、入力規則の設定のとこでつまづいています。 つまづいているのは、例えば・・・リスト一覧の表を別のファイルのシートに用意をします。ここでの仮名として「リスト一覧表」を作ったとします。 そして本ファイルであるシートの中のセル(D10)に「リスト一覧表」から入力規則のように表示をするためにコンボボックスを使い、 「リスト一覧表」から使いたいリストを選んで「D10」に表示をして、 なおかつ、印刷時には「コンボボックス」の表示を出したくありません。そこで表示を消すにはどうしたらいいのか教えてください。 よろしくお願いいたします。

  • リストボックスについて

    セルに入力規則を使ってリストボックスをつくったのですが、 リストが700以上あり、その中から探すのは容易ではないので、 頭文字を入力すると、その頭文字から始まる単語だけをリストの中から 選べるようにはできないでしょうか?

  • リストボックスの並び替え

    VB.NETについて質問です。 ボタン1をクリックしたら、テキストボックス1に入力した文字を、リストボックス1に登録するとします。 この時、名前、年齢を入力します。 これを、ボタン2、3、をクリックしたら、リストボックスの内容を、名前順、年齢順に並べ替えたいです。 どうしても分かりません。 並べ替えるにはどうしたらいいでしょうか?

紙つまりのエラーが解消しない
このQ&Aのポイント
  • 質問者様は、ブラザー製品のMFC-J6970CDWで紙つまりのエラーが解消できない状況に困っています。
  • 質問者様はWindows 10を使用しており、USB接続でプリンターを接続しています。
  • お使いの環境や接続方法などについては特に記載がありません。
回答を見る

専門家に質問してみよう