こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

マクロで「もし空白なら」と条件をつけたいんです

Excel2000を使っている、マクロ初心者です。
質問の仕方もいまいちわかっておらず、わかりづらくてすみません。

仕事で注文管理表を作って、自分のやりたい作業ができる関数を探していたところ、マクロを使ってやるのがよいとわかったので、「自動記録」をつかって作ってみました。
注文一覧表は行ごとに商品名、列ごとにA店、B店・・・と店舗名が入っています。
そして記録されたマクロは下記です。

Sub 一覧表()
'
' 一覧表 Macro
' マクロ記録日 : 2008/5/16 ユーザー名 : -ameji-
'

'
Selection.AutoFilter Field:=5, Criteria1:="<>"
Range("B2:D100").Select
Selection.Copy
Sheets("A店").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("B3").Select
Sheets("注文一覧表").Select
Range("F2:F100").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("A店").Select
Range("F3").Select
Selection.PasteSpecial Paste:=xlPasteValues
Range("B3").Select
End Sub

このような感じで、「注文一覧表のあるシートで空白のセルを省き、各店舗用のシートの表に転記し、A店のシートのB3をアクティブにして終わり」といった流れを作りました。
これは1店舗分ですが、End Subの前に10店舗分、同じ物があります。
すべての店舗が1つ以上の商品を注文した場合はうまく作動するのですが、何も注文しなかった店舗があると、エラーになってしまいます。

そこで、指定した範囲(A店なら、注文一覧表のF2:F100)が「すべて空白なら」それに対応する店舗のシートのB3をアクティブにするだけ、「1つでも数字が入っているなら」上記のマクロを実行するようにしたいのです。
If~thenが目的にあっていそうだったので試してみましたが、条件の入れ方が間違っていたらしく、うまく出来ませんでした。

そこで皆様のお知恵をお借りしたいと思います。
よろしくお願いいたします。

投稿日時 - 2008-05-21 19:09:09

QNo.4039651

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

If Application.WorksheetFunction.CountA(Sheets("シート名").Range("f3:f100")) > 0 Then

シート名は直してください。 

 
 CountA 空白でないセルの個数を算出する。

投稿日時 - 2008-05-21 20:12:59

補足

いろいろやってみたら
教えてくださった式を勘違いしていたことに気付きました。
ちゃんと解決できました♪
ヘンな質問をしてすみませんでした。

投稿日時 - 2008-05-21 22:06:41

お礼

早速のご回答、ありがとうございます。
これはIf~then Elseでよろしいのでしょうか?
やってみたら、シートA店のB3を選択した後の
Selection.PasteSpecial Paste:=xlPasteValues
で「この操作には同じサイズの結合セルが必要です」とエラーになってしまいました。
でも貼りつけたい範囲のセルは結合されているものはありません。
なぜでしょう (/_<。)

投稿日時 - 2008-05-21 20:29:33

あなたにオススメの質問