アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもありがとうございますm(__)m

学生の成績個票をVBAを用いて、印刷しています。(以下のコードです)

Sub 正方形長方形1_Click()
a = Range("M2")
b = Range("O2")
For i = a To b
Range("B2") = i
Worksheets("印刷用1").PrintOut
Next i
End Sub

-------------------------------------------------------------------------

今度は、学生番号〇番~〇番の成績個票を、pdf出力したいのですが、どのようなコードをかけばいいのでしょうか?
ちなみに、ひとつのファイルに出力したいです。

お詳しい方、宜しくお願い致します。

A 回答 (3件)

こんにちは



>pdf出力したいのですが、どのようなコードをかけばいいのでしょうか?
既回答にあるように
 ・PDFフォーマットを指定して出力すれば良いです。
 ・その際にはファイル名や保存先を指定しておく必要があります。
ただし、1票ずつ出力していると(当然ですが)その数だけのpdfファイルができます。

>ちなみに、ひとつのファイルに出力したいです。
一つのファイルにまとめるには以下のような方法が考えられます。
 ・出力された複数のpdfファイルを、手操作編集で一つにまとめる。
 ・エクセル上で(VBA)で編集して、1ファイルにして出力する。

レイアウトもページ数も不明なので、後者について要領のみ説明しておきます。
1ファイルにするには、出力を1度にまとめてする必要があるので、一時的に内容を1ブック、あるいは1シートにまとめる必要があります。
以下は、例として1シートにまとめる場合について説明。
1)印刷用シートを一時的に作成しておきます。
 (セルの書式設定が必要なら、設定しておきます)
2)各個票を作成したら、直接出力するのではなく、印刷用シートに
 「値をペースト」で順にコピーしてゆきます。
  改ページなどの調整が必要なら、改ページ設定を行います。
3)全部の個票をまとめたら、印刷用シート全体をまとめて出力します。
4)出力終了後、印刷用シートを削除

以上で、VBAから直接1ファイルにまとめて出力することが可能ですが、前提として、1シートに全ての出力データがが納まるという仮定をしています。
(納まらないような量なら、複数シートにするか別ブックにしてしまうか)
また、個票のサイズによっては、印刷設定(=余白など)も調整する必要があるかも知れません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
当方、上記コメントをコードに表現する技術がないんです

お礼日時:2024/02/11 14:47

①印刷対象となるセルの範囲は、1ページにおさまりますか。


おさまれば、それを1シート内に複数作成し、1つのPDFにまとめることは
可能です。
②印刷対象となるセルの範囲は、どのようになっていますか。
例 1行目~17行目でA列からG列までの場合、A1:G17のように回答してください。
    • good
    • 0
この回答へのお礼

ありがとう

お礼日時:2024/02/17 11:45

Sub PDF出力()


Dim 学生番号開始 As Integer
Dim 学生番号終了 As Integer
Dim i As Integer

学生番号開始 = Range("M2").Value
学生番号終了 = Range("O2").Value

' PDF出力のためのフォルダーを指定してください
ChDir "C:\Users\YourUsername\Documents"

For i = 学生番号開始 To 学生番号終了
Range("B2").Value = i
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"学生番号_" & i & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next i
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2024/02/11 14:45

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

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


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