質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Q&A

解決済

2回答

2096閲覧

VBAでExcelから読取り専用PDFを出力したい

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

0グッド

2クリップ

投稿2020/11/06 04:43

VBAにてExcelに帳票を作成後、その帳票を読取り専用(保存はできない仕様)としてPDF出力・表示したいです。
現在はネット検索で出てくる一般的なPDF出力処理を記載し正常に動作していますが、このソースに追加記載で済むのか、そもそも読み取り専用でのPDF出力が可能なのか、分かる方がいれば教えていただければと思います。

下記ソースのファイル名等は簡易的なものに代替しています。

VBA

1Dim str_pdf_file As String 2Dim obj_WSH As New WshShell 3Workbooks(book1).Activate 4 str_pdf_file = obj_WSH.SpecialFolders("Desktop") & "\帳票.pdf" 5 Workbooks(book1).ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=str_pdf_file

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/11/06 05:47

ExcelでPDFを保存する時に読み取り専用という設定はできるんでしょうか
退会済みユーザー

退会済みユーザー

2020/11/06 05:52

こちらは修正依頼ということでしょうか。
y_waiwai

2020/11/06 05:55

いや、単なる質問です
退会済みユーザー

退会済みユーザー

2020/11/06 06:03

誤認識失礼いたしました。 ExcelからPDFへ「エクスポート」と「印刷のPDF出力」で確認しましたが、そのような設定箇所は見当たりませんでした。 読み取り専用設定は、PDFのいわゆる「プロパティ設定」に値すると認識していますが、そちら方面で調べてみましても有効な情報は見つかっていません。 本件利用者の要望ではありますが、本仕様がそもそも物理的に可能なのか否かということから不明瞭なのが現状です。
guest

回答2

0

ベストアンサー

PDFを読み取り専用にするには PDF にセキュリティを設定する必要がありますが、ExcelのみではPDFへのセキュリティ設定はできない模様です。
「Excel VBA PDFセキュリティ設定」などでググっていただくと、フリーソフトを使ったり、有償版のAcrobatを使ったりする方法が見つかりますので、ご確認ください。

投稿2020/11/09 15:47

segavvy

総合スコア958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/11 01:35

ご回答ありがとうございます。 私も調べてみましたが、エクセルのみでは難しいようですね。 利用者へこの旨伝えたところ、ご理解いただき本仕様は不要となりました。 有難うございました。
segavvy

2020/11/11 04:11

いえいえ、お役に立てたようでしたら良かったです!
guest

0

原理として、ほぼ全ての方法は大体同じです、ただ使った道筋がそれぞれですね、例えばとあるコンポーネントを使い、コードでExcelからPDFに変換することができます。無料で使用できるSpire.Xlsを例にして説明しようと思います。コードは以下の通りです:

using

1using System.Collections.Generic; 2using System.Linq; 3using System.Text; 4using Spire.Xls; 5 6namespace ToPDF 7{ 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 Workbook workbook = new Workbook(); 13 workbook.LoadFromFile("Sample.xlsx", ExcelVersion.Version2010); 14 workbook.SaveToFile("result.pdf", Spire.Xls.FileFormat.PDF); 15 } 16 } 17}

こうするとうまくいけるはずです、お試してください。

投稿2021/11/22 01:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問