• 締切済み

ワードファイルの読み取り専用をvbaで解除する

エクセルの読み取り専用は下記のように解除することは分かったのですが、ワードファイルの「読み取り専用」を解除するにはどうしたらよいですか? Workbooks.Open Filename:=”ファイルのパス”, WriteResPassword:="パスワード" '書き込み保護を解除

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Googleで、「FSO 読み取り専用を解除」で照会。出てきた記事を読んで、(応用)真似してやってみたら。 それさえもやってないのは、まだこういうことをやるスキル段階ではないということかな。 VBAなどやりだしたら、新しい部分の勉強や確認で、WEB照会は避けて通れないだろう。 こんなコーナーに質問する前にね。 それをやって、コード例で載っているコードの修正方法が判らない、やってエラーが出る、結果が 予期と違うなどの時に、ここのコーナーが生きる。 関連前質問?も曖昧だったが。

maccafe
質問者

お礼

回答ありがとうございます! FOSなんて使わずできました! アドバイスありがとうございました

  • sutorama
  • ベストアンサー率35% (1701/4759)
回答No.1

私ならめんどくさいので、PDF化して、PDFをWordで読み取ります

maccafe
質問者

お礼

PDFに自動でやるために、パスワードを解除する必要があるのです。

関連するQ&A

  • Fileの読み取り専用の解除

    いつもお世話になっています。 ちょっと気になったので、質問させて頂きました。 現在、Fileを使用して、読み取り専用の設定を行っているのですが、 その際、一度「読み取り専用」にしてしまったら、 解除は不可能なのでしょうか? 作成したクラスが、 String fileName = "dataList.txt"; File file = new File(fileName); String str = "あいうえお"; String sep = System.getProperty("line.separator"); //読み取り設定 file.setReadOnly(); try{ FileWriter fw = new FileWriter(file); fw.write(str); fw.write(sep); fw.write(str); fw.flush(); fw.close(); }catch(FileNotFoundException e) { }catch(IOException i){} //ここで読み取り専用を解除したい if(file.canRead() ) { System.out.println("可能です"); } if(file.canWrite()){ System.out.println("書き込み可"); }else { System.out.println("不可"); } 気になって元のFileクラスのソースをみてみたのですが、 /**readOnlyメソッドのみ、抜粋 **/ public boolean setReadOnly() { //Securityの設定 SecurityManager security = System.getSecurityManager(); //securityの確認  if (security != null) { //この時のpathは fileNameとおなじこと security.checkWrite(path); } //ここを設定してなかったら、読み取り専用にはならない気が.. return fs.setReadOnly(this); } で、どうしてもわからないのが、FileSystemクラスのnativeメソッドを呼んでいることなのですが、このnativeメソッドがどうやって機能しているのかがわかりません。 宜しくお願いします。

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • パスワード付の読み取り専用ファイルができるか。

    WordやExcelのファイルを、読み取り専用ファイルにしているファイルがあるのですが、勝手に読み取り専用を解除されないように、する方法はないでしょうか。複数の人が学習用として使っているので変更できないようにしたいと思います。たとえば、パスワード付の読み取り専用ファイルができればいいと思っていますが、どなたか良い方法がありましたら教えてください。

  • エクセル VBA 読み取り専用になっているファイルを開く場合

    エクセルVBAを取り組んでいるのですが、 "A"のファイルでマクロを作動させて、"B"のファイルを開くマクロを組んでいます。 その時に誰かが"B"のファイルを開いていた場合強制的に読み取り専用で開いてしまいます。 読み取り専用で開こうとした場合には、マクロを停止させるようにしたいのですが、どういう形にしたら良いでしょうか? ちなみに"B"ファイルを開いているマクロを下に乗せておきますので、変更しなければならない等がありましたら、教えていただけますと幸いです。 For Each wb In Workbooks If InStr(wb.Name, "B") > 0 Then flag = True Next wb If flag = True Then Else Workbooks.Open Filename:="Z:\B.xls" End If

  • エクセルVBAでマスターキーを作りたい

    こんなことが可能かどうかもよくわからないのですが。。 色んなエクセルファイルやワードファイルにパスワードをかけてて 色んな組み合わせで使っているのでややこしいので マスターキー的なものを作りたいと思っています。 ファイル選択ダイアログからファイルを選択して A列の読み取りパスワード、および同じ行のC列の書き込みパスワードを 適用してファイルを開くプログラムを作りたいのです。 行2の組み合わせで開かなければ行3の組み合わせを適用。それが無理なら行4。 ファイルが開けるまで順に下の行のものを適用するものです。 初心者なので色んなサイトで見たものをツギハギしてみてるのですが、 まずパスワードが違った時にエラーで止まってしまうし、 そもそもパス付Word文書をExcelから開けるのかもわからないのですが もし可能なら、拡張子を判断してどうやってワードかエクセルの どちらかを開かせるのか、そしてどうループさせればいいのか。。 行き詰っています。ご教授いただけると嬉しいです。 何卒よろしくお願いいたします。 Dim OPFileName As Variant OPFileName = _ Application.GetOpenFilename( _ FileFilter:="すべてのファイル(*.*),*.*" & _ ",エクセルファイル(*.xls),*.xls" & _ ",CSVファイル(*.csv),*.csv" & _ ",ワードファイル(*.doc),*.doc" _ , FilterIndex:=1 _ , Title:="ファイルを選択" _ , MultiSelect:=False _ ) extension = Mid(OPFileName, pointp + 1) x = 2 If OPFileName <> False Then If extension = xls Or csv Then Workbooks.Open filename:=OPFileName, password:=Cells(x, 1).Value, WriteResPassword:=Cells(x, 3).Value, IgnoreReadOnlyRecommended:=True End If End If

  • Word 読み取り専用設定解除

    Word 読み取り専用設定解除 Word2007です。読み取り専用設定解除ボタンというのがExcelにありますが、 Wordにもありますか? もしあるのならば、設定方法をお教えください。

  • 自分のExcelを読み取り専用で開くVBAは?

    Excel2003を使っています。 基本的なことで恐縮なのですが、 Excelファイルを手動で開くとき、読み取り専用にするような方法はないでしょうか。 ファイルのプロパティから「読み取り専用」にチェックを入れても NASの性質なのか、チェックが外れてしまいます。 (前提として、ここの変更は考えていません) そこで、「読み取り専用を推奨する」にしたのですが、毎回メッセージボックスが出るため 「読み取り専用にしない」を選択される場合もあります。 そのため、VBAにその指示を書き込む方法を探していました。 たとえば、以下のコードを試してみました。 しかし、開いたファイルに指示しているため、当然ながら以下のメッセージが出ます。 "***.xls は既に開いています。2重に開くと、これまでの変更内容は破棄されます。***.xls を開きますか?" Private Sub Workbook_Open() Dim Filename As String Filename = ThisWorkbook.FullName With Workbooks.Open(Filename, , True) .ActiveSheet.Activate End With End Sub 「読み取り専用を推奨する」をオンにして、Workbook.Openの引数である ignorereadonlyrecommended を設定する…というのも、 やはり上記の点で引っかかります。 何か方法はないものでしょうか。。。

  • 同じファイルが既に開いていたら開かないようにしたい

    同じファイルが既に開いていたら開かないようにしたい accessから下記のコードでexcelファイルを読み込み専用で開き、 指定したシートを開いています、 ですが、既に同じファイルが開いていた場合更にもう1枚開いてしまい、 同じファイルが2枚開いている状態になってしまいます、 何か1文を足して2枚目を開かせない様にすることが出来ると思うのですが、 どんな一文を入れたら良いか教えてください (既に開いているか気をつけて開く、と言うのは無しな方向で) oApp.Workbooks.Open Filename:= _ "■■■■■■■■■■■■", ReadOnly:=True oApp.Worksheets("■■■■■■■").Select よろしくお願いします

  • VBAでフォルダにあるエクセルファイルを開く

    こんにちは このコードがうまく動かないのですが、 どこがいけないのかわからなく助けてください。 なおフォルダの中には******データ.xlsと言うファイルがあり、アスタリスク部分は日付が不規則に変化して上書きされるのです。 このファイルを開くマクロを作りたいのですが。 うまく行きません。 よろしくおねがいします。 Sub excelopen() ' ' Dim エクセル As String 'エクセル = Dir(ActiveWorkbook.Path & "\*データ.XLS") If エクセル = "" Then Exit Sub エクセル = ActiveWorkbook.Path & "\" & エクセル Workbooks.Open Filename:=エクセル End Sub

  • マクロでファイルオープン

    エクセルのマクロでtest.xlsファイルをオープンする際に元々test.xlsファイルの属性が読み取り専用になっているものを、読み取り専用チェックをはずした状態でオープンすることは可能でしょうか? Workbooks.Open Filename:="test.xls" ReadOnlyRecommended:=False とかやってもなかなか上手くいきません。

専門家に質問してみよう