• ベストアンサー

エクセルVBAでの条件処理

エクセルのVBAについてですが、 指定された列に情報が何もないときは、 次の処理。 指定列に情報が一つだけの場合は そのひとつだけの情報をコピーして、 別シートへ貼り付け。 指定列に情報が複数ある時は、 すべてを選択コピーして、 上記と同様のシートへ付け足して貼り付け。 …というような処理を行いたいのですが、 構文がわかりません。 これが出来ないおかげで、情報が何もないときに、 シート全体をコピーして貼り付けるため、 エラーが発生します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 情報とは何を意味するのか分かりませんが、ただ、ワークシート関数の Count を使えばよいのではありませんか? If WorksheetFunction.Count(Columns(1))>0 Then ' -- 実行 -- End If End プロパティの場合は、最後に、セルが空か調べる必要があります。 SpecialCells を使う方法もありますね。 >シート全体をコピーして貼り付けるため、エラーが発生します。 でも、エラーがなぜ出るのでしょうか、良く分からないですね。

gizmo_s
質問者

お礼

A列のセルが空の場合、 A列にひとつだけ A列に複数とで、 別の処理をしたかったんですが、 ヒントもらって自己解決しました。 ありがとうございました。

その他の回答 (1)

回答No.1

質問の状況がいまいち理解できないのですが、以下のような方法はどうですか? 指定列はA列、"AAA"シートから"BBB"シートへ貼りつけています。 A列に何もなければ、何のIF文の中身(コピー)は行いません。 最終行を取得し、それが1行目なら何の情報もないという判断です。 Sub test() Dim lastrow As Integer lastrow = Sheets("AAA").Range("A65536").End(xlUp).Row If lastrow <> 1 Then Sheets("AAA").Range("A1:A" & lastrow).Copy Sheets("BBB").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial End If End Sub

関連するQ&A