• 締切済み

リストボックスで項目を選択し、データを削除・・・

初心者です。 リストボックスにRowSourceを使用し、データを表示していますが、この表示されている項目を選択し、「削除ボタン」により、エクセルデータを削除し、さらにその行も削除できればと考えています。よろしければご教授お願いいたします。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

まずは質問の仕方 windows、excelのバージョンは書いておきましょう 「削除ボタン」では無くコマンドボタンなのでは この辺をちゃんと書いておかないと、回答が付きにくいよ '-------------------------------------------------------- Private Sub CommandButton1_Click() Dim 選択行 As Integer For 選択行 = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(選択行) Then Rows(選択行 + 1).Delete Shift:=xlUp  '※ End If Next End Sub '-------------------------------------------------------- 注意  リストボックスのリストの1行目を選択すると値0が返ってくる(仕様)ので マクロの※の行の 選択行 + 1 の1の部分を RowSourceに設定されている先頭の行数に変更すること 例えば RowSourceが A2:A10 ならば 2 を B10:R50 なら 10 に変更する と比較的簡単なマクロです webや参考書を活用しましょう

kakerun10
質問者

お礼

ありがとうございました。お蔭様で削除に成功しました。丁寧に回答いただき誠にありがとうございます。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ListBoxのRowSourceプロパティからRangeオブジェクトを作成して そのRangeオブジェクトでFindメソッド実行して行を特定しましょう Sub CommandButon1_Click()   dim ss as string   ss = ListBox1.Text   if ss <> "" then     dim r as Range, s as Range     Set s = Range( ListBox.RowSource )     Set r = s.Find( ss )     if not r is nothing then       ' 1行削除なら       r.EntryRow.delete       ' セルの削除なら       ' r.Delete xlShiftUp       ListBox1.RowSource = s.Address(0,0)     end if   end if End Sub といった具合です 字下げには全角スペースを使用しています

kakerun10
質問者

お礼

マクロは、とっても勉強のしがいがあります。いろいろな方法があるのですね。回答ありがとうございます。

関連するQ&A

  • リストボックスで選択した項目を削除するには

    Excel2003を使用しています。 ユーザフォームのリストボックスには"Sheet1!A1:C10"が表示されるようになっています。 Private Sub UserForm_Initialize()  UserForm1.ListBox1.ColumnCount = 3  UserForm1.ListBox1.RowSource = "Sheet1!A1:C10" End Sub たとえばリストボックス上で3行目(A3:C3)を選択して、削除ボタンをクリックすれば選択された値が表示から消えて、セル上の値も削除されるようにしたいのです。 できれば削除されると同時に4行目(A4:C4)以降の値が上にスライドされるようにできればいいのですが、まだまだ理解できない部分が多くて自分では解決できませんでした。 ご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 宜しくお願い致します。

  • リストボックスのリストを削除する

    リストボックスのリストを削除する アドバイスをお願いします。 下の構文でユーザーフォーム内のリストボックスに リストを表示させるようにしました。 Private Sub UserForm_Initialize()  With ListBox1 .RowSource = "データー!B3:B33" End With End Sub 表示されたリスト内で、不要になったリストをコマンドボタンの押下したときに データーシートのB3からB33の中から選択したリストと同じデーターを 探して削除する方法をお教えください。

  • セレクトボックスのデータをリストボックスへ書き出す

    javascript初心者です。よろしくお願いします。 まず年月日を3つのセレクトボックスで作成する。 追加ボタンを押すと、選択した年月日のデータをリストボックスに書き出すことができる。 ※ここでリストボックスのサイズは3に指定しておき、項目が3以上の場合はスクロールさせる。 さらに削除ボタンを作成し、リストからデータを削除できるようにする。 以上のような仕組みを作りたいのですが... どうかよろしくお願いいたします。

  • JavaScriptでリストボックスを選択

    リストボックスに約100個の項目があり、いくつかの項目を選択した状態で初期表示します。 これら約100個の項目には、同じものがありません。 (name="list_box" size="10" multiple) 20~30行目くらいのものが選択されていると、初期表示では1~10行目が表示されるので、選択されていることが分かりません。 そこで、初期表示で20~30行目を表示したいと考えています。 例えば20行目の項目がvalue="aaaa"で、onload時に20行目が一番上にスクロールされている状態にしたいのですが、どのようにJavaScriptを書けばよいでしょうか? 動的なデータを想定しているので、"aaaa"は必ずしも20行目とは限りません。 どうにか、value="aaaa"がリストボックスの一番上に選択されている状態を作りたいと考えています。

  • リストボックスの項目削除

    すいません、以下の処理でこまっております。 ユーザフォームですがリストボックスで項目を指定して、ダブルクリックで削除をしたいのですがうまくできません。 <例> リストボックス a b c 1.aの項目をクリックして選択する。 2.ダブルクリックするとaのみ削除 ※aをただのクリックのみなら削除できるのですが選択してダブルクリックになるとできません。 まったくできません。 どなたかご教授をお願いします。 よろしくお願いします。

  • EXCELのリストボックスを選択した行が何行目か

    エクセルVBAの初心者です。 VBAを組んでいて表のデーターをリストボックスに表示しています 選択されたリストボックスの値はわかるのですが、リストボックスの上から 何行目を選択したかどうか知りたいのですが、わかる方がおられましたら よろしくお願いします。

  • accessでのリストボックス選択のイベント

    お世話になります。 度々で恐縮なのですが、以下の質問を よろしくお願いいたします。 accessのフォーム上にリストボックスとテキスト ボックスをはりつけ、リストボックスに表示されて いる行が選択されたら、その項目値をテキスト ボックスに表示させようとしています。 しかし、リストボックスのイベント(マウスボタン クリック時や開放時)を使ってみたのですが、 二度クリックしないとテキストボックスに表示され ません。 リストボックスの行が選択されたというイベントが あればいいのですが、見当たりません。 どうすれば、リストボックスで行が選択されたという イベントを捕まえることができるのかご教示お願い いたします。

  • リストボックスで未選択の項目のvalue値を取得したい

    リストボックスで選択後送信ボタンにより送信された内容から、 未選択の項目のvalue値を取得したいのですが可能なのでしょうか? やりたいことは、送信したリストボックスに表示した全ての項目が知りたく、 さらにその選択状態を判定したいのです。 どうかお力添えを。

  • リストボックスの選択項目をテキストボックスへ

    リストボックス1の選択項目7項目を左列のテキストボックス10個のうち7個に反映するコードがわかりません。どなたかご教授のほどよろしくお願いします。

  • リストボックス項目の変更

    javascript初心者です。 ラジオボタンを2つ、複数選択リストボックスが1つあります。どちらのラジオボタンをチェックしているかで、リストボックス内の項目を変化させたいと思っています。 これはjavascriptで実現可能でしょうか?参考になるサイトや方法を教えていただければ嬉しいです。

専門家に質問してみよう