【初月無料キャンペーン中】gooドクター

現在、印刷ボタンをEXCEL上に作成して以下のコードが入っています

Private Sub CommandButton1_Click()
Dim LastRow, R

LastRow = Worksheets("データ").Cells(Rows.Count, 1).End(xlUp).Row '---最終行を取得
For R = 2 To LastRow '---数字の転記
ActiveSheet.Cells(5, 23) = Worksheets("データ").Cells(R, 1) '---印刷
ActiveSheet.PrintOut
Next R
MsgBox "印刷しました"
End Sub

動作
1.データSheetのA列2行目以下に入力されている数字を転記
2.ActiveSheetを印刷
3.データSheetのA列の次の数字を転記
4.ActiveSheetを印刷
5.最終セルまで繰り返し

今のままでもデータセルのリストをうまく操作すれば使えるのですが
現状だとデータSheetA列先頭のセルやA列の先頭が歯抜けに数字が入力されていた場合に
空欄を転記してしまい不要な印刷を行ってしまいます。

「A列のセルが空欄の場合は処理をしない」という処理にしたく、
IF文を使うのだろうと思うところまではいけるのですが
単純にコードの使い方が悪いのでしょうがエラーで処理が進まなくなってしまいました

データSheetA列の数字を転記するときに何も入力されていないセルの場合は処理をスキップする方法がありましたら、ご教授お願いいたします。

また、最後の印刷処理をした場合に印刷した数をメッセージに空欄で飛ばした場合の数は含めずに
”◯件印刷しました”と出すことは可能でしょうか。
こちらもよい方法がありましたらお手数ですが合わせてご教授お願いいたします。

よろしくおねがいします。

gooドクター

A 回答 (1件)

こんにちは



>ータSheetA列の数字を転記するときに何も入力されていないセルの場合は
>処理をスキップする方法がありましたら
値を転記する前に、単純に値が空白かどうかを判断すればよいだけでは?
具体的には
 IF Worksheets("データ").Cells(R, 1)<>"" Then '空欄で無ければ実行
  ’転記と印刷の処理
 End If

>”◯件印刷しました”と出すことは可能でしょうか。
あらかじめ件数を数える変数を用意しておいて(例えばn)、印刷するごとにカウントを+1してゆけば、変素nの値が「○件」の◯に当たるので、これを利用して表示すれば良いです。
上記の例で言えば、「転記と印刷の処理」のところに、 n = n + 1 という形でカウントをしてゆく処理を加えておけば、「1回印刷するとnが1加算される」ことになり、印刷回数を数えることができます。
    • good
    • 1
この回答へのお礼

ありがとうございます!
参考にします!!

お礼日時:2020/06/21 20:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング