プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっていますm(__)m
エクセルのマクロ(VBA)で、フォルダ内のエクセルファイル
全部に一気にパスワードをかけたいと思っているのです。
が、どういう記述をすればいいのかまったく分かりません。
パスワードをかける対象の条件は、
・フォルダに入っている複数のエクセルファイル
(フォルダ名、ファイル数は毎回変わる)
上記を満たしていれば使える汎用性の高い物にしたいと
思っています。
マクロ(VBA)の勉強をはじめたばかりなので、できれば自分である程度考えたいので、分かりやすいヒントを教えていただけたら・・・と思っています。
あつかましいお願いですが、どうぞ回答よろしくお願いしますm(__)m

A 回答 (2件)

任意フォルダ内のexcelファイルを1個開いて、名前を付けて保存する際に、ツールの全般オプションからパスワード保存ができます。

これをマクロで記録してみると1個のファイルについて流れがつかめるでしょう。
任意フォルダ内のexcelファイル検索は、マクロでも少し上級ではないでしょうか。
> マクロ(VBA)の勉強をはじめたばかりなので
少し難しいかもしれません。私ならFileSearchメソッドを使います。

下記に例を示しますので、勉強してみてください。C:\My Documents内のexcelファイルにすべてXXXXというパスワードを振ります。

Sub Macro1()
'変数宣言
Dim openFilePath As String
Dim passWord As String
'変数に値を入れる
openFilePath = "C:\My Documents"
passWord = "XXXX"
With Application
 'メッセージを停止する
 .DisplayAlerts = False
 '画面の変化を停止する
 .ScreenUpdating = False
 'openFilePathフォルダ内のexcelファイル検索
 With .FileSearch
  '新規検索
  .NewSearch
  'フォルダ指定
  .LookIn = openFilePath
  'ファイルの種類指定
  .FileType = msoFileTypeExcelWorkbooks
  If .Execute() > 0 Then
   'excelファイルを1個ずつ開く
   For i = 1 To .FoundFiles.Count
    Workbooks.Open .FoundFiles(i)
    'パスワードpassWordをつけて保存
    ActiveWorkbook.SaveAs _
     Filename:=.FoundFiles(i), _
     passWord:=passWord
     'ファイルを閉じる
     ActiveWorkbook.Close False
   Next i
  End If
 End With
 '画面の停止解除
 .ScreenUpdating = True
 'メッセージの停止解除
 .DisplayAlerts = True
End With
MsgBox "終了しました"
End Sub
    • good
    • 0
この回答へのお礼

分かりやすい回答、ありがとうございます!
お見本にしたがって作成してみたら、
自分の理解できる範囲で自分仕様に変更して、
思い通りのマクロを組むことができました!!!

細かくコメントをいれて下さっているので、
大体理解できましたが、やっぱり分からないまま
組んでしまっているところも。。。

こんなマクロがあったらいいな(あくまであったらいいな、
くらいなのですが・・・)
と、いくつかのお題はもっているのですが、どう勉強して、
組み立てていったらいいのか、さっぱりなのです。
マクロ(VBA)を勉強するにあたって、何かオススメの手段
(本やサイトなど)はありますでしょうか?
こんなマクロを組みたいな~と思ってから、まずそのアルゴリズム
を考えるのも苦手で、かつVBAの文法も???です。

お礼欄にこんなこと書くものなんですが、お気づきになられたら
また回答くださるとうれしいです。

お礼日時:2003/09/04 00:11

私は、自動記録ですね。

初心者のうちはひたすら自動記録して、それを延々と見ていました。そのうち、自動記録は余計なコーディングが多いことに気づき、それを削除していくことを覚えました。
あとは、ひたすらヘルプですね。判らないキーワードを選択してF1キーを押します。するとそのキーワードのヘルプが出ます。どんな参考書よりヘルプですよ。そして、うまくいかないときは、人に聞きます。ここのようなサイトでも良いですし、ニュースグループでもいいでしょう。
私が参考書を買ったは、ある程度できるようになってからですね。付属CDのサンプルマクロなんかをいちいち解読するのもおもしろいですね。コーディンングは人それぞれですから。ある程度知識が付いたら、他人のやり方を盗んで行くのがさらなる上達ということにつながると思います。
    • good
    • 0
この回答へのお礼

なるほど!
自動記録なら、したい操作の記述が一発でわかりますよね。
マクロを組むときに、どんな処理ができるのかが
分かってないので、組むに組めない(T_T)と思ってましたが
これなら、必要なものから覚えられそうです。
早速私もやってみようと思います。
本当に、本を買ってもさっぱりだし、どうやって勉強
すればいいのか分からなかったので、目からウロコです!
回答、本当にありがとうございましたm(__)m

お礼日時:2003/09/04 14:26

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

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