
お世話になります。
表題を目的に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
No.3
- 回答日時:
上記URLのマクロを当方で試したところ、何の問題もなく、実行され終了します。
従って、No.1さんのご指摘のとおり、このサイトのカテゴリ相違(Wordマクロのご質問をExcelカテゴリで質問された)と同様にEXCELのVBAに上記URLのコードを記載して、実行している可能性が高いと推測されます。
これでは正しく動作しないのは当然です。
Wordのマクロとして実行してみてください。
早々のご回答ありがとうございました。
#No2さんのご回答でも指摘がありました通り、このVBAをワードで動かす準備として、VBA編集の画面のツールの参照設定で
>Microsoft WordXXX Object Library
にチェックを入れる、とあってこれをチェックしたら使えるようになりました。
ありがとうございました。
No.1
- 回答日時:
こんにちは
ざっと見る限り問題なさそうに思いますけれど・・・?
ワードのマクロですから、ちゃんとワード上で実行してますよね?
もしかして、違うアプリケーションから実行しようとしていませんか?
その場合は、エラーになる可能性が充分にあります。
(VBAのAはアプリケーションの意で、アプリケーション依存ですから)
早々のご回答ありがとうございました。
土日に色々調べてみたら他の同様のVBAのコードの紹介記事にワードでエクセルのVBAを動かすための準備として、VBA編集の画面のツールの参照設定で
>Microsoft WordXXX Object Library
にチェックを入れる、とあってこれをチェックしたら使えるようになりました。
織がとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFファイルが開けるのと開...
-
HULFTとOWFTの違いに...
-
Windows Live Mailの添付ファイ...
-
CADについて
-
UWSCからvbsファイルを呼ぶ方法
-
.MANファイルを開けたいのですが…
-
bmpファイルが開きません。
-
海外から送られて来た、JPEG画...
-
「反復計算を行う」について。
-
パソコンに保存した写真ファイ...
-
photoshopで異なるファイル間で...
-
CADファイルが開けない
-
フォトショップ「互換性を優先...
-
フォルダの中のファイルを任意...
-
パワーポイントに挿入したエク...
-
Excelのハイパーリンクのアドレ...
-
win10で1つのフォルダ内に保存...
-
VB6のプロジェクトロードエラー...
-
データ容量
-
共有ファイルのアイコンの変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HULFTとOWFTの違いに...
-
Photoshop【ファイルがロックさ...
-
CADについて
-
.MANファイルを開けたいのですが…
-
拡張子DAT
-
PDFファイルが開けるのと開...
-
パソコンに保存した写真ファイ...
-
二つのexeファイルの比較がしたい
-
CADファイルが開けない
-
Windows Live Mailの添付ファイ...
-
「JPEGファイル」と「JPEGイメ...
-
WINRARで”書庫をテスト"の操作...
-
フォルダ内のワードファイルをP...
-
エクセルのファイルが一瞬開く...
-
誰が最後にファイルを触ったか...
-
regeditって何ですか?
-
ファイルのアイコンの種類が変...
-
Makefileが実行できない
-
ファイルを開くアプリケーショ...
-
最近使ったファイルからExcelフ...
おすすめ情報