以前に、『EXCELでNo.を変えて印刷したい』というタイトルで質問をしてVBAの記述を教えてもらって解決したのですが、引き続き利用することになりできればVBAの画面からではなくEXCEL上でNo.を指定して印刷をしたいのですが、どうすればいいでしょうか?
im i As Integer
For i = 1 To 500 ←この部分を印刷指定ボタンを押せば番号を入力できるようにしたい!(例:管理No.0100~0120と入力したら管理No.が0100~0120の20枚が印刷される)
Range("A1").Cells = "No." & Format(i, "0000")
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
Next i
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
前回の質問の内容をみて、本来はトラブルの元になるので、書いてはいけないことかもしれませんが、加工するなら、#3のzap35さんのコードを参照してください。私自身が書こうと思いましたが、完成度が高いので、そのまま使わせていただくことにしました。(zap35さん、無断ですみません)
http://oshiete1.goo.ne.jp/qa2675415.html?
ANo.2
Sub PrintMacroR()
'http://oshiete1.goo.ne.jp/qa2675415.html zapさんのコードを加工
Dim i As Integer, ws As Worksheet, pr As Integer, pr1, pr2
pr1 = Application.InputBox(prompt:="最初の数を入力してください,0はいりません", Type:=1)
If VarType(pr1) = vbBoolean Then Exit Sub
pr2 = Application.InputBox(prompt:="最後の数を入力してください,0はいりません", Type:=1)
If VarType(pr2) = vbBoolean Then Exit Sub
If pr2 >= pr1 And (pr2 - pr1) >= 0 Then
pr = pr2 - pr1 + 1
'キャンセル出来るようにする
If MsgBox("No." & Format$(pr1, "0000") & " ~No." & Format$(pr2, "0000") & _
"の" & CStr(pr) & "部 を印刷します", vbOKCancel) = vbCancel Then
Exit Sub
End If
For i = 1 To pr
For Each ws In ActiveWindow.SelectedSheets
ws.PageSetup.RightHeader = ""
ws.PageSetup.RightHeader = "No." & Format$(pr1 + i - 1, "0000")
Next ws
'プレビュー(テスト用)
'ActiveWindow.SelectedSheets.PrintPreview
'印刷
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'ウェートを置く(DoEvents は意味がありません)
'Application.Wait Now() + TimeValue("00:00:02") '2秒
Next i
End If
End Sub
ウェートを置くというのは、プリンタに一気にデータを送ってしまわないようにするためです。「'」を取れば、働きます。プリンタの処理スピードに合わせて入れたほうがよい場合があります。100枚程度では、今のWinXPとの組み合わせでは問題ないはずです。
>管理No.が0100~0120の20枚が印刷される
20枚ではなく、21枚のはずです。
ヘッダーは、A1なら、左上になっていましたが、元のご質問にあわせて、右上端にしました。違うようでしたら、.HeaderRight を .HeaderLeft に直してください。
No.2
- 回答日時:
こんな感じでしょうか。
Sub test01()
Dim i As Integer, x As Integer, y As Integer
x = Application.InputBox("管理ナンバー何番から印刷しますか?")
y = Application.InputBox("管理ナンバー何番まで印刷しますか?")
For i = x To y
Range("A1").Cells = "No." & Format(i, "0000")
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
Next i
End Sub
No.1
- 回答日時:
(1)InputBoxを使う
n=InputBox("始まり")
m=InputBox("終わり")
(2)セル(例えば)D1,F1を使う。
C1 印刷始点,
E1 終わり
と見出しをいれ,
印刷実行までに、値をD1,F1にいれ
n=Range("D1").Value
m=Range("D1").Value
(3)フォームのテキストボックス利用
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Excel(エクセル) 請求書と領収書の作成 4 2022/11/10 16:13
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) Excel VBA Backstageビューでの印刷 2 2022/06/03 16:56
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
国語辞典が第10版が第12版にな...
-
PDFファイルがカラー印刷できない
-
【EXCEL】【VBA】空欄は飛ばし...
-
特定のファイルのみ印刷がされ...
-
PDFファイルを印刷すると黒くなる
-
メールの画像が印刷できません。
-
テプラー:KING JIM SR720 連...
-
PDFの印刷が途中で終わってしま...
-
会社に提出する地図(自宅から...
-
バックグラウンドとは?何度再...
-
エクセルで複数ページを1枚に...
-
OutLookメールの一部分だけを印...
-
Windows Media Player画面の印刷
-
PDF印刷 一枚だけカラーにする方法
-
VLOOKUPとVBAを使っての複数の...
-
横向き印刷を固定したいです。
-
土日祝を省いた印刷
-
Webページの印刷時、必要な部分...
-
エクセルを使って名簿を連続印...
-
印刷する時に出るファイル名を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のファイルのみ印刷がされ...
-
PDFファイルがカラー印刷できない
-
会社に提出する地図(自宅から...
-
パソコンが壊れて肝心なときに...
-
【EXCEL】【VBA】空欄は飛ばし...
-
PDFファイルを印刷すると黒くなる
-
テプラー:KING JIM SR720 連...
-
メールの画像が印刷できません。
-
エクセルを使って名簿を連続印...
-
手紙で字が汚い時の添え書きは?
-
Twitterの投稿を印刷コピーしたい
-
PDF印刷 一枚だけカラーにする方法
-
PDFの印刷が途中で終わってしま...
-
バックグラウンドとは?何度再...
-
印刷の行間が飛んで印刷される
-
PVC(ポリ塩化ビニール)の有害...
-
Wordで複数枚印刷しようと...
-
エクセルで複数ページを1枚に...
-
Windows 10 印刷出来ない
-
エクセルでコメント印刷すると...
おすすめ情報