• ベストアンサー

VBAセルの値が指定数量に満たない時に印刷させない

皆様いつもお世話になります。 行き詰ってしまったので質問させてください。 複数セルが空白なら印刷させないコードを作ったのですが、そこへ総数が納入ロットより少ない時 と総数が納入ロットより大きい時に警告メッセージを表示して印刷させたくないのです。 もちろん総数=納入ロットは印刷します。 現状のコードでは印刷できてしまうのです。 お手数ですが、よろしくお願いいたします。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

ご質問の総数及びロットの入力セルなどの情報が記載されていないので If構文で使われているR2及びR5が該当のデータが入っているセルとして判断します。 赤枠内1行目が「If Range("R2") ~ Then」以下のようになっています。   if a >= b = c then     真の場合の処理   end if このような処理の場合、a>=bが判定された結果が=cと判定されます。 判定された結果はtrueかfalseのブール型(boolean)で返りますので、 = ""と比較結果がfalseとなり、if構文による真の処理部分は実行されません。 「条件のうちどれかに当てはまる場合」は「or(=又は)」、 「すべての条件に当てはまる場合」は「and(=且つ)」を使用します。 aとbの比較以外にaまたはbが空白の場合も真の処理を行いたい場合、   if a>=b or a="" or b="" then このようにしてください。 また、 >=は「大なりイコール」なので、同じ場合も含みます。Exit Subで処理を終わらす場合は 印刷したい場合(イコールの場合)を含めてはいけません。 よって、比較演算子は>を使用しましょう。 余談ですが、msg1がブランク以外の場合のmsg1=msg1が謎です。 詳しくはif構文及び比較演算子、論理演算子について調べてみてください。 http://www.officepro.jp/excelvba/basic/index6.html

totozaemon
質問者

お礼

eden3616さん ご丁寧にありがとうございます。 なんとなく見えてきました。 ご教授いただいた内容含め、試してみます。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

