
①印刷するマクロがあります。
②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で質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel2007 色のカウント (VBA)
-
クリックすると文章が表示され...
-
エクセル 数字をすべて○などの...
-
エクセルでの検索ボックスの作...
-
エクセル マクロ "シートの名...
-
エクセルのマクロで図形の挿入...
-
Excel2003,2007の作業です
-
VBAで指定範囲内に指定した数字...
-
エクセルでの特定位置のセル内...
-
エクセルにて、クリックした場...
-
フィルター後表示されている箇...
-
Excelでマクロを設定したいです...
-
マクロで文字と数字のセルを連...
-
マクロ(VBA)を教えてください。
-
エクセル365 セルの文字をクリ...
-
【wordマクロ】表のParagraphメ...
-
エクセルの選択セルに色を付け...
-
エクセルで3 hr 9 minのように...
-
エクセルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
Excelで、図形内の文字をセルに...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
Excel ハイパーリンクのURLを別...
-
マクロを実行すると画像がズレ...
-
太字に設定されているセルの個...
-
Excel2007 色のカウント (VBA)
-
フォントの色を指定して削除出...
-
エクセルVBA
-
Excel:セルの値(文字列)を数...
-
エクセル 未入力セルがあると...
-
現在のセルの位置を返す関数は...
-
エクセルでPDFリンクを大量...
-
セルの内容をテキストボックス...
-
シート保護とグループ化機能を...
-
ページ内ハイパーリンクの表示...
-
セルがクリックされた回数をカ...
おすすめ情報