- ベストアンサー
VBA 文書プロパティ一括削除(Word)
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >「プロパティの全て」というふうにできるでしょうか? 「Count」を使ってプロパティの数をカウントしてみましたが、それはできないようで・・・。 エラートラップはしてありませんが、一度で試してみてください。特別な設定していない限りは、全て通るはずです。ドキュメントのバイト数などは再取得されるようですね。 しかし、これでは、原作者名は消えません。その場合は、やはり、『隠しデータの削除』を使うか、もしくは別のマクロとActive X コントロール(Dsofile.dll)が必要になるのではないかと思います。それは、やってみないとわかりません。 Sub プロパティ削除r() Dim v As Variant For Each v In ActiveDocument.BuiltInDocumentProperties If v.Type = msoPropertyTypeString Then v.Value = "" ElseIf v.Type = msoPropertyTypeNumber Or v.Type = msoPropertyTypeDate Then v.Value = 0 End If Next v ActiveDocument.Save End Sub
その他の回答 (5)
- enunokokoro
- ベストアンサー率74% (3543/4732)
ANo.1です >試していますが、削除できません。 これは以下のURL先にあるオプションの項目にチェックを入れるマクロ です。([保存時にファイルのプロパティから個人情報を削除する]) http://support.microsoft.com/kb/899877/ja ですから、マクロを実行してチェック項目をオンにしないと意味が無い ものですね。 マクロを書いて保存しただけではチェック項目がオンになっていません から削除されないのです。マクロをお尋ねだったのでヘルプにあるもの を載せましたが、実際にはオプションの項目をオン/オフするだけです から、削除をするマクロという意味では、Wendy02 さんの提示したもの ぐらいしかないのでしょうね。(私も勉強中ですがいまだ向上せず)
お礼
>ですから、マクロを実行してチェック項目をオンにしないと意味が無いものですね 今度はうまくいきました。ありがとうございました。 >(私も勉強中ですがいまだ向上せず) 私も勉強中です。早く回答できるくらいに成長したいものです。
- KenKen_SP
- ベストアンサー率62% (785/1258)
> なぜだかダウンロードできませんでした そうですか。。残念です。 オフィスのファイルには、プロパティーの他、様々な場所に 個人情報が埋め込まれてしまいます。例えば、マクロの記録を すると、 ' Sample Macro ' マクロ記録日 : 2007/5/29 ユーザー名 : Administrator のような個人情報(ユーザー名に本名を入れていたりした場合) が記録されてしまいます。このツールはこのようなことろまで スキャンし、削除してくれるので、データ提出時になにかと重宝 するんですが.... > コードを知りたいのですが・・・。 残念ながらコードは公開されていません。
お礼
>このツールはこのようなことろまで スキャンし、削除してくれるので、データ提出時になにかと重宝 するんですが.... なるほど・・・。コードは公開されていないようなのは残念ですが、 便利そうですね。 Office2002が一部インストールしているために今回は使用できなかったので、また別の機会に使ってみようと思います。 No.3の方の回答で解決しましたが、後は回答順にポイントを付与します。 ポイントは付与できませんが、ありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 一応、5まででよいと思います。 試してみてください。なお、これは、Normal.dot 側に入るものだと思います。 Sub プロパティ削除() Dim i As Integer For i = 1 To 5 ActiveDocument.BuiltInDocumentProperties (i) ="" Next i End Sub これとともに、ツール-オプション-保存 □保存時にプロパティを確認する にチェックを入れておくとよいと思います。
お礼
Wendy02さん、ありがとうございます。 For i = 1 To 5でできました! ところで、「5」の部分を、数字ではなく、「プロパティの全て」というふうにできるでしょうか? 「Count」を使ってプロパティの数をカウントしてみましたが、それはできないようで・・・。 他に「For each・・・Next」を使用する方法を試みていますが、どうもうまくいきません。
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんばんは。 Office2003/XP 限定ですが、MS 公式のツールが公開されてますよ。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=144E54ED-D43E-42CA-BC7B-5446D34E5360
お礼
KenKen_SPさん、ありがとうごじます。 なぜだかダウンロードできませんでした(/_;) Office 2003と同時にOffice2002のPPTを入れていて(Wordは入れていない)、そのせいで製品の確認に失敗してしまいました。 このツールはコードを確認できるのでしょうか? 今回のマクロは勉強のために作成しているので、コードを知りたいのですが・・・。
- enunokokoro
- ベストアンサー率74% (3543/4732)
Sub RemovePersonalInfo() ThisDocument.RemovePersonalInformation = True End Sub 「 RemovePersonalInformation 」でVisual Basicのヘルプを参照すれば 出てきます。
お礼
enunokokoroさん、ありがとうございます。 コメントや変更履歴のユーザー情報を削除するプロパティのようですね・・・。試していますが、削除できません。コードはヘルプどおりなので、問題ないはずですが。。。 もうちょっと試してみます。
関連するQ&A
- VBAでWORD97のプロパティの書換について
はじめまして。 質問なんですが、 VBAでWORD97のプロパティを書換プログラムで困っている点があります。 プロパティのタイトル(title)、サブタイトル(subject)、 作者名(Author)は、書換に成功したのですが、 管理者、会社名の書換が出来なく困っています。 あと、VB6でワードを読み込むための方法も教えていただければ幸いです。 当方は、初心者なので分からないことが多いので、 詳しい方、教えて下さい。 よろしくお願いいたします。
- 締切済み
- Visual Basic
- ワードのプロパティの消し方を教えてください。
教えてください。 ワード、エクセルで作成した書類のプロパティ→概要に残る作成者などまでは消せるのですが、その先の、 「概要」のページ右下にある「詳細設定」画面の作成者、会社名などどうやって消せばいいのかわかりません。 もし消せたとして、一括削除はできるのでしょうか? どなたか教えてくださると大変助かります。どうぞ宜しくお願いします。
- ベストアンサー
- Windows XP
- word VBA ファイル名 保存
wordで作成したファイルの最初の第1行名をファイル名として、名前を付けて保存できるマクロを作りたいのですが、うまくいきません。 Sub 保存() Dim ファイル名 As Variant ファイル名 = ActiveDocument.Paragraphs(1) & ".docx" ActiveDocument.SaveAs FileName:=(ファイル名), FileFormat:= _ wdFormatXMLDocument End Sub ではだめなのですが、どなたか添削よろしくお願いします。困っております。なにぶん初心者ですので基本的な文法のミスかもしれないですが、うまくいきません。
- ベストアンサー
- その他MS Office製品
- ワードアートの一括変換
Office2003のEXCEL使用しています。 ワードアートのフォントを別のモノに 一括変換したくて調べたら、 VBA のコードを実行すればOKと書いてありました。 以下文章。 1. Microsoft Word の「Visual Basic Editor」を起動。 2. [挿入] - [標準モジュール] を選択。 3. 下記のコードを貼り付け。 4. [実行] - [Sub/ユーザー フォームの実行] を選択。 これで、ワードアートのフォントが一括で置換出来る。 Sub ChangeWordArtFont() ' ワードアートのフォントを変更(書式が「行内(インライン)」の場合) Dim inlineShape For Each inlineShape In ActiveDocument.InlineShapes If inlineShape.Type = wdInlineShapePicture Then inlineShape.TextEffect.FontName = "HG創英角ポップ体" End If End If ' ワードアートのフォントを変更 Dim shape For Each shape In ActiveDocument.Shapes If shape.Type = msoTextEffect Then shape.TextEffect.FontName = "HG創英角ポップ体" End If Next End Sub この通りにやったのですが、エラーが出て完了できません。 構文が間違っているのでしょうか?
- ベストアンサー
- オフィス系ソフト
- VBAでBOOKを開かずにプロパティ変更
エクセル2013です。 特定のフォルダ内のエクセルのBOOKのプロパティの作成者をすべて変えようと思います。 いろいろ試して、以下のコードでできるようになりました。 しかし、下記のコードではいちいちファイルを開かなくてはなりませんのでサイズが大きかったり、数が多いと結構時間がかかります。 手作業でファイルのプロパティを変えるときは、エクスプローラで右クリックすれば開かなくとも簡単にできます。VBAでもファイルを開かずにプロパティを変更するにはどうすればよいのでしょうか?お教えいただければ幸いです。 Sub TEST20190710() Dim myFdr As String, fnm As String Dim wb As Workbook Dim n As Long Const NEW_AUTHOR As String = "emaxemax" Application.ScreenUpdating = False Application.EnableEvents = False myFdr = "C:\Users\User\Documents\TEST01" fnm = Dir(myFdr & "\*.xls?") Do Until fnm = Empty Set wb = Workbooks.Open(myFdr & "\" & fnm) Application.DisplayAlerts = False wb.BuiltinDocumentProperties("Author").Value = NEW_AUTHOR wb.Close SaveChanges:=True Application.DisplayAlerts = True n = n + 1 fnm = Dir Loop Application.ScreenUpdating = True Application.EnableEvents = True MsgBox n & "件のブックを処理しましました。", vbInformation End Sub
- ベストアンサー
- Excel(エクセル)
- word ユーザープロパティをマクロで設定したい
word2003を使っています。 100以上の文書にユーザープロパティを設定することに なり、マクロで設定したいと思っています。 自分でマクロを記述してみましたが、うまくいきません。 どこをどう直したらいいか、わかる方、教えてください。 Sub Macro1() ActiveDocument.CustomDocumentProperties.Add _ Name:="A", _ LinkToContent:=False, _ Type:=msoPropertyNumber, _ Value:="0" ActiveDocument.CustomDocumentProperties.Add _ Name:="B", _ LinkToContent:=False, _ Type:=msoPropertyNumber, _ Value:="1" End Sub
- ベストアンサー
- その他([技術者向] コンピューター)
- エクセルVBAでワード文書印刷(2)
先日、こちらで、VBAを記述したエクセルのブックと同一フォルダーにおいておいたABC.DOCをプリントし、ABC.DOCを閉じる方法を教えていただき、Excel2003でためしたら、下記でうまくいきました。(その際、回答者のchie65536さん、手が滑ってポイントをつけず締め切ってしまいました、申し訳ございません。) ところが今、会社のExcel2000でやったところ、「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。」と出てしまいます。 ABC.DOCをプリントしおわったら、ABC.DOCを閉じ、ワードを終了するようにしたいのです。 ためしに、wd.Quitの代わりに、wd.ActiveDocument.Close とすれば印刷はされましたが、ワードが終了しません。 wd.ActiveDocument.Close のあとに wd.Quitを入れると、「印刷中です。Wordを終了すると・・・・」が出てしまいます。 どうなおせばよいのでしょうか? Sub Word_Print() Dim wd As Object Set wd = CreateObject("Word.application") wd.Visible = True wd.documents.Open Filename:=ThisWorkbook.Path & "\ABC.doc" wd.ActiveDocument.PrintOut wd.Quit Set wd = Nothing End Sub よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- WORD2003の文書のプロパティに関して
WORD2003の文書のプロパティに関して2つ質問します。 (1) ファイルの概要 新規文書開き、ここファイルの概要を見ると会社名のところに会社名がABCDE会社と入っているのですが、この会社名をEFG会社と変更する操作はどうすればいいか。 (2) ファイルの構成 ファイルの構成 というのがありますが、使い方と利用目的がわかりません。どのような目的で利用するのでしょうか。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAのプロパティ設定について
エクセルVBAのプロパティ設定について VBAでエクセルのメニューのファイル→プロパティ→詳細情報 にある改訂番号を変更したいのですがうまくできません。 以下、ソースの内容です。 Sub Sample() On Error Resume Next '整数値は問題なく変更可 ' ThisWorkbook.BuiltinDocumentProperties("Revision Number").Value = "1" '通常文字は変更不可 ThisWorkbook.BuiltinDocumentProperties("Revision Number").Value = "version1" ThisWorkbook.Save End Sub 改訂番号を整数値にすると変更できるのですが通常文字(アルファベット)を 含めるとエラーとなり変更できません。 エクスプローラ等でファイル右クリックからプロパティ-概要を開いて編集する分には アルファベットを含んでいても問題ないため、整数値しかできない等の制約は ないと思ったのですが。。 もし思い当たる原因や対策等何かありましたらご教授お願いいたします。 環境は以下になります。 OS:Windows2000,XP Excel:Office2003
- ベストアンサー
- オフィス系ソフト
- Word_VBA 拡張子手前までのファイル名の取得
こんにちは。VBA全般初心者です。Wordに対していくつかの処理後、元ファイルに日付(年月)をつけて別保存というマクロを作ろうとしています。現在下記で作成中ですが、これだと元ファイルの.docxもファイル名として認識されており、ABC.docx → ABC.docx.2023_05.docxと保存されます。 ABC2023_05.docx にしたいです。 Sub ファイル名取得して保存() Dim タイプ As Variant Dim 区切り As String Dim ドット位置 As Integer Dim 日付 As String Dim ファイル名 As String Dim タイトル As String '拡張子を定義 タイプ = ActiveDocument.name 区切り = "." ドット位置 = Len(タイプ) - (InStrRev(タイプ, 区切り)) タイプ = Right(タイプ, ドット位置 + 1) 日付 = Format(Date, "yyyy_mm") タイトル = ActiveDocument ファイル名 = Application.PathSeparator & タイトル & 日付 & タイプ With ActiveDocument .SaveAs FileName:=.Path & ファイル名 End With End Sub
- ベストアンサー
- Word(ワード)
お礼
Wendy02さん、ありがとうございました。 教えていただいたコードで解決しました! コードの内容はなんとなく分かる程度ですが、頑張って勉強します。