Excel VBA質問箱 IV

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

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


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

【75311】指定した数値だけを削除したい 14/2/11(火) 11:50 質問[未読]
【75312】Re:指定した数値だけを削除したい HARA 14/2/11(火) 14:39 発言[未読]
【75313】Re:指定した数値だけを削除したい γ 14/2/11(火) 15:02 発言[未読]
【75314】Re:指定した数値だけを削除したい HARA 14/2/11(火) 18:21 発言[未読]
【75315】Re:指定した数値だけを削除したい 14/2/11(火) 21:24 発言[未読]
【75316】Re:指定した数値だけを削除したい kanabun 14/2/12(水) 9:11 発言[未読]
【75317】Re:指定した数値だけを削除したい 14/2/12(水) 10:11 お礼[未読]
【75318】Re:指定した数値だけを削除したい kanabun 14/2/12(水) 10:14 発言[未読]
【75320】Re:指定した数値だけを削除したい 14/2/12(水) 13:37 お礼[未読]
【75330】Re:指定した数値だけを削除したい kanabun 14/2/12(水) 22:34 発言[未読]

【75311】指定した数値だけを削除したい
質問    - 14/2/11(火) 11:50 -

引用なし
パスワード
   B列には4桁の数値を入力します。
(A列〜D列まで各種のデータを入力します)
入力後、B列の数値の内指定した数値だけを
削除するプロシージャを教えてください。
同一数値は2回以上入力される
こともあります。
宜しくお願いいたします。

【75312】Re:指定した数値だけを削除したい
発言  HARA  - 14/2/11(火) 14:39 -

引用なし
パスワード
   V = 4


For I = 1 To Len(Range("B1"))
If Not Val(Mid(Range("B1"), I, 1)) = V Then
 A = Val(Mid(Range("B1"), I, 1))
 B = B & A
End If
Next

MsgBox (B)
とかでやってみてください?

【75313】Re:指定した数値だけを削除したい
発言  γ  - 14/2/11(火) 15:02 -

引用なし
パスワード
   こんにちは。
何か意図が伝わっていない気がします。
消去なのか削除なのか。削除なら何を削除したいのか。
誤解を避けるためにも、簡単な例を示すといいと思いますよ。
処理前と処理後のサンプルを示してみてください。

【75314】Re:指定した数値だけを削除したい
発言  HARA  - 14/2/11(火) 18:21 -

引用なし
パスワード
   ▼γ さん 教えていただきすみません。

B列の数値を削除してE列に表示します?

V = Application.InputBox("数値入力", , , , , , , 1)

For I = 1 To 4
For J = 1 To Len(Range("B" & I))
 If Not Val(Mid(Range("B" & I), J, 1)) = V Then
  A = Val(Mid(Range("B" & I), J, 1))
  B = B & A
 End If
Next
 Range("E" & I) = B
 A = Empty
 B = Empty
Next

【75315】Re:指定した数値だけを削除したい
発言    - 14/2/11(火) 21:24 -

引用なし
パスワード
   そういえば、漫才師のいとしこいし さんのネタでありましたね。

「近所のスーパー、2のつく日は割引や
「ほんなら2日と、12日は割引やな
「そうや
「それから、20日、21、22、23、24、、、
「そんなに引くかい、22日だけやがな
「さっき、2の付く日は割引やいうたやん


隼さんの意図はどうなんでしょう。

【75316】Re:指定した数値だけを削除したい
発言  kanabun  - 14/2/12(水) 9:11 -

引用なし
パスワード
   データと処理内容とがハッキリしませんが、

> 4ケタの数値のうち 指定した数値だけ を削除

なら、フィルタを使うのも手だと思います。

いまB列に、↓のような4桁の数値があり、

支店 商品番号 担当    カナ
A    5772    橋本    はしもと
B    4204    高山    たかやま
C    2989    岡田    おかだ
D    1331    平山    ひらやま
A    1399    須藤    すどう
B    6347    加藤    かとう
C    4735    君島    きみじま
D    9815    村上    むらかみ
A    9033    荒川    あらかわ
B    3442    丸山    まるやま
C    9708    佐々木    ささき
D    8371    大貫    おおぬき
A    2187    佐藤    さとう
B    5764    鈴木    すずき
C    5646    山口    やまぐち
D    5100    山本    やまもと
A    6624    吉田    よしだ
B    1834    坂本    さかもと
C    9545    手塚    てづか

このうち、5000以上 9000未満の数値の行を削除したいとき、
AutoFilter でその範囲を指定して、あてはまる
数値の行をあぶりだし、一括行削除できます。

Sub Try1()
  Dim r As Range
  
  ActiveSheet.AutoFilterMode = False
  Set r = Range("B1", Cells(Rows.Count, 2).End(xlUp))
  r.AutoFilter 1, ">=" & 5000, xlAnd, "<" & 9000 '← 範囲を指定
  If MsgBox("Are you sure delete these Lines?", _
    vbOKCancel) = vbOK Then
    r.Offset(1).EntireRow.Delete
  End If
  r.AutoFilter
End Sub

