アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

表題を目的にNETで調べてみたらズバリのコードが見つかったのですが、
https://www.wordvbalab.com/code/12204/

これをコピペして実行させると
5行目の
> Dim myDoc As Document 'Wordファイルのオブジェクト
で止まって
>ユーザ定義型は定義されていません
とエラーになるのですが、どこを変えれば良いのでしょう?

Sub フォルダ内のWordファイルをPDFにする()

Dim fld As FileDialog 'フォルダ選択のダイアログ表示用
Dim myFileName As String 'Wordファイル名
Dim myFolderPath As String 'Wordファイル保存先のフォルダパス
Dim myFilePath As String 'Wordファイル/PFDファイルのパス
Dim myDoc As Document 'Wordファイルのオブジェクト
Dim intPos As Integer 'Wordファイル名取得用のピリオドの位置

'-------------------------------------------
'フォルダの選択
'-------------------------------------------
Set fld = Application.FileDialog(msoFileDialogFolderPicker)
If fld.Show = 0 Then Exit Sub

myFolderPath = fld.SelectedItems(1)
myFileName = Dir(myFolderPath & "\*.doc*")

If myFileName = "" Then
MsgBox "選択したフォルダ内に、Wordファイルがありません。"
Exit Sub
End If

'-------------------------------------------
'WordファイルをPDFファイルに変換
'-------------------------------------------
Do While myFileName <> ""

'Wordファイルを開く(非表示)
myFilePath = myFolderPath & "\" & myFileName
Set myDoc = Documents.Open(FileName:=myFilePath, Visible:=False)
DoEvents

'拡張子のない名称を取得
intPos = InStrRev(myFileName, ".")
myFileName = Left(myFileName, intPos - 1)

'PDF形式で保存(ファイル名先頭に「PDF_」と挿入)
myDoc.ExportAsFixedFormat _
OutputFileName:=myFolderPath & "\PDF_" & myFileName & ".pdf", _
ExportFormat:=wdExportFormatPDF
DoEvents

'Wordファイルを閉じる
myDoc.Close wdDoNotSaveChanges
DoEvents

'次のWordファイルを検索
myFileName = Dir()

Loop

Set myDoc = Nothing
Set fld = Nothing

End Sub

A 回答 (3件)

VBAの画面で「ツール」→「参照設定」



チェックボックスが並んだリストが表示されると思いますので、
「Microsoft Word **** Object Library」
(*はVersion)
にチェックが入っていなければ、少なくともそれが原因の一つだと思います。

ご確認してみてください。
    • good
    • 1
この回答へのお礼

はい、ご指摘の通りで解決できました。

早々のご回答ありがとうございました。

お礼日時:2023/06/12 09:08

https://www.wordvbalab.com/code/12204/
上記URLのマクロを当方で試したところ、何の問題もなく、実行され終了します。

従って、No.1さんのご指摘のとおり、このサイトのカテゴリ相違(Wordマクロのご質問をExcelカテゴリで質問された)と同様にEXCELのVBAに上記URLのコードを記載して、実行している可能性が高いと推測されます。

これでは正しく動作しないのは当然です。
Wordのマクロとして実行してみてください。
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。

#No2さんのご回答でも指摘がありました通り、このVBAをワードで動かす準備として、VBA編集の画面のツールの参照設定で
>Microsoft WordXXX Object Library
にチェックを入れる、とあってこれをチェックしたら使えるようになりました。

ありがとうございました。

お礼日時:2023/06/12 09:10

こんにちは



ざっと見る限り問題なさそうに思いますけれど・・・?

ワードのマクロですから、ちゃんとワード上で実行してますよね?

もしかして、違うアプリケーションから実行しようとしていませんか?
その場合は、エラーになる可能性が充分にあります。
(VBAのAはアプリケーションの意で、アプリケーション依存ですから)
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。

土日に色々調べてみたら他の同様のVBAのコードの紹介記事にワードでエクセルのVBAを動かすための準備として、VBA編集の画面のツールの参照設定で
>Microsoft WordXXX Object Library
にチェックを入れる、とあってこれをチェックしたら使えるようになりました。

織がとうございました。

お礼日時:2023/06/12 09:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A