Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


87 / 13645 ツリー ←次へ | 前へ→

【82040】PDF出力した際のファイル名につきまして hamil 22/6/22(水) 1:10 質問[未読]
【82041】Re:PDF出力した際のファイル名につきまして マナ 22/6/23(木) 9:17 発言[未読]
【82042】Re:PDF出力した際のファイル名につきまして hamil 22/6/23(木) 9:34 回答[未読]
【82043】Re:PDF出力した際のファイル名につきまして マナ 22/6/23(木) 18:15 発言[未読]
【82044】Re:PDF出力した際のファイル名につきまして hamil 22/6/23(木) 20:17 回答[未読]
【82045】Re:PDF出力した際のファイル名につきまして マナ 22/6/23(木) 21:23 発言[未読]
【82046】Re:PDF出力した際のファイル名につきまして hamil 22/6/23(木) 21:30 回答[未読]
【82047】Re:PDF出力した際のファイル名につきまして マナ 22/6/23(木) 21:48 発言[未読]
【82048】Re:PDF出力した際のファイル名につきまして hamil 22/6/23(木) 22:14 お礼[未読]
【82049】Re:PDF出力した際のファイル名につきまして マナ 22/6/23(木) 22:28 発言[未読]
【82050】Re:PDF出力した際のファイル名につきまして hamil 22/6/23(木) 23:29 お礼[未読]

【82040】PDF出力した際のファイル名につきまして
質問  hamil  - 22/6/22(水) 1:10 -

引用なし
パスワード
   仕事で、Excelで差し込み印刷をPDFにて連続出力する必要があり、下記のサイトにて公開されているマクロを使用しました。

web-breeze.net/excel-inset-pdf/

無事、PDF出力できたのですが、ファイル名に文字を入れたく(例: 表1など)、Excelの該当セルを入力して、再出力したところ、マクロにてエラーが出てしまいました。

どのようにマクロを修正すれば良いのかご教示頂きたく、宜しくお願い致します。

【82041】Re:PDF出力した際のファイル名につきまし...
発言  マナ  - 22/6/23(木) 9:17 -

引用なし
パスワード
   ▼hamil さん:

>マクロにてエラーが出てしまいました。

どんなマクロですか。。

【82042】Re:PDF出力した際のファイル名につきまし...
回答  hamil  - 22/6/23(木) 9:34 -

引用なし
パスワード
   ▼マナ さん:
>▼hamil さん:
>
>>マクロにてエラーが出てしまいました。
>
>どんなマクロですか。。


マナさん
ありがとうございます!以下となります。

Option Explicit

Sub 一括PDF出力()

  ' 変数宣言
  Dim ws帳票 As Worksheet: Set ws帳票 = Worksheets("帳票")
  Dim ws台帳 As Worksheet: Set ws台帳 = Worksheets("台帳")
  Dim 台帳最終行 As Long: 台帳最終行 = ws台帳.Range("A1").CurrentRegion.Rows.Count
  Dim i As Long
  
  ' 一括出力対象データ数の確認
  Dim 出力データ数 As Long: 出力データ数 = 0
  For i = 2 To 台帳最終行
    If ws台帳.Cells(i, 2).Value = "Y" Then
      出力データ数 = 出力データ数 + 1
    End If
  Next
  
  ' ユーザーに処理続行の確認
  If 出力データ数 > 0 Then
    Dim rc
    rc = MsgBox(出力データ数 & "件のデータをPDF出力します。よろしいですか?", vbYesNo)
    If rc = vbNo Then
      MsgBox ("処理を中断しました。")
      Exit Sub
    End If
  Else
    ' 対象データなしの場合は処理終了
    MsgBox ("出力対象のデータがありません。")
    Exit Sub
  End If
  
  ' PDF出力処理
  Dim 管理番号 As Long
  For i = 2 To 台帳最終行
    If ws台帳.Cells(i, 2).Value = "Y" Then
      管理番号 = ws台帳.Cells(i, 1).Value
      ws帳票.Cells(2, 1).Value = 管理番号
      ws帳票.ExportAsFixedFormat _
          Type:=xlTypePDF, _
          Filename:=ThisWorkbook.Path & "\PDF\" & 管理番号 & ".pdf"
    End If
  Next
  
  ' 完了メッセージの表示
  MsgBox (ThisWorkbook.Path & "\PDF" & " にPDFファイルを出力しました。")
End Sub

【82043】Re:PDF出力した際のファイル名につきまし...
発言  マナ  - 22/6/23(木) 18:15 -

引用なし
パスワード
   ▼hamil さん:

エラーになったコードを教えてください。

【82044】Re:PDF出力した際のファイル名につきまし...
回答  hamil  - 22/6/23(木) 20:17 -

引用なし
パスワード
   ▼マナ さん:
>▼hamil さん:
>
>エラーになったコードを教えてください。

マナさん

↓の「管理番号=ws台帳、、、」の箇所にデバッグで表示でます。

PDF出力処理
  Dim 管理番号 As Long
  For i = 2 To 台帳最終行
    If ws台帳.Cells(i, 2).Value = "Y" Then
      管理番号 = ws台帳.Cells(i, 1).Value
      ws帳票.Cells(2, 1).Value = 管理番号

【82045】Re:PDF出力した際のファイル名につきまし...
発言  マナ  - 22/6/23(木) 21:23 -

引用なし
パスワード
   ▼hamil さん:
>
>↓の「管理番号=ws台帳、、、」の箇所にデバッグで表示でます。

そのときの ws台帳.Cells(i, 1).Value の値はどうなっていますか

【82046】Re:PDF出力した際のファイル名につきまし...
回答  hamil  - 22/6/23(木) 21:30 -

引用なし
パスワード
   ▼マナ さん:
>▼hamil さん:
>>
>>↓の「管理番号=ws台帳、、、」の箇所にデバッグで表示でます。
>
>そのときの ws台帳.Cells(i, 1).Value の値はどうなっていますか

マナさん

「1001」や「100」とかの数字のみであれば問題なく動くのですが、「予備01」など、文字プラス数字などにすると、エラーが出てしまいます。

【82047】Re:PDF出力した際のファイル名につきまし...
発言  マナ  - 22/6/23(木) 21:48 -

引用なし
パスワード
   ▼hamil さん:

Dim 管理番号 As String

でどうなりますか

【82048】Re:PDF出力した際のファイル名につきまし...
お礼  hamil  - 22/6/23(木) 22:14 -

引用なし
パスワード
   ▼マナ さん:
>▼hamil さん:
>
>Dim 管理番号 As String
>
>でどうなりますか

マナさん

出来ました!!!ありがとうございます!!!
後学のために教えて欲しいのですが、これは何故変更したことで出力可能になったのですか??

【82049】Re:PDF出力した際のファイル名につきまし...
発言  マナ  - 22/6/23(木) 22:28 -

引用なし
パスワード
   ▼hamil さん:

Dim 管理番号 As Long

これだと、管理番号は整数という意味になるので
「予備01」のような文字列を代入しようとしてエラーになったのです。

【82050】Re:PDF出力した際のファイル名につきまし...
お礼  hamil  - 22/6/23(木) 23:29 -

引用なし
パスワード
   ▼マナ さん:
>▼hamil さん:
>
>Dim 管理番号 As Long
>
>これだと、管理番号は整数という意味になるので
>「予備01」のような文字列を代入しようとしてエラーになったのです。

マナさん

そうだったんですね。。
本当にありがとうございました!!

87 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free