エクセルマクロに詳しい方にお伺いします。


以下のマクロは以前質問させて頂いた時の回答ですが、B列に“1”が入っている場合に
A列のNOを返すように組んでいただいたのですが、このVBAのB列に別に関数が入っていて
1以上の数字が返っている場合にA列のNOを返す様にするには何処をどう変えたら良いか
教えてください。 宜しくお願いいたします。

Option Explicit
Option Base 0

Sub test()

Dim PrintSheet As Worksheet
Dim DataSheet As Worksheet
Dim r As Long

Set PrintSheet = Worksheets("印刷用シート")
Set DataSheet = Worksheets("データシート")

' B1には"印刷したいデータ"という文字が入っていると仮定し、
' B2から始める
r = 2

' A列にデータがなくなるまでループ
Do While DataSheet.Cells(r, 1).Value <> ""
If DataSheet.Cells(r, 2).Value = 1 Then
' データシートのA列から印刷用シートのA1に転記する
PrintSheet.Cells(1, 1).Value = DataSheet.Cells(r, 1).Value

' 印刷用シートの再計算
PrintSheet.Calculate

' 印刷
PrintSheet.PrintOut
End If
r = r + 1
Loop

End Sub

回答の条件
  • 1人2回まで
  • 登録:2008/01/06 22:12:57
  • 終了:2008/01/10 18:57:23

回答(2件)

id:fuentebella No.1

fuentebella回答回数269ベストアンサー獲得回数302008/01/07 00:09:00

ポイント35pt

元のものを見てないのですが

' A列にデータがなくなるまでループ

Do While DataSheet.Cells(r, 1).Value <> ""

If DataSheet.Cells(r, 2).Value = 1 Then

' データシートのA列から印刷用シートのA1に転記する

の If DataSheet.Cells(r, 2).Value = 1 Then を

If DataSheet.Cells(r, 2).Value >= 1 Then

でいいのでは。

id:mokachan

回答を開くのが遅くなってすみません。

後で試して見ます。

ありがとうございました。

2008/01/10 18:55:47
id:Dark1984B No.2

黒ひよこ回答回数17ベストアンサー獲得回数02008/01/07 02:11:54

ポイント35pt

If DataSheet.Cells(r, 2).Value = 1 Then の行が

B列に1が入っているかの条件分岐なので

If DataSheet.Cells(r, 2).Value => 1 Then に変更すれば良いかと

  • id:devichan
    確認したいこともありますので、
    http://q.hatena.ne.jp/1201688849
    のコメントをONにしてください。

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

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

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

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