[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ設定でPDFに変換』(soumu)
先週末にここの掲示板でご質問させてもらいました。
その時は本当に大変助かりました。ありがとうございます。
その後、そのファイルを使った書式を社内で提案したのですが
これをPDFにできないの?と言われてしまいました。
その時の質問は以下です。
☆☆☆ EXCELファイルで「現在のページを印刷」「カーソルのあるページを印刷」
という設定をしたいのですが、そういった機能がWORDにしかありません。
EXCELでも同じような事ができますでしょうか? ☆☆☆
その際、たいへん丁寧にお答え頂き、マクロの知識のない私は本当に感激しました。
次に教えて頂いたマクロを使ってPDFファイルに変換したいのですが
出来れば、印刷orPDF の選択ができればなおありがたいです。
どなたかご存知の方がいらっしゃればご教授願います。
何卒よろしくお願い申し上げます。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
EXCEL ファイルを PDF として保存であれば、2010 での標準機能、2007 でもアドインの追加 でできますが、今回はページ単位での保存でしょうか。 http://www.microsoft.com/ja-jp/download/details.aspx?id=7
そうであれば、PDF 印刷などを利用した実装になると思いますので、こういったあたりの 利用になると思いますが、それは可能でしょうか。 http://freesoft-100.com/pasokon/pdf_maker.html
(Mook) 2014/10/23(木) 14:40
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Replace(ActiveWorkbook.FullName, ".xlsm", ".pdf"), _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=p, To:=p, _ OpenAfterPublish:=True (???) 2014/10/23(木) 14:43
2007でもSP2以降であればアドインはいらない。
また、2007・2010とも名前を付けて保存でPDF形式を選択後、オプションで「選択した部分」「ブック全体」「選択したシート」を選択できる。
上記を、マクロ記録したところ
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "パス+ファイル名", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True で、選択部分、
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\kanzawa\Documents\PDFテスト3.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True で、ブック全体
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\kanzawa\Documents\PDFテスト1.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ True で、シートとなった。 (マルチーズ) 2014/10/23(木) 14:55
Sub 現在のページを印刷orPDF変換() Dim myP As Long
myP = 現在のページ 印刷orPDFを選択 myP, myP
End Sub
Private Sub 印刷orPDFを選択(開始P As Long, 終了P As Long) Dim msg As String Dim ファイル名 As String
msg = "印刷ならば「はい」を、PDFなら「いいえ」をクリック" ファイル名 = Format(Now, "yymmdd_hhmmss") & ".pdf"
With ActiveSheet If MsgBox(msg, vbYesNo) = vbYes Then .PrintOut From:=開始P, To:=終了P Else ファイル名 = Application.GetSaveAsFilename _ (InitialFileName:=ThisWorkbook.Path & "\" & ファイル名, _ FileFilter:="PDF Files (*.pdf), *.pdf")
If ファイル名 <> "False" Then .ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=ファイル名, _ From:=開始P, To:=終了P End If End If End With
End Sub
Private Function 現在のページ() Dim v As Long Dim i As Long Dim r As Long, c As Long Dim myY As Long, myX As Long Dim p As Long
v = ActiveWindow.View ActiveWindow.View = xlPageBreakPreview
r = ActiveCell.Row c = ActiveCell.Column
With ActiveSheet myY = 1 If .HPageBreaks.Count > 0 Then For i = 1 To .HPageBreaks.Count If r < .HPageBreaks(i).Location.Row Then Exit For myY = myY + 1 Next End If myX = 1 If .VPageBreaks.Count > 0 Then For i = 1 To .VPageBreaks.Count If c < .VPageBreaks(i).Location.Column Then Exit For myX = myX + 1 Next End If If .PageSetup.Order = xlDownThenOver Then p = (.HPageBreaks.Count + 1) * (myX - 1) + myY Else p = (.VPageBreaks.Count + 1) * (myY - 1) + myX End If End With
ActiveWindow.View = v
現在のページ = p
End Function
(マナ) 2014/10/25(土) 14:32
マクロを勉強しないといけないとつくづく感じました。。
私のやりたい事が完璧にできました。
本当にありがとうございます。
お礼が遅くなり誠に申し訳ございません。
(soumu) 2014/11/06(木) 14:42
皆様の親切なご回答にいつも助けられております。
ありがとうございます!
またまた厚かましく質問をさせて頂きたいのですが
以前に「マクロ設定でPDFに変換」でご回答いただきました。
その後、また無理難題を言われ困っております。
マナ様にご回答いただきました
"印刷ならば「はい」を、PDFなら「いいえ」をクリック"
の部分で、印刷の場合は枚数を2枚印刷したい、尚2枚目は控えとして
ファイリングしたいので2枚名には(控)の文字を入れたいと言われてしまいました。
印刷時にスタンプを押すなどのマクロなどあるのでしょうか?
そして、印刷時だけ2枚印刷するというような設定などができるのでしょうか。。
たいへん厚かましいお願いですが、お手すきの時に教えて頂ければ
大変ありがたいです。
何卒よろしくお願い申し上げます。
(soumu) 2014/11/20(木) 16:05
なので、(控)の文字をどこかのセルにセット後に1ページ印刷。
次に(控)の文字を消してから、1ページ印刷してはいかがでしょう?
ご要望では1ページ目そのままで2ページ目が控えですが、印刷が終わったときに
(控)の文字が消えていたほうが良いと思いましたので、逆に印刷する案としています。
(???) 2014/11/20(木) 17:33
With ActiveSheet If MsgBox(msg, vbYesNo) = vbYes Then .PrintOut From:=開始P, To:=終了P .PageSetup.RightHeader = "&72&K02-008(控)" .PrintOut From:=開始P, To:=終了P .PageSetup.RightHeader = "" Else
(マナ) 2014/11/20(木) 23:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.