• ベストアンサー

エクセルマクロ

削除したい行を選択しボタンを押すと行削除をするというマクロを ボタンに入れたんですが 誤って行を選択していない場合、 例えば 特定のセルを選択している時、列を選択しているなどの時には 無限ループ?に入って固まってしまうのです そういった場合にループに入らずに エラー(コメントを用意)を表示したいのです Private Sub CommandButton1_Click() Selection.Delete Shift:=xlUp End Sub

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

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

Private Sub CommandButton1_Click()  if selection.columns.count <> cells.columns.count then   msgbox "SELECT ROW(s)"   exit sub  end if  Selection.Delete Shift:=xlshiftUp End Sub みたいな。

noname#225437
質問者

お礼

ありがとうございました

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

関連するQ&A

  • excel マクロ

    EXCELでデータが100行の表があるとする。 データのない行を削除し行を詰めるマクロは? イメージはこんな感じとおもうのでうが Sub Macro1() 'if文であるn行がデータがないかどうか判定YESなら Rows("n:n").Select Selection.Delete Shift:=xlUp End Sub

  • エクセルマクロで行を変えて100回デリート

    すみません。繰り返し165行下がってデリートしたいのですが・・・ どなたか詳しい方ご教授下さいませ。 ActiveWindow.SmallScroll Down:=174 Rows("183:198").Select Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=171 Rows("348:363").Select ←165行下がりデリートを繰り返しデリートしたいです。 Selection.Delete Shift:=xlUp

  • VBA コマンドボタン 頭に0がでない

    各ボタンに以下を入れる Private Sub CommandButton1_Click() Selection.Value = Selection.Value & "1" End Sub Private Sub CommandButton2_Click() Selection.Value = Selection.Value & "2" End Sub . . Private Sub CommandButton10_Click() Selection.Value = Selection.Value & "0" End Sub Private Sub CommandButton11_Click() Selection.Value = Selection.Value & "." End Sub 0.1と入力しても0.1が表示できなく、1となってしまいます。 また.1と入力しても0.1でなく、1になってしまいます。 どうすれば良いでしょうか?

  • 行を削除するマクロ

    以下のような、行を削除するマクロがあります。 Workbooks("123.csv").Activate Rows("5:10").Select Selection.Delete Shift:=xlUp しかし、123.csvを開いていない場合にはエラーが出てしまいます。 そこで、このようにしました。 On Error Resume Next Workbooks("123.csv").Activate Rows("5:10").Select Selection.Delete Shift:=xlUp しかし、エラーが出ない代わりに、アクティブなブックの行が削除されてしまいます。 123.csvが開かれている場合には、行を削除し、 開かれていない場合には、何もせずエラーも出さないようにするにはど のようにすればいいでしょうか。 よろしくお願いします。

  • エクセルマクロ セル内の値の抜き出しと入力の値との

    すみません、ハマっております。 下記マクロにて、A2セル内にある(例)「111-22222-5555-666-1」の中のと入力した5555とのマッチングのマクロを作っているのですが、どうしてもA2値がemptyになってしまいうまくマッチングできません。どうしたらよいでしょうか?お力お貸しください。 Private Sub CommandButton1_Click() Unload 番号入力 Dim OdrNum As String If TextBox1.Value = "" Then Exit Sub Else OdrNum = TextBox1.Value While Mid(A2, 11, 4) <> OdrNum '該当番号の欄になるまで不要行削除 If Mid(A2, 11, 4) = "" Then MsgBox "該当番号はありませんでした。" Exit Sub Else End If Rows("2:2").Select Selection.Delete Shift:=xlUp Wend MsgBox "処理終了" End If End Sub

  • ExcelVBAで複数のコマンドボタンを一つに!

    ユーザーフォーム上にたくさんのボタンを配置しているのですが、 すべて同じ動作なので、一つにまとめたいです。 どのように記述したらよいでしょうか? Private Sub CommandButton1_Click() Selection.Interior.color = select_Color End Sub Private Sub CommandButton2_Click() Selection.Interior.color = select_Color End Sub Private Sub CommandButton3_Click() Selection.Interior.color = select_Color End Sub Private Sub CommandButton4_Click() Selection.Interior.color = select_Color End Sub

  • EXCEL VBAで

    初心者です。 Sub Ksakujyo() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlUp End Sub これでは対象セルが空白だったら該当するセルが見つかりませんと出ます。 それで If Range Is Nothing Then "対象がありません" End If を間に入れますが多分rangeのところが違うのでしょうね? それとこれは選択範囲を選択してないと全ての行で削除されるみたいです。 かなり調べましたがお手上げです。 どなたかご教授よろしくお願いします。

  • エクセルのマクロで行選択

    現在、エクセルでマクロを組んでいます。 行いたい内容としては 1.行6~1765までを選択 2. 1.で選択した行を非表示 3. 行6~"セルH2の値"までをを選択 4. 3.で選択した行を再表示 3の段階で失敗してしまいます。 Rangeメソッドに失敗しました、と出ます ソースは以下のとおりです ----- Private Sub CommandButton2_Click() Dim x As Integer Range("6:1765").EntireRow.Select Selection.EntireRow.Hidden = True x = Range("H2").Value Range("6:x").EntireRow.Select Selection.EntireRow.Hidden = False End Sub ---- 解決法がわかる方、教えてください よろしくお願いします。

  • for next教えて下さい(;_;)

    以下のように1行残して9行消してという操作を連続してやりたいのですがfor nextをどう使えばうまくいくのかわかりません。誰か教えて下さいお願いしますm(_ _)m Sub Macro1() ' ' Macro1 Macro ActiveWindow.SmallScroll Down:=5 Rows("10:18").Select Selection.Delete Shift:=xlUp Rows("11:19").Select Selection.Delete Shift:=xlUp End Sub

  • vbaで指定文字を含まない列を削除するとき

    vbaで指定文字を含まない列を削除したいです。 指定文字を含む列を削除するプログラムはできましたが、これを指定文字を含まない列を削除に変更したいです。 途中まで作ったこのプログラムを生かして、どう変更すれば含まないにできますか? 教えて頂けると助かります。 Private Sub CommandButton1_Click() Sheets("シート1").Select Do While (True) Rows("5:5").Select Set myselect = Selection.Find(What:="あああ", LookAt:=xlPart) If myselect Is Nothing Then Exit Do Columns(myselect.Column).Select Selection.Delete Shift:=xlUp Loop End Sub

このQ&Aのポイント
  • ブラザー製品のDCP-J926Nで印字途切れのトラブルが発生しています。お困りの原因や試したことを教えてください。
  • Windows10を使用しており、無線LANで接続しています。関連するソフトやアプリはありません。
  • 電話回線の種類に関しては記載がありません。
回答を見る

専門家に質問してみよう