• ベストアンサー

エクセルのListBoxの2列目のデータをセルに!

ListBoxを複数行複数列にして、そのうちの2列目の各行にあるセルに取得した中身のデータを転記したいのですが、やり方が分かりません。基本的な質問で申し訳ないですが、アドバイスなど頂けると有難いです!

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>ListBoxを複数行複数列にして、そのうちの2列目の各行にあるセルに >取得した中身のデータを転記したい 「2列目の各行にあるセルに」とは?複数列のListBoxだし、横(列方向)に書いてみました。違っていれば縦に修正してください。 複数行複数列のListBoxの設定も質問内容? 以下のようにプロパティを設定してみてください。3列の例です。 添付図にありますが、RowSourceは表題部分を含みません。  ListBox1のプロパティ   ColumnCount: 3   ColumnHead: True   ColumnWidth: 50;50;50   RowSource: A11:C13   Width: 155 プロパティはこのくらいの設定でいいでしょう。 フォームには書き出すボタン「CommandButton1」を配置しています。 '// フォームのコードウインドウ Private Sub CommandButton1_Click()  Dim lstNo As Integer '// リストの行  Dim wRow As Integer '// 書き出す行(1つ目のデータ)  Dim wCol As Integer '// 書き出す列(1つ目のデータ)  wRow = 3  wCol = 2   '// セルB3から書き出す例    lstNo = ListBox1.ListIndex  If lstNo <> -1 Then   With ListBox1    Cells(wRow, wCol) = .List(lstNo, 0)   '// 品名    Cells(wRow, wCol + 1) = .List(lstNo, 1) '// 産地(これが2番目)    Cells(wRow, wCol + 2) = .List(lstNo, 2) '// 価格   End With  Else   MsgBox "リストから選択してください。"  End If End Sub

seijiadb07
質問者

補足

回答ありがとうございます。曰く、プログラムの記述は人それぞれですね。恐らくですが、今回一連の質問の記述は書き直ししなければいけません。他所様のQ&Aでは修正が必要な場合が多く、全く体を為していません。このサイトのはモジュール的に使いやすさがあります。 …なんとかかんとか。 さて、当質問者として、、 ユーザーフォームにまとめてプログラミングしています。1つないし緊急措置用があれば事足ります。それを前提にプログラミングする際に再利用や修正が簡単な用にしたいので、出来る限り短くしていたい思いがあります。あと、プログラミング自体は質問者がしますが、評価外になります。 何はともあれ、有効なプログラム例ありがとうございます^^

関連するQ&A

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。

  • Excel VBA データの転記

    Excel2003を使用しています。 Sheet1のB1セルとSheet2のB1セルのデータが一致したら、Sheet2のB1セル~E1セルのデータをSheet1のF1セル~Iセルに転記するというコードを書いています。 Sheet1のデータ最終行を取得して、上記の条件を満たさなかったSheet2のB1セル~E1セルのデータをSheet1のデータ最終行の1行下から順に転記するという内容を追加したいのですが、転記先の指定の仕方が悪いのか、希望通りになりません。 どなたか一例を示していただけないでしょうか? スマホからの投稿で、実際に書いているコードを記載できず、分かりづらくて申し訳ないのですが、よろしくお願いします。

  • [EXCEL2000]複数の列からデータを取り出して1列にまとめたい!

    (1)一行にA列、B列、C列があります。 (2)各行のどれか1つの列には、必ずデータが入っています。 (3)データの入っているセルからデータを取り出し、D列の同じ行のセルに移します。(コピーでもかまいません) (4)結果、D列には、A列~C列のデータが1列にまとまる! 具体的には↓のようになりますが、どのような関数を使えばよいですか?教えてください。 (具体例) A列 B列 C列 D列 12         12        50  50      32     32

  • セルに追加されるデータをListBoxに表示させたい

    VBA初心者です エクセルのシートに入力されたデータを、ListBoxに表示させるプログラムを作っているのですが セルB5以下に入力されるB列のデータを、追加されたら、自動的にリストボックスにも追加されるというプログラムを作りたいと考えています ご指南、宜しくお願い致します

  • Excelで1つのセルに入れた複数行の長い文字列をセルの高さを変えずに表示したい

    こんにちは。 Excelについての質問です。 お分かりになる方がらっしゃいましたら教えていただけると幸いです。 Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 その時、シートの幅や高さは変えずに、 セル内で「Alt+Enter」で改行されてその高さに収まらない文字列は、 そのまま直下の空いているセルに表示させたいのですが、これは可能でしょうか。 「折り返して全体を表示する」はオフの状態です。 この設定で1行だけの文字列だと幅以上の文字列は自然に横の空白のセルに流れてくれますよね? これを、「Alt+Enter」の複数行ver.でやりたいのですが、 このようなことは可能なのでしょうか。 質問が分かりにくくて申し訳ありません。 他にも、いい方法をご存知でしたらアドバイスをお願いいたします。

  • Excel:いまフォーカスがあるセルを特定し、その行のセルのデータをA列から順に参照したい。

    Excel VBAです。 以下のようなことをしようとしています。 1) ユーザーは任意のセルをクリック 2) その行のA列から順に列方向にデータを参照し処理をする。 そこでお聞きしたいのは2点です。 Q1.いまフォーカスがあるセルの位置情報(R8とか)の取得方法。 Q2.そこからA列に移動する方法(R8からR1に移動) 基本的なことだと思いますが、スキルに追いつかないものを急ぎで作らなければなりません。 申し訳ありませんが、アドバイスをいただけますか?

  • Excel2007データ内から空白セルを除去

    ※VBAを使用しないことを前提としております。 複数列×複数行のデータ内に値と空白(右側余白)が混合しています。 各行の値は左詰めですが、個数は一定ではありません。 このデータを1行の空白なし且つ、 重複なしのデータに変換(別のセルで出力)するにはどうしたらいいでしょうか? ちなみに昇順等は気にしません。 詳しくは画像をご参照ください。 よろしくお願いいたします。

  • EXCEL セル内のデータを置き換えたい

    うまく説明できないのですが、 Sheet1のA列とB列に、1つのセルに複数のデータが以下のように入っています。(データの間に「,」があります。)     A列             B列 1行 6599A,6599B,6599C  6599A 2行 6599B,6599C      3行              6599A,6599C これは商品コードでして、Sheet2に明細があります。 A列    B列 りんご  6599A メロン   6599B みかん  6599B Sheet1のデータを、「りんご」「メロン」「みかん」に置き換えたいのです。 データの数が、たくさんあるので、コピー、ペーストでは対応できません。 よい方法をお教えください。よろしくお願いいたします。

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • エクセルで条件を付けたセルの個数

    エクセルで複数行の表を作りました。各行ごとに異なる条件付き書式を施し、適合結果のセルを書式設定のパターンで色づけしました。色付きのセルが縦(列)に何個あるかを表示させるにはどうすれば良いでしょうか。教えてください。