支店 商品番号 担当    カナ
A    5772    橋本    はしもと
B    6347    加藤    かとう
D    8371    大貫    おおぬき
B    5764    鈴木    すずき
C    5646    山口    やまぐち
D    5100    山本    やまもと
A    6624    吉田    よしだ

【75317】Re:指定した数値だけを削除したい
お礼    - 14/2/12(水) 10:11 -

引用なし
パスワード
   ▼kanabun さん:
返事が遅れて申し訳ありません。
B
1111
1112
1113
1114
と入力しました。このとき1111,1114は不要なので、
以後の入力時に1111,1114を入力した時はマクロを
動作させたとき1111,1114の行は削除したい。
ということを希望しています。

>データと処理内容とがハッキリしませんが、
>
>> 4ケタの数値のうち 指定した数値だけ を削除
>
>なら、フィルタを使うのも手だと思います。
>
>いまB列に、↓のような4桁の数値があり、
>
>支店 商品番号 担当    カナ
>A    5772    橋本    はしもと
>B    4204    高山    たかやま
>C    2989    岡田    おかだ
>D    1331    平山    ひらやま
>A    1399    須藤    すどう
>B    6347    加藤    かとう
>C    4735    君島    きみじま
>D    9815    村上    むらかみ
>A    9033    荒川    あらかわ
>B    3442    丸山    まるやま
>C    9708    佐々木    ささき
>D    8371    大貫    おおぬき
>A    2187    佐藤    さとう
>B    5764    鈴木    すずき
>C    5646    山口    やまぐち
>D    5100    山本    やまもと
>A    6624    吉田    よしだ
>B    1834    坂本    さかもと
>C    9545    手塚    てづか
>
>このうち、5000以上 9000未満の数値の行を削除したいとき、
>AutoFilter でその範囲を指定して、あてはまる
>数値の行をあぶりだし、一括行削除できます。
>
>Sub Try1()
>  Dim r As Range
>  
>  ActiveSheet.AutoFilterMode = False
>  Set r = Range("B1", Cells(Rows.Count, 2).End(xlUp))
>  r.AutoFilter 1, ">=" & 5000, xlAnd, "<" & 9000 '← 範囲を指定
>  If MsgBox("Are you sure delete these Lines?", _
>    vbOKCancel) = vbOK Then
>    r.Offset(1).EntireRow.Delete
>  End If
>  r.AutoFilter
>End Sub
>
>支店 商品番号 担当    カナ
>A    5772    橋本    はしもと
>B    6347    加藤    かとう
>D    8371    大貫    おおぬき
>B    5764    鈴木    すずき
>C    5646    山口    やまぐち
>D    5100    山本    やまもと
>A    6624    吉田    よしだ

【75318】Re:指定した数値だけを削除したい
発言  kanabun  - 14/2/12(水) 10:14 -

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


> B
>1111
>1112
>1113
>1114
>と入力しました。このとき1111,1114は不要なので、

「1111,1114」 が、なぜ不要なのか、言葉にできますか?

【75320】Re:指定した数値だけを削除したい
お礼    - 14/2/12(水) 13:37 -

引用なし
パスワード
   ▼kanabun さん:
私は今、あるデータをスクリーニング後コピペ入力しています。
1回目に入力したものが
  A  B   C   D
1…… 1111 …… ……
2…… 1112 …… ……
3…… 1113 …… ……
4…… 1114 …… ……
だとします。入力後の検討結果、B列の1111、1114の各行のデータは不要だとします。プロシージャのステートメントとして、「B列に1111、1114とあれば、それらの各行は削除」としておけば、2回目以降のコピペ入力データの中でB列に1111、1114があれば、マクロ実行の時それらの行は削除されると考えます。
また、2回目以降コピペ入力データの中で、逐次不要なデータはステートメントを追記して削除できるものと考えます。
このことができるプロシージャを希望したいのですが。
>▼隼 さん:
>
>
>> B
>>1111
>>1112
>>1113
>>1114
>>と入力しました。このとき1111,1114は不要なので、
>
>「1111,1114」 が、なぜ不要なのか、言葉にできますか?

【75330】Re:指定した数値だけを削除したい
発言  kanabun  - 14/2/12(水) 22:34 -

引用なし
パスワード
   ▼隼 さん:
>▼kanabun さん:
>私は今、あるデータをスクリーニング後コピペ入力しています。
>1回目に入力したものが
>  A  B   C   D
>1…… 1111 …… ……
>2…… 1112 …… ……
>3…… 1113 …… ……
>4…… 1114 …… ……
>だとします。入力後の検討結果、B列の1111、1114の各行のデータは不要だとします。プロシージャのステートメントとして、「B列に1111、1114とあれば、それらの各行は削除」としておけば、2回目以降のコピペ入力データの中でB列に1111、1114があれば、マクロ実行の時それらの行は削除されると考えます。
>また、2回目以降コピペ入力データの中で、逐次不要なデータはステートメントを追記して削除できるものと考えます。

ごめんなさい。分りません m(_ _)m

[B5]セルより下に 入力規則で

数式が、
=AND(B5<>$B$1,B5<>$B$4)
としておけば、
[B1]には 1111 があり、 [B4]には 1114 があるから、
これらのセルの値と同じ数値の入力は禁止できます。

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