印刷は、VBAでPrintOutメソッドでやっているということか。 IF文で印刷しない、または印刷する、条件のコードを、PrintOutの前に入れたら仕舞では。 そもそもIF文のコードで質問が出る理由が、納得できない。こんなのは質問者でないと詳しく(ケースわけ)はわからない。肝心なことは、読者には、テストもできない。 PrintOutコード行の前に Msgbox "印刷" と入れる PrintOutコード行は一時的にコメントアウト(') してテストしてみたら。 ーー もう一つ、 改めて、この質問掲出後、読者の立場で、どうしたら掲出した画像を、はっきり大きくして見れるのか(見る方法ありますか)教えて。 コードがぼやけていて、わからないので、コードの添削もできない。 ーー IF文の代わりにCACE文の表現で書き換えて、心機一新してみたら。

関連するQ&A

  • VBAで複数セルの何れかが空白なら印刷しない。

    VBA初心者です。 VBAでワークシートに印刷ボタンを配置して印刷しているのですが、製品名・受注数・納期・発注番号の何れかが空白だった場合、メッセージを表示させてどの項目が空白か警告表示させて印刷させたくないのです。 複数項目が空白ならメッセージも複数表示できればありがたいです。 もちろんすべての項目が入力されていれば印刷コマンドを実行させたいです。 セルの番地は製品名がY5、受注数がY9、納期がAA9、発注番号がAA14になっています。 お分かりになられる方がいらっしゃいましたら、ご教示お願いいたします。

  • 指定の値をもつセルにジャンプ(選択)

    指定の値をもつセルにジャンプ(選択) いつもお世話になっております。 Excelを使っていまして、ふと疑問になり質問しました。 Excelのジャンプ機能の中で【空白セル】を指定できますよね。 この場合、選択領域内の空白セルが全て選択された状態で結果が返されるのですが、 これと同じような結果を【空白セル以外で】受けることはできないのかと思いました。 ?選択領域内の【指定の値をもつセル】にジャンプし、該当するセルを全て選択した状態にできないのか? 特に【=0】ぐらいは指定できてもよいのではないかとむしろ疑問になったのです。 愚考するに、[全て置換]で空白セルに書き換え、[ジャンプ]で選択する方法があるでしょう。 しかし、この方法の欠点として、選択後にはセルの数式が消去されてしまうことが挙げられます。 マクロを用いず、Excelに備わっている方法で上記のような複数セルの選択は実行可能なのでしょうか? 宜しくお願いします。

  • エクセルVBAを使って(選択したセル番地をメッセージボックスに表示させる)

    いつもお世話様になっております。 メッセージボックスに、選択されているセル番地(例えば、A1:A3)を表示させたいのですが、このコードの書き方が解りません。 どなたかお解りになる方が居られましたら、教えていただきたいと思います。 お手数をおかけいたしますが、よろしくお願いいたします。

  • エクセル2000で印刷しないセルを指定したい

    おはようございます。エクセルで印刷する時、印刷したいセルをランダムに数箇所指定したいのですが、(または印刷しないセルをランダムに指定でも良いのですが)。印刷されては困るところが何箇所かあります。使用時には普通にセル入力をして、なおかつ印刷したい箇所と、したくない箇所が点在しています。 ファイル→ページ設定→印刷範囲で複数指定しても印刷出来ません。どこかで間違っているのでしょうか。教えて下さい。わかりにくい説明でしょうが、補足しますので、よろしくお願いします。過去ログではわかりませんでした。

  • Excel VBA セルの値が数種類存在する時

    VBAのコードの書き方について教えて下さい。 セルの値が○○の時、 ・・・・・.value = "○○"  と書きますが、○○のパターンが複数存在する時は どうすればよいでしょうか。 ORなどで繋げてみたところうまくいきませんでした。 ご存知の方がいらっしゃいましたらご教示ください。 よろしくお願いします。

  • エクセルでファイル保存時にアラームを出したい

    いつもお世話になっております。 エクセル2010を使っているのですが、複数人で同じシートを使用しているのですが、データ入力後、保存する際に特定のセルが空白の時には、何らかの警告が出るようにしたいのですが。 出来れば複数個(2-3個)のセルの空白を確認出来れば理想ですが、取りあえずは特定の1個のセルが空白だったらそのまま保存できない様な仕掛けが欲しいのですが。

  • エクセル VBA 条件つきの印刷

    エクセルVBAにおいて、 例えば「セルA1が空白でないシートすべてを印刷する」 このようなコードは可能でしょうか? よろしくお願いします。 (エクセル2000)

  • EXCELであるセルだけを印刷しない

    いつもお世話になります。 EXCELの表を印刷するときにあるセルだけ印刷しないことはできますか? もちろん、そのセルにはデータが入っていて、画面では見えるけども印刷はしたくないのです。 よろしくお願いします。

  • VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。

    VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。 VBAの起動時に、指定したセルの文字をファイル名として読み取って、 そのファイル名のPDFファイルを自動印刷させたいのですが、 セルの文字を、PDFの起動パスにセットする方法が分かりませんので ご教授いただけませんでしょうか。 具体的にはこの様な処理を考えています。 A1セルの文字を、PDFのファイル名にします。 PDFファイルは、C:¥PDFファイル に保存されています。 A1に「てすと」の文字があれば、「てすと.pdf」が印刷されます。 お手数ですが宜しくお願いいたします。

  • エクセルのセル空白時にセルを色付け+メッセージを表示

    エクセルのセル空白時にセルを色付け+メッセージを表示 エクセルのセルが空白時にアラートのメッセージが上がるようにしたいと思っております。 セルが空白時に色が変わるようにはできるのですが、合わせて「○○を入力して下さい」等、 アラートのメッセージが表示できないかな・・・と考えております。 そんな事ってできるの!?と思いつつ、何だかできそうな気もしており、 一縷の望みにかけて、どなたか詳しい方教えていただけますと助かります。 よろしくお願い致します。