Excel VBA質問箱 IV

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

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


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

【34182】サブルーチン等について 陸遜 06/1/27(金) 20:49 質問[未読]
【34187】Re:サブルーチン等について kobasan 06/1/28(土) 0:15 回答[未読]
【34191】Re:サブルーチン等について kobasan 06/1/28(土) 8:36 回答[未読]
【34201】Re:サブルーチン等について 陸遜 06/1/28(土) 18:38 お礼[未読]

【34182】サブルーチン等について
質問  陸遜  - 06/1/27(金) 20:49 -

引用なし
パスワード
   Caseでサブルーチンを使い分けるマクロを組んでいます。
ひとつのCaseに対して、ひとつのサブルーチンを実行することは出来るのですが、
複数を稼動させることが出来ませんでした。

 Case1
s_価格コピーペースト
 Case2
s_売り上げコピーペースト
 Case3

Case3のときに上記の二つを実行したいのですが、どうすればいいのかご教示お願いいたします。

 また別件ですが、オートフィルタで3つ以上の条件で検索を実行するようなマクロは組むことが出来るでしょうか。orですと二つまでしか組めませんでした。どなたかご存知でしたら、合わせてよろしくお願いいたします。

【34187】Re:サブルーチン等について
回答  kobasan  - 06/1/28(土) 0:15 -

引用なし
パスワード
   ▼陸遜 さん今晩は。


> Case1
>s_価格コピーペースト
> Case2
>s_売り上げコピーペースト
> Case3
>
>Case3のときに上記の二つを実行したいのですが、どうすればいいのかご教示お願いいたします。

 Case3
s_価格コピーペースト
s_売り上げコピーペースト

でできると思います。


> また別件ですが、オートフィルタで3つ以上の条件で検索を実行するようなマクロは組むことが出来るでしょうか。orですと二つまでしか組めませんでした。どなたかご存知でしたら、合わせてよろしくお願いいたします。

オートフィルタについて。
AutoFilterは、Criteria1,Criteria2しかセットできないので、
AutoFilterを組み合わせて実現させました。試してみてください。


A列に
data1
a
b
c
ab
bc
ac
abc

とデータをセットして試してみてください。

Sub test()
  Dim rng As Range, rng2 As Range
  Cells(1, 1).AutoFilter Field:=1, Criteria1:="=a", Operator:=xlOr, _
                   Criteria2:="=b"
  Set rng = Range("A2:A100").SpecialCells(xlCellTypeVisible).Rows
  '
  Cells(1, 1).AutoFilter
  Cells(1, 1).AutoFilter Field:=1, Criteria1:="=c"
  Set rng2 = Range("A2:A100").SpecialCells(xlCellTypeVisible).Rows
  '
  Cells(1, 1).AutoFilter
  Range("A2:A100").EntireRow.Hidden = True
  Union(rng, rng2).EntireRow.Hidden = False
  Cells(1, 1).AutoFilter
End Sub

【34191】Re:サブルーチン等について
回答  kobasan  - 06/1/28(土) 8:36 -

引用なし
パスワード
   おはようございます。

オートフィルタの方を少し修正しました。
これも試してみてください。

Sub test()
  Dim rng As Range, r1 As Range, r2 As Range
  Application.ScreenUpdating = False
  If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
  Cells(1, 1).AutoFilter Field:=1
  Set rng = Range("A2", Range("A65536").End(xlUp))
  '
  Cells(1, 1).AutoFilter Field:=1, Criteria1:="=a", Operator:=xlOr, _
                   Criteria2:="=b"
  Set r1 = rng.SpecialCells(xlCellTypeVisible).Rows
  '
  Cells(1, 1).AutoFilter
  Cells(1, 1).AutoFilter Field:=1, Criteria1:="=c"
  Set r2 = rng.SpecialCells(xlCellTypeVisible).Rows
  '
  Cells(1, 1).AutoFilter
  rng.EntireRow.Hidden = True
  Union(r1, r2).EntireRow.Hidden = False
  Cells(1, 1).AutoFilter
End Sub

【34201】Re:サブルーチン等について
お礼  陸遜  - 06/1/28(土) 18:38 -

引用なし
パスワード
   ▼kobasan さん:
 ありがとうございます!!最初の質問は投稿したあと自分であれこれ試しているうちにできましたが、次のはぜんぜんわかりませんでして、非常に助かりました。こんなに複雑とは思いもよりませんでした。
 これからもよろしくお願いいたします!

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