下はエクセルファイルの印刷ためのコントロールボタンに組んであるコードです。
----------------------
Sub ボタン6338_Click()
Dim k As Integer
For k = 1 To 3 'Sheet1から3までループ
Worksheets(k).Select 'シートを選択
Select Case k '何枚目のシートかによって処理を変える
Case 1 'Sheet1 の時
ActiveSheet.PrintOut '印刷
Case 2 'Sheet2の時
ActiveSheet.PrintOut from:=1, To:=2 '1頁から2頁を印刷
Case 3 'sheet3の時
End Select
Next k
End Sub
---------------------
このコードの中に更に「シート3は、セルG10が日曜日になっている時は、印刷しない」、としたいのですが、どのようにすればよいでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
再びすみません。
G10が日曜なら印刷しない、ということだと、
それ以外なら印刷する、のでいいですよね?
だったら、そのIf節内で分岐させないとダメですね。
If Weekday(Range("G10").Value<>vbSunday Then
ActiveSheet.PrintOut
Else
End If
ですかね。
Elseのとこ、つまり、日曜の時は何もしない、
としてます。
まあElseは無くても回ると思いますが。
何度もありがとうございます。
なかなかうまくいきません。
今は、シート3が、日曜でも、そうでなくても印刷してしまいます。
なぜでしょうか?
---------------------------------------------
Sub ボタン_Click()
Dim k As Integer
For k = 1 To 3 'Sheet1から3までループ
Worksheets(k).Select 'シートを選択
Select Case k '何枚目のシートかによって処理を変える
Case 1 'Sheet1 の時
ActiveSheet.PrintOut '印刷
Case 2 'Sheet2の時
ActiveSheet.PrintOut from:=1, To:=2 '1頁から2頁を印刷
Case 3 'sheet3の時
If Weekday(Range("G10").Value) <> vbSunday Then
ActiveSheet.PrintOut
Else
End If
End Select
Next k
End Sub
--------------------------------------------------------
No.2
- 回答日時:
念のため。
G10が、「日曜日」という文字でなく、日付(シリアル値)になって
いるならば、If文は以下で試してください。
Case 3
If Weekday(Range("G10").Value)<>vbSunday Then
回答ありがとうございます。
おっしゃる通り、シリアル値です。
なんですが、
「セレクトケースに対するエンドセレクトがありません」とコンパイルエラーが出ます。
下記がコードです。
-------------------------------------------------
Sub ボタン_Click()
Dim k As Integer
For k = 1 To 3 'Sheet1から3までループ
Worksheets(k).Select 'シートを選択
Select Case k '何枚目のシートかによって処理を変える
Case 1 'Sheet1 の時
ActiveSheet.PrintOut '印刷
Case 2 'Sheet2の時
ActiveSheet.PrintOut from:=1, To:=2 '1頁から2頁を印刷
Case 3 'sheet3の時
If Weekday(Range("G10").Value) <> vbSunday Then
End Select
Next k
End Sub
------------------------------------------------
「If then」 の受けがないとかでしょうか?
No.1
- 回答日時:
>「シート3は、セルG10が日曜日になっている時は、印刷しない」
セルG10が日曜日でないときに印刷する、と考えれば良いです。
Case 3 'sheet3の時
If Range("G10").Value <> "日曜" Then
ActiveSheet.PrintOut '印刷
End If
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- プリンタ・スキャナー 2台のプリンターでそれぞれ異なる様式の帳票を印刷したい。 2 2022/09/06 10:07
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSで設定した帳票の用紙サ...
-
IEブラウザの印刷機能を使え...
-
印刷ダイアログを表示させない方法
-
VBからプリンタに出力する時に...
-
プログラムからプリンタジョブ...
-
マクロの修正方法の質問です。
-
ウェブ上の印刷について
-
VBAで印刷スプール終了の判定を...
-
連続印刷中のMsgBox
-
プリンターを指定して印刷するには
-
違うフォーマットの宛名印刷
-
VBSでExcelファイル印刷時のプ...
-
VBscriptでPDFファイルを直接印...
-
印刷要求順番と印刷出力順番が...
-
プリンタの印刷ジョブを削除し...
-
リッチテキストファイルの印刷
-
VB6からACCESSのレポートを印...
-
ユーザーフォームのテキスト印刷
-
vba 時間の引き算 例えば 15:00...
-
意味不明の実行時エラーで困っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
印刷要求順番と印刷出力順番が...
-
ACCESSで設定した帳票の用紙サ...
-
vbaでPDFファイルが印刷されない
-
プリンターを指定して印刷するには
-
印刷ダイアログを表示させたくない
-
VBAで不特定枚数印刷をしたいで...
-
VBAにて指定したセルをプルダウ...
-
VB.NET+ActiveReports で印刷...
-
ActiveReportsを使って[印刷ダ...
-
VBscriptでPDFファイルを直接印...
-
PDFファイルを印刷し終了するには
-
webページの印刷制限について
-
イベントプロシージャ 印刷が...
-
クリレポのプリンタ設定について
-
両面印刷設定方法について
-
ファイルのパス指定での印刷方法
-
Accessフォームで全レコードを...
-
VBSでExcelファイル印刷時のプ...
-
VBAで印刷スプール終了の判定を...
おすすめ情報
エンドセレクトの前、Thenの後にエンドイフを入れると成立しました。
初歩的な事聞いてすみません。
これであってますかね?
---------------------------------
~
Case 3 'sheet3の時
If Weekday(Range("G10").Value) <> vbSunday Then
end If
End Select
Next k
End Sub
------------------------------------------------