①印刷するマクロがあります。
②PDFに保存するマクロがあります。
②のPDFに保存する時の印刷範囲の指定を①の範囲にしたいのですがどのようにすればいいのかわかりません・・・。
ご教授いただけますでしょうか。よろしくお願いいたします。
①
Sub slctCellPrint単価()
Dim 最終セル As String
最終セル = Range("R3").Value
Range("b1", 最終セル).Select
Selection.PrintOut , , Copies:=1
End Sub
②
Public Sub pdf保存()
Dim SpecNo As String '明細NO
Dim FileName As String
SpecNo = Application.ActiveWorkbook.Worksheets("荷捌表FAX").Range("B5").Value
FileName = SpecNo & "__" & Range("S7") & "__" & Format(Now(), "yyyy-mm-dd-hh-mm")
Application.Dialogs(xlDialogSaveAs).Show FileName, &H39
End Sub
No.4
- 回答日時:
すみません。
myFolder =Range("W1").Value
If Right(myFolder,1)="\" Then myFolder & "\"
これは、変でした。オンライン書きでしたので、間違えました。
要するに、myFolderの末尾は、「\」にしてください、という意味なのに、これでは意味が違ってしまいました。
If Right(myFolder,1)<>"\" Then myFolder & "\"
右の末尾が「\」でなかったら、「\」をつけなさいというコードです。
なんどもすいません。
構文エラーと出ます・・・。
Sub pdf_Convert()
Dim SpecNo As String '明細NO
Dim strLastCell As String
Dim Rng As Range
Dim FName As String
Dim myFolder As String
With Worksheets("荷捌表FAX")
strLastCell = .Range("AI3").Value
If strLastCell = "" Then Exit Sub
Set Rng = .Range("B1", strLastCell)
.PageSetup.PrintArea = Rng.Address
SpecNo = .Range("B5").Value
myFolder = .Range("W1").Value
If Right(myFolder, 1) <> "\" Then myFolder & "\" →エラーはこの部分を指しています。
FName = myFolder & SpecNo & "_" & .Range("S7") & "_" & Format(Now(), "yyyy-mm-dd-hh-mm")
.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FName
End With
End Sub
No.3
- 回答日時:
>指定のフォルダー(W1にアドレス入力)に自動保存する場合も教えて頂ければ幸いです。
自動保存というと、本来は二つの意味がありますが、
今思いつくのは、ファイルの名前の前にフォルダー名を入れて、そのフォルダーに入れるという意味では、このようなスタイルになります。
もし、そういう意味でなかったら、またご連絡ください。
Dim myFolder As String '変数の宣言を加える
'-----------
SpecNo = .Range("B5").Value '既存の行
'この下から、差し替え
myFolder =Range("W1").Value
If Right(myFolder,1)="\" Then myFolder & "\"
FName = myFolder & SpecNo & "_" & .Range("S7") & "_" & Format(Now(), "yyyy-mm-dd-hh-mm")
p.s. 最近、私もPDF の操作をマクロでよく使っています。番号が紛らわしいのと、かなりの数量なので、Excelの一覧をダブルクリックして、PDFを開けるように変えました。
早速のお返事ありがとうございます!
変更してみたところ、
"\" Then myFolder& "\"
のmyFolderが青くなり、コンパイルエラーSub、functionまたは、Propertyが必要です。
と出まして、うまくいきませんでした・・・。
教えてくださいです。
No.2
- 回答日時:
PrintOut メソッドは Range.PrintOut と書くので
Range("b1", 最終セル).PrintOut
と書けばすっきりする。
https://msdn.microsoft.com/ja-jp/library/office/ …
PDF 出力は ●.ExportAsFixedFormat xlTypePDF, ファイルパス, xlQualityStandard, True, True のように書きます。
●の部分は Workbook, Sheet, Chart, Range のいずれかが使用可能なので
Range("b1", 最終セル).ExportAsFixedFormat xlTypePDF, ファイルパス, xlQualityStandard, True, True
と書けます。
https://msdn.microsoft.com/ja-jp/library/office/ …
両方とも同じ Range オブジェクトを使えますので、
Private Sub 印刷(aRange As Range)
aRange.PrintOut
End Sub
Private Sub PDF出力(aRange As Range, aFilePath As String)
aRange.ExportAsFixedFormat xlTypePDF, aFileName, xlQualityStandard, True, True
End Sub
というようなプロシージャを二つ書き、適宜呼び出してやればよいのではないでしょうか。
プロシージャにしなくても、Range およびファイル名を決定するコードと同じプロシージャ内に書き、要求に応じて処理を分岐してやるのでもよいかと。
No.1
- 回答日時:
こんなふうにしたらどうでしょうか?
'//標準モジュール
Sub pdf_Convert()
Dim SpecNo As String '明細NO
Dim strLastCell As String
Dim Rng As Range
Dim FName As String
With Worksheets("荷捌表FAX")
strLastCell = .Range("R3").Value '←普通はこのような書き方はしない
If strLastCell = "" Then Exit Sub
Set Rng = .Range("B1", strLastCell)
.PageSetup.PrintArea = Rng.Address
SpecNo = .Range("B5").Value
FName = SpecNo & "_" & .Range("S7") & "_" & Format(Now(), "yyyy-mm-dd-hh-mm")
.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FName
End With
End Sub
出来ました!!
ありがとうございます。
もう一つお聞きしてもよろしいでしょうか。
指定のフォルダー(W1にアドレス入力)に自動保存する場合も教えて頂ければ幸いです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2023/01/20 14:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル マクロ チェックボックス
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
太字に設定されているセルの個...
-
Excelでセルをクリックす...
-
Excelで挿入した図をセルの中央...
-
Excel ハイパーリンクのURLを別...
-
マクロを実行すると画像がズレ...
-
エクセルでの検索ボックスの作...
-
エクセルでページ数をあるセル...
-
Excelで、図形内の文字をセルに...
-
EXCELのセルや文字色の反映
-
エクセル シート保護された共...
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
クリックすると文章が表示され...
-
フォントの色を指定して削除出...
-
Excel2007 色のカウント (VBA)
-
VBA(エクセル)のコンパイルエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
Excel ハイパーリンクのURLを別...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
Excelで挿入した図をセルの中央...
-
フォントの色を指定して削除出...
-
VBA 見つからなかった時の処理
-
エクセルでの検索ボックスの作...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
-
エクセルでPDFリンクを大量...
-
【EXCEL】先週の月曜日の日付を...
-
EXCELのセルや文字色の反映
-
セルがクリックされた回数をカ...
おすすめ情報