No.3ベストアンサー
- 回答日時:
#1の回答者です。
ある程度は想定したことですが、まさか、両方のマクロを同じモジュールに貼り付けるようなことはしないと思いますが。Excel用マクロは、Excel で、Word用はWordになるということです。
私のマクロのポイントは、単にパスワードを入れるだけではなく、すでにパスワードをつけたものは、パスし、またパスワードなしに元に戻せることとを考えたものであることです。
''Excel用 標準モジュール(先頭から)
>'(Option Explicit)
>Const PSW As String = "00" 'パスワード
>Const myPATH As String = "C:\Users\ExcelFolder\" '末尾は¥のこと 登録フォルダー
>Dim errCnt As Long
>Sub MainProgram()
この最初の部分が、どこに置くか、初歩の初歩なのですが、それにつまづく人が大勢います。Excel は、その点でややこしいのです。
「標準モジュール」はどこにあるか?
ということからでしょうか?
ほんの1~2日もあれば、VBAの使い方の要領は分かるはずです。
http://excelvba.pc-users.net/fol1/1_1.html
なお、最近のMicrosoft Office のプロテクト・セキュリティは、ARM(旧IRM)を使うようになっています。
https://products.office.com/ja-jp/business/micro …
一度、ご検証されても良いかと思います。
No.2
- 回答日時:
フォルダーにパスワードを設定するソフトがありますが
ただ、解除できなくなると悲惨です。
1人で3日あれば設定できるじゃないですか?
No.1
- 回答日時:
最初、トライアルでやって大丈夫と分かってから、全部を実行してください。
Excel側はほぼ固まっているのですが、Word は、試行錯誤で、エラーの検出が思ったようにいっていません。パスワードつきは、自動でパスするように作られています。
''Excel用 標準モジュール(先頭から)
'(Option Explicit)
Const PSW As String = "00" 'パスワード
Const myPATH As String = "C:\Users\ExcelFolder\" '末尾は¥のこと 登録フォルダー
Dim errCnt As Long
Sub MainProgram()
Dim fname As String
errCnt = 0
If Dir(myPATH, vbDirectory) = "" Then MsgBox "フォルダーがありません。", vbExclamation: Exit Sub
fname = Dir(myPATH & "*.xls?", vbNormal)
Do While fname <> ""
If (GetAttr(myPATH & fname) And vbNormal) = vbNormal Then
If ThisWorkbook.Name <> fname Then '同名ファイル名不可
Call addPassWord(fname)
End If
End If
fname = Dir
Loop
Application.ScreenUpdating = False
If errCnt > 0 Then
MsgBox errCnt & "件のエラーがあります。イミディエイト・ウィンドウを見てください。", vbExclamation
Else
MsgBox "終了", vbInformation
End If
End Sub
Sub addPassWord(fname As String)
On Error Resume Next
With Workbooks.Open(myPATH & fname, , , , "", "")
If Err.Number = 0 Then
Application.DisplayAlerts = False
.SaveAs myPATH & fname, , PSW, PSW
Application.DisplayAlerts = True
.Close False
ElseIf Err.Number <> 1004 Then
Debug.Print fname 'エラーを起こしたファイル名を記録
errCnt = errCnt + 1
End If
End With
Err.Clear
On Error GoTo 0
End Sub
''---------------------------
''Word用 ThisDocument(先頭から)
Const PSW As String = "00" 'パスワード
Const myPATH As String = " "C:\Users\ExcelFolder\" '末尾は¥のこと 登録フォルダー
Dim errCnt As Long
Sub MainProgramWord()
Dim fname As String
errCnt = 0
If Dir(myPATH, vbDirectory) = "" Then MsgBox "フォルダーがありません。", vbExclamation: Exit Sub
fname = Dir(myPATH & "*.doc?", vbNormal)
Do While fname <> ""
If (GetAttr(myPATH & fname) And vbNormal) = vbNormal Then
If ThisDocument.Name <> fname Then '同名ファイル名不可
Call addPassWord(fname)
End If
End If
fname = Dir
Loop
Application.ScreenUpdating = False
If errCnt > 0 Then
MsgBox errCnt & "件のエラーがあります。イミディエイト・ウィンドウを見てください。", vbExclamation
Else
MsgBox "終了", vbInformation
End If
End Sub
Sub addPassWord(fname As String)
Dim myDoc As Document
On Error Resume Next
Application.DisplayAlerts = False
Set myDoc = Documents.Open(myPATH & fname, , , , "")
Application.DisplayAlerts = True
On Error GoTo 0
If Not myDoc Is Nothing Then
With myDoc
.Password = PSW
Application.DisplayAlerts = False
.SaveAs myPATH & fname
Application.DisplayAlerts = True
.Close False
End With
End If
End Sub
この回答へのお礼
お礼日時:2017/07/27 14:12
お答え頂きありがとうございます!
ただ、マクロ初心者のため、イマイチ上手く動作しません!Σ(×_×;)!
折角組んでいただいたのに活かせないのは悔しいですm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユニクロやGUのシフト管理アプ...
-
Excelのセルにユーザー名...
-
「@」(アットマーク)の無いメ...
-
メールのマナー編
-
インスタの捨て垢で友達のスト...
-
存在しないアドレスにメールを...
-
runas実行した時にきかれるパス...
-
iPhoneのiCloudメールなよです...
-
インスタの乗っ取り解除につい...
-
彼女のインスタのアカウントを...
-
YouTubeが毎回ログインしないと...
-
メールを返信したら、英語のメ...
-
メールアドレスを人に教えるの...
-
LINE TCBというところからLINE...
-
CSVファイルを添付するときにパ...
-
携帯電話を解約してもSMSの受信...
-
YahooIDをパスワード形式にした...
-
高一男子です 僕が絶対に悪いん...
-
メールアドレスで上付きのハイフン
-
エクセルで複数ファイルに同一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
YouTubeが毎回ログインしないと...
-
YahooIDをパスワード形式にした...
-
インスタの捨て垢で友達のスト...
-
iPhoneのiCloudメールなよです...
-
携帯電話を解約してもSMSの受信...
-
インスタの乗っ取り解除につい...
-
「@」(アットマーク)の無いメ...
-
メールを返信したら、英語のメ...
-
メールアドレスで上付きのハイフン
-
verify@twitter.comから、メー...
-
星の王子さまというアプリで、 ...
-
CSVファイルを添付するときにパ...
-
LINE TCBというところからLINE...
-
メールアドレス 上バーの入力...
-
ユニクロやGUのシフト管理アプ...
-
インスタのアイコンについてるN...
-
インスタのアカウントの消し方...
-
高一男子です 僕が絶対に悪いん...
-
メールをパスワードつきで送る方法
おすすめ情報