Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1266 / 13644 ツリー ←次へ | 前へ→

【75341】ステートメントはどのように書けばいいのですか 14/2/14(金) 15:25 質問[未読]
【75342】Re:ステートメントはどのように書けばいい... kanabun 14/2/14(金) 15:45 発言[未読]
【75343】Re:ステートメントはどのように書けばいい... 14/2/14(金) 16:30 お礼[未読]
【75344】Re:ステートメントはどのように書けばいい... kanabun 14/2/14(金) 16:34 発言[未読]
【75346】Re:ステートメントはどのように書けばいい... 14/2/15(土) 7:28 お礼[未読]

【75341】ステートメントはどのように書けばいいの...
質問    - 14/2/14(金) 15:25 -

引用なし
パスワード
     A
1 1234
2 1235
3 1236
4 1237
5 1238
とある場合です。

あるプロシージャを参考にして、下記のようにすると、1235の行が
削除できました。
Sub test01()
 Dim lRow As Long
 Dim i As Long
  lRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = lRow To 1 Step -1
      If Cells(i, 1).Value = 1235 Then
        Range(i & ":" & i).Delete
      End If
    Next i
End Sub
これを利用して、1234,1236,1237の各行を削除させようと、
Sub test01()
 Dim lRow As Long
 Dim i As Long
  lRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = lRow To 1 Step -1
      If Cells(i, 1).Value = 1234,1236,1237 Then
        Range(i & ":" & i).Delete
      End If
    Next i
End Sub
としたのですが、うまくいきません。
どのように書けばいいのでしょうか。

【75342】Re:ステートメントはどのように書けばい...
発言  kanabun  - 14/2/14(金) 15:45 -

引用なし
パスワード
   ▼隼 さん:

>これを利用して、1234,1236,1237の各行を削除させようと、
>Sub test01()
> Dim lRow As Long
> Dim i As Long
>  lRow = Cells(Rows.Count, 1).End(xlUp).Row
>    For i = lRow To 1 Step -1
>      If Cells(i, 1).Value = 1234,1236,1237 Then
>        Range(i & ":" & i).Delete
>      End If
>    Next i
>End Sub
>としたのですが、うまくいきません。
>どのように書けばいいのでしょうか。

Select Case 文を使えばいいと思います

>Sub test01()
> Dim lRow As Long
> Dim i As Long
>  lRow = Cells(Rows.Count, 1).End(xlUp).Row
>  For i = lRow To 1 Step -1
    Select Case Cells(i, 1).Value
     Case 1234,1236,1237
       Rows(i).Delete
    End Select
>  Next i
>End Sub

【75343】Re:ステートメントはどのように書けばい...
お礼    - 14/2/14(金) 16:30 -

引用なし
パスワード
   ▼kanabun さん:
感謝いたします。うまくいきました。
もうひとつ質問、いいですか。
Range(i & ":" & i)って、どういうことを言っているのですか。

>▼隼 さん:
>
>>これを利用して、1234,1236,1237の各行を削除させようと、
>>Sub test01()
>> Dim lRow As Long
>> Dim i As Long
>>  lRow = Cells(Rows.Count, 1).End(xlUp).Row
>>    For i = lRow To 1 Step -1
>>      If Cells(i, 1).Value = 1234,1236,1237 Then
>>        Range(i & ":" & i).Delete
>>      End If
>>    Next i
>>End Sub
>>としたのですが、うまくいきません。
>>どのように書けばいいのでしょうか。
>
>Select Case 文を使えばいいと思います
>
>>Sub test01()
>> Dim lRow As Long
>> Dim i As Long
>>  lRow = Cells(Rows.Count, 1).End(xlUp).Row
>>  For i = lRow To 1 Step -1
>    Select Case Cells(i, 1).Value
>     Case 1234,1236,1237
>       Rows(i).Delete
>    End Select
>>  Next i
>>End Sub

【75344】Re:ステートメントはどのように書けばい...
発言  kanabun  - 14/2/14(金) 16:34 -

引用なし
パスワード
   ▼隼 さん:
>▼kanabun さん:
>感謝いたします。うまくいきました。
ああ、それはよかったです♪

>もうひとつ質問、いいですか。
>Range(i & ":" & i)って、どういうことを言っているのですか。

Range(i & ":" & i) は (iがたとえば5なら) Range("$5:$5")
ということなので、 ぼくが書いたように、
Rows(i) つまり 「i行」と同じことを意味します。

【75346】Re:ステートメントはどのように書けばい...
お礼    - 14/2/15(土) 7:28 -

引用なし
パスワード
   ▼kanabun さん:
何度も済みません。
ありがとうございます。
>▼隼 さん:
>>▼kanabun さん:
>>感謝いたします。うまくいきました。
>ああ、それはよかったです♪
>
>>もうひとつ質問、いいですか。
>>Range(i & ":" & i)って、どういうことを言っているのですか。
>
>Range(i & ":" & i) は (iがたとえば5なら) Range("$5:$5")
>ということなので、 ぼくが書いたように、
>Rows(i) つまり 「i行」と同じことを意味します。

1266 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free