ID非公開さん
2022/6/26 17:44
2回答
VBAについてご教授お願い致します。 シート1に一覧があり、表示したい行をダブルクリックすると ユーザーフォームで表示しました。 表示したデータをコマンドボタンで削除したいのですが、
VBAについてご教授お願い致します。 シート1に一覧があり、表示したい行をダブルクリックすると ユーザーフォームで表示しました。 表示したデータをコマンドボタンで削除したいのですが、 色々検索してみましたが、リストボックスから削除する方法しか見つからなく、 お力をお借りできないでしょうか? 初心者で理解もまだまだなのに図々しいお願いで申し訳ありません。 よろしくお願い致します。
Visual Basic | Excel・52閲覧・500
ベストアンサー
こんな感じですかね。 ※ダブルクリックイベントはA列で機能させています。また、ダブルクリック後削除ボタンを機能させるため選択セルの右隣にセル選択を移動しています。 ※コードは選択行全部を削除していますが、データ範囲を削除する場合は「削除ボタン」のコメントアウトした方をお使いください。 (フォーム構成は添付図を参照してください) ■標準モジュール Option Explicit Public i As Integer 'グローバル変数(取得行) ■フォーム構成 TextBox1 CommandButton ■フォームモジュール '削除ボタン Private Sub CommandButton1_Click() '選択行全部を削除する場合 Rows(i).Delete ' '選択行でその行のデータ範囲だけを削除する場合 ' Range(Cells(i, "A"), Cells(i, "E")).Delete Shift:=xlUp ' Range("A1").Select End Sub ■シートモジュールのダブルクリックイベント '''Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub Else If Target.Count > 1 Then Exit Sub Else Application.EnableEvents = False UserForm1.TextBox1.Text = Target.Row i = Target.Row '行取得 UserForm1.Show vbModeless Cells(i, 2).Select '右隣を選択(ダブルクリックを外す) Application.EnableEvents = True End If End If '''End Sub
質問者からのお礼コメント
早々のお知恵ありがとうございました。 短時間での詳しいお返事大変感謝しております。 こちらの説明不足だったのですが、行番号のっ取得ではなく一行のデータすべてがユーザーフォームに表示され、その後削除したかったのです。 初心者過ぎて改良もうまくできなかったのですが、今後勉強し利用させて頂きたく思います。 お時間頂きありがとうございました。 また機会があればよろしくお願いします。
お礼日時:6/30 22:34