エクセルVBAについて質問です。以下のようなマクロを作ってください。

①A列のセルには連続で任意の文字列があります。B列のセルには○△×か空白。
②B列の中で○か△でない行全てを削除します。ただしA列が空白になった所で終了。
以下のページに図を作っておきました。参考にしてください。
http://hatena88.web.fc2.com/newpage1.shtml
この動作を行うマクロを作ってください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/09/13 04:01:42
  • 終了:2006/09/13 11:07:22

回答(3件)

id:zuguimo No.1

zuguimo回答回数19ベストアンサー獲得回数32006/09/13 06:33:35

ポイント50pt

http://hatena88.web.fc2.com/newpage1.shtml

で、図が読めませんでした。

一応動作の確認はしましたが、マクロはあまり経験がないのでエラーがでることを考慮して使ってください。

ちなみにA列に空白以降データがあると使えません。

Sub 削除()

'

' 削除 Macro

'

'データ数の計算

Range("A1").Select

データ数 =    Application.WorksheetFunction.CountA(Range("A:A"))

'オートフィルター

Selection.AutoFilter

Selection.AutoFilter Field:=2, Criteria1:="<>○", Operator:=xlAnd, _

Criteria2:="<>△"

'データの削除

Rows("1:" & データ数).Select

Selection.Delete Shift:=xlUp

Range("A1").Select

'1行目の処理

If Range("b1").Value <> "○" Then

If Range("b1").Value <> "△" Then

Range("1:1").Delete Shift:=xlUp

End If

End If

End Sub

id:taroemon

ご回答ありがとうございます。

またたくさん同じような質問をしますので、よかったら練習代わりにしてください。

2006/09/13 09:30:31
id:captim No.2

captim回答回数109ベストアンサー獲得回数62006/09/13 06:51:55

ポイント50pt

列を消す都合上、処理をシンプルにしたかったので

後ろから処理させています。(速度的には問題ないです。)

yは最終行です。

URLはダミー:http://q.hatena.ne.jp/

----------

以下スクリプト

----------

Sub Macro1()

y = 65536

For i = 1 To y

ch1 = Cells(y - i + 1, 1).Value

If ch1 = y - i + 1 Then

ch2 = Cells(y - i + 1, 2).Value

If ch2 = "○" Then

ElseIf ch2 = "△" Then

Else

Rows(y - i + 1).Select

Selection.Delete Shift:=xlUp

End If

End If

Next

End Sub

id:taroemon

ご回答ありがとうございます。

処理できれば大丈夫です。

2006/09/13 09:30:57
id:taknt No.3

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/09/13 07:24:12

ポイント50pt

以下のでどうでしょうか?

Sub Macro1()

'

' Macro1 Macro

'

' Keyboard Shortcut: Ctrl+q

'

b = 1

For a = 1 To 65536

If Range("A" & a) = "" Then Exit For

b = b + 1

Next a

For a = b To 1 Step -1

If Not (Range("A" & a) = "○" Or Range("A" & a) = "△") Then

Rows(a & ":" & a).Select

Selection.Delete Shift:=xlUp

End If

Next a

End Sub


http://web.sfc.keio.ac.jp/~tsaito/ITWS/Lec01.html

id:taroemon

いつもご回答ありがとうございます。

とても助かります。

2006/09/13 09:31:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません