回答編集履歴

3

補足を追加

2019/03/04 01:59

投稿

kenshirou
kenshirou

スコア772

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ### 追記
12
12
 
13
- ちょっと時間があったので、提示頂きましたstackoverflowサイトに記載のサンプルを試してみました。
13
+ ちょっと時間があったので、提示頂きましたstackoverflowサイトに記載のサンプル(一番上の回答)を試してみました。
14
14
 
15
15
  とりあえず、このサイトの方法で、保存時イベントによるメッセージ表示を確認しました。
16
16
 

2

文言の修正

2019/03/04 01:59

投稿

kenshirou
kenshirou

スコア772

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- ・まず、適当なWordを用意します。
21
+ ・まず、適当なWordファイルを用意します。
22
22
 
23
23
  Wordの「開発」より「Visual Basic」を選び、用意したWordファイルの名前がついているプロジェクトに対して、EventClassModuleという名前のクラスモジュールを作成します。
24
24
 

1

追記

2019/03/04 01:50

投稿

kenshirou
kenshirou

スコア772

test CHANGED
@@ -5,3 +5,53 @@
5
5
  「word イベント DocumentBeforeSave」で検索すると参考になりそうなページが色々とヒットしますので、まずはDocumentBeforeSaveを検知する方法を確認してください。
6
6
 
7
7
  イベントを検知できるようになれば、そのイベントハンドラでPDF保存の処理を行えばよいです。
8
+
9
+
10
+
11
+ ### 追記
12
+
13
+ ちょっと時間があったので、提示頂きましたstackoverflowサイトに記載のサンプルを試してみました。
14
+
15
+ とりあえず、このサイトの方法で、保存時イベントによるメッセージ表示を確認しました。
16
+
17
+ 私の環境はWord2016ですので、お使いの環境によっては若干操作が異なるかも知れませんが、試した手順を示します。
18
+
19
+
20
+
21
+ ・まず、適当なWordを用意します。
22
+
23
+ Wordの「開発」より「Visual Basic」を選び、用意したWordファイルの名前がついているプロジェクトに対して、EventClassModuleという名前のクラスモジュールを作成します。
24
+
25
+ 対象プロジェクトの右クリックで「挿入」-「クラスモジュール」を選択すると「Class1」というクラスモジュールが生成されますが、プロパティウィンドウでクラス名を変えることができます。
26
+
27
+
28
+
29
+ ・上記で作成したクラスモジュールに、参考サイトに記載の「Public WithEvents App As Word.Application」で始まるコードサンプルを貼り付けます。
30
+
31
+
32
+
33
+ ・次に、mdlEventConnectという名前の標準モジュールを作成します。
34
+
35
+ 上記クラスモジュールの作成方法に倣いますが、こちらは「クラスモジュール」ではなく、「標準モジュール」とします。
36
+
37
+
38
+
39
+ ・上記で作成した標準モジュールに、参考サイトに記載の「Dim X As New EventClassModule」で始まるコードサンプルを貼り付けます。
40
+
41
+
42
+
43
+ ・最後に、すでに存在するThisDocumentに、参考サイトに記載の「Private Sub Document_New()」で始まるコードサンプルを貼り付けます。
44
+
45
+
46
+
47
+ このコードを含むWordファイルを保存します。
48
+
49
+ (マクロ包含形式*.docmまたは旧形式*.doc)
50
+
51
+ 一度このWordファイルを閉じてから再度Wordファイルを開くと、保存時イベントによりメッセージが表示されました。
52
+
53
+
54
+
55
+ これがうまくいったら、保存時イベントでPDFエクスポートを行う、という方法でいけるのでは、と思います。
56
+
57
+ ちなみに、DocumentBeforeSaveイベントの第2引数「SaveAsUI」には、上書き保存でFalse、名前を付けて保存でTrueが渡されますので、必要に応じて活用ください。