• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロでリスト選択削除したい)

マクロでリスト選択削除する方法とは?

このQ&Aのポイント
  • マクロを使用してリスト選択の削除を行いたい場合、名前の列を検索し、住所と電話番号の3つのセルを削除し、上に行を詰める式を使用します。
  • 具体的な手順としては、以下のような方法があります。
  • まず、名前の列を検索し、該当する行を特定します。次に、住所と電話番号のセルを削除し、上に行を詰めます。最後に、削除を確認するためのダイアログを表示します。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

検索は Findを利用して OfficeTANAKA セルの操作(セルの検索) http://officetanaka.net/excel/vba/cell/cell11.htm 行を削除して上に詰めるのは Rows(findの結果の行).Delete Shift:=xlUp などを利用すればいかがでしょう。

sc420
質問者

お礼

ありがとうございます。 試してみましたが、エラーになります。 検索しながら頑張ります。 また、心折れた時には今度は自分の考えた構文を載せてみます。 素早い回答ありがとう御座いまいた。

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

関連するQ&A

  • エクセルのマクロについて

    下記のようなプログラム組んでいます。 Sub 張付() Sheets("一覧表").Select Dim i As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("一覧表") Set ws2 = Worksheets("データー") For i = 5 To ws2.Cells(Rows.Count, 1).End(xlUp).Row ws1.Range("B5") = ws2.Cells(i, 2)    'セルB5に氏名を入力 ws1.Range("C5") = ws2.Cells(i, 3)    'セルC5に年齢を入力 ws1.Range("D5") = ws2.Cells(i, 4)    'セルD5に電話番号を入力 この後、 ws1.Range("B5")のB5をB6にまた、C5はC6に改行してそれぞれデーターを移していきたい のですが、B5をB6に順次プラスする方法を教えて下さい。 よろしくお願いいたします。

  • VBA ユーザーフォーム リストボックス

    教えてください。 現在下記のようなコードでリストボックスに対象セルの値を表示しています。 Private Sub UserForm_Initialize() ListBox1.List = Range(Range("M5"), Cells(Rows.Count, 14).End(xlUp)).Value End Sub この時、例えば別シート(仮にsheet3)のセルを表示したい場合 どのようにすればいいでしょうか? ListBox1.List = sheets("sheet3").Range(Range("M5"), Cells(Rows.Count, 14).End(xlUp)).Value としてもエラーになってしまいます。 よろしくお願いします。

  • (エクセルVBA)並び替えの方法

    この度はお世話になります。 エクセル2003で、選択したセル範囲(仮に「顧客一覧」とします)を並び替えるVBA(マクロ)を作成中です。 一応、下の方法で実現しました(リスト1)。しかし、「顧客一覧」の最下行だけ並び替えの対象からはずしたいのです。 理由は、別に行を挿入する必要があるためです(リスト2)。 行を挿入しても、そのデータが「顧客一覧」の範囲に含まれるようにしたいため、「顧客一覧」の最下行はブランクにしています。 しかし、リスト1では、ブランクの行も並び替えの対象になってしまい不都合が生じます。 セル範囲のうまい指定方法を教えていただければ幸いです (リスト1の修正をお願いします)。 '------------------------------- 'リスト1  選択範囲を並び替える '------------------------------- Sub 顧客一覧の並べ替え() Dim rowsCount As Long '表の現在行数 '行数の取得 rowsCount = Range("顧客一覧").Rows.Count '並び替える Range("顧客一覧").Sort key1:=Range("顧客一覧").Cells(1, 1), _ Order1:=xlAscending, Header:=xlGuess End Sub ------------------------------- 'リスト2  行を追加する '------------------------------- Sub 顧客の追加() Dim rowsCount As Long '表の現在行数 '行数の取得 rowsCount = Range("顧客一覧").Rows.Count '最下行に行を挿入 Range("顧客一覧").Cells(rowsCount, 1).EntireRow.Insert End Sub ※セル範囲「顧客一覧」は、初期値は B5:F10 です(A列はブランク)。 ※B列に顧客名(C~F列は住所電話番号等)を入力します。 ※並び替えの基準は「列B」/昇順 です。 ※行の挿入は最下行に行います(リスト2)。 以上、どうぞよろしくお願い致します。

  • マクロで指定したセル内の改行を削除

    エクセル2013です。 既に動いているマクロに別な処理を追加したいです。 まずその追加したい処理だけの単独のコードを 作成し、正しく動いたら 今使用しているマクロの最初に組込たいです。 内容はシート内において、指定した複数のセルの中の すべての改行を削除です。 マクロでなくてもできますが、上記理由でマクロで行いたいです。 ・質問1 Sub 実験() 最終行 = Cells(Rows.Count, 6).End(xlUp).Row 'F列の最終行を求める Range(Cells(4, 1), Cells(最終行, 6)).Value = Replace(Range(Cells(4, 1), Cells(最終行, 6)).Value, vbLf, "") End Sub これですと 「型が一致しません」でERRです。 これは何処が悪いのでしょうか? ・質問2 Sub 改行削除() Dim 対象範囲 As Range 最終行 = Cells(Rows.Count, 6).End(xlUp).Row 'F列の最終行を求める   Set 対象範囲 = Range(Cells(4, 1), Cells(最終行, 6)) 対象範囲.Replace vbLf, "", xlPart End Sub ↑これなら正しく動きました。 でこれを、今動いているマクロの先頭に入れたら 対象範囲.Replace vbLf, "", xlPart ↑ ここで「型が一致しません」でERRです。 なぜ単独では動作するのに、別のマクロの先頭に組み込むとERRに なるのかわかりません。 よろしくお願いします。

  • エクセル リストボックスにセルの値を表示したい

    Sheet1に A1 a A2 i A3 u と入力されています。 フォームのリストボックスにこの3つのセルを表示したいのですが Private Sub UserForm_Initialize() UserForm1.ListBox1.ControlSource = Sheets("Sheet1").Range(Cells(1, 1), Cells(1, 3)) End Sub ではうまく行きません。 デバッグしてもなにも引っかからないのですが 実行すると 「実行時エラー13 型が一致しません」 となります。 「ControlSource」を「RowSource」に変えても同じでした。 ※列が移動するため列番号を変数で取得したいのでCellsを使用しています。 ご教授よろしくお願いします。

  • エクセルマクロで複数列のセルを選択した時でも正しく動作するようにしたい

    エクセルマクロで複数列のセルを選択した時でも正しく動作するようにしたい。 今、3列目に入力された値によって15列から17列の値を自動入力するように次の マクロを作りました。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 3 Then Exit Sub For Each r1 In Selection If r1.Cells(1, 1) <> "部品表" Then Cells(r1.Row, 15) = "-" Cells(r1.Row, 16) = "-" Cells(r1.Row, 17) = "-" End If Next End Sub 3列目のみのセルをペーストすると正しく動作しますが、1列目から3列目のセルにペーストすると何も動きません。 正しく動くようにするには、どう修正すればいいでしょうか?

  • excelマクロの重複セルの削除について

    excelマクロ超初心者です。 E列に下記のようにデータが入っていたとします。   E列 1 いちご 2 りんご 3 みかん 4 いちご 5 りんご 6 れもん これを重複セルを削除して   E列 1 いちご 2 りんご 3 みかん 4 れもん としたいのですが、どうすればいいでしょうか? 自分なりに調べて、下記のように記述したのですが、 Sub test() lastRow = wb.Sheets("Sheet1").Range("E" & Rows.Count).End(xlUp).Row 'E列最終行 For i = lastRow To 2 Step -1 If Cells(i, 5).Value = Cells(i - 1, 5).Value Then Cells(i, 5).EntireRow.Delete Shift:=xlUp End If Next i End Sub() E4列から下のデータしか重複セルが削除されません。 ここでいうlastRow To 2 Step -1はどういう意味なのでしょうか? すみませんが宜しくお願いします。

  • 1つのシートで2つ目のマクロ

    お世話になります。 今、あるシートに1つのマクロを登録してあります。 リストで選択した番号に従って指定したセルにカーソルを飛ばすというマクロです。 で、それとは別のセルに同じシートで郵便番号を入力したら隣のセルに住所を反映させるマクロを登録したいのですが ここで入手したコードをコピペして範囲を修正したのですが どうやら下記の文章が2つあるのがいけない(?)のでしょうか? 「コンパイルエラー名前が適切ではありません」と出てきます。 Private Sub Worksheet_Change(ByVal Target As Range) このコマンド(?)は1つのシートに2つ存在してはいけないものなのでしょうか? あと 出来れば L列に入力した郵便番号を参照してM列に都道府県名、N列に市町村名以降を反映させたいので その方法もご教示いただければ幸いです。 どちらかだけでも結構です。 ・エラーの原因、 ・住所を反映させるマクロ ご教示いただける方、宜しくお願い致します。

  • 郵便番号を入れると住所が出るマクロを組みたい

    A列に郵便番号を入れると、(例:123-4567)B列に住所が出るマクロを組みたいのですが なかなかできません。例えばA1セルに入力するとB1セルに。A4セルに入力するとB4セルに 出るといった感じです。インターネットで調べながら、 Option Explicit ' ワークシートのChangeイベント記述 Private Sub Worksheet_Change(ByVal Target As Range) Dim xlAPP As Application ' 郵便番号セル以外では動作させない If Target.Address <> "$A$1" Then Exit Sub ' (1) ' 3桁以上の郵便番号があり、住所がブランクの場合のみ住所を変換させる If ((Len(Cells(1, 1).Value) >= 3) And (Cells(1, 2).Value = "")) Then ' (2) Set xlAPP = Application xlAPP.EnableEvents = False ' (3) ' 郵便番号を全角変換し住所に転記 Cells(1, 2).Value = StrConv(Target.Value, vbWide) ' (4) ' 住所のセルを選択 Cells(1, 2).Select ' (5) ' F2 → Shift+Home → F13 を擬装入力する SendKeys "{F2}", True ' 編集モード ' (6) SendKeys "+{HOME}", True ' 文字列全体を選択 ' (7) SendKeys "{F13}", True ' 再変換(MS-IME) ' (8) xlAPP.EnableEvents = True End If End Sub というコードを作ったのですが、これはA1セルしか対応しておらず、A列全体で対応できません。 何か方法があればご教授いただけたら幸いです。

  • Excellマクロ Cellsの範囲選択について

    エクセル2003についてお尋ねします。 A1には行番号にあたる変数が表示されるようになっています。 その変数によって選択するセルの範囲が変わるようにすることが目的でした。 「A1の行番号の5~10列目を選択する」というマクロを 下記のような記述を行いましたが、※のところでエラーが出てしまい、問題がわからずにおります。 お手数ですが解決策をご教授ください。 Sub マクロ1() Dim j As Integer j = Range("A1") Worksheets("Sheet1").Activate Range(Cells(j, 5), Cells(j, 10)).Select ←※ End Sub よろしくお願いいたします。

このQ&Aのポイント
  • 迷惑メールを受け取っている方におすすめの停止方法を紹介します。
  • 迷惑メールによる自動送信が繰り返されている方への対処法を解説します。
  • ぷらら(インターネット接続サービス)を利用している方に迷惑メールの自動送信を止める方法をご紹介します。
回答を見る

専門家に質問してみよう