
No.4ベストアンサー
- 回答日時:
パスワードを設定したブックを納入先に送るということは、そのブックにマクロが含まれているのは、まずいですよね?
そうすると必然的にパスワード一覧ブックの方にマクロを作ることになります。
次のマクロは、アクティブなブックにパスワードを設定します。
具体的には、以下のような使い方になります。
①納入ブックとパスワード一覧ブックを開き、納入ブックをアクティブな状態にする
➁Alt+F8キーでマクロ一覧を開き、「パスワード設定」マクロを実行する
③納入ブックを保存する
※アクティブなブックにパスワードを掛けてしまうので、気を付けてくださいね。
ちなみに、納入ブックのSheet1のA1セルに固有名称が入力されていて、それに対するパスワードの対応表がパスワード一覧ブックのSheet1のA:B列に入力されているものとします。
マクロは、固有名称をキーに、VLOOKUP関数でパスワードの対応表を検索しますので、対応表の作成も忘れないでください。
もし、集計作業をマクロで実行しているのであれば、そこに組み組み込んだ方が便利かもしれません。
Sub パスワード設定()
Dim kw As Variant
Dim pw As Variant
kw = ActiveSheet.Range("A1").Value
With ThisWorkbook.Sheets("Sheet1")
On Error Resume Next
pw = WorksheetFunction.VLookup(kw, .Range("A:B"), 2, False)
If Err.Number = 0 Then
MsgBox "パスワード " & pw & " を設定しました。"
ActiveWorkbook.Password = pw
Else
MsgBox "該当するパスワードがありません。"
End If
End With
End Sub
早速の回答をいただき、ありがとうございます。
この方法なら思っていたものになりそうですね。
試してみます。
結果は後日ご報告させていただきます。
ありがとうございました。
No.3
- 回答日時:
すいません。
具体的に何が分からないのでしょうか?「固定のパス設定までは出来た」とのことですが、たぶん、次のようなマクロですよね?
このマクロを実行した後、普通に保存すれば、パスワード保護された状態で保存されます。
Sub sample()
ThisWorkbook.Password = "abc"
End Sub
保存するファイルのA列に名称文字が入っていて、それに固有数字を付加してパスワードを生成する方法が分から何でしょうか?
固有数字を何にするかにもよりますが、例えば、保存した日付(月日)4桁とする場合は、こんな感じで十分でしょう。
ちなみに、名称文字が入力されているシートは非表示にしておくべきです。
ThisWorkbook.Password = Sheets("Sheet1").Range("A1") & Format(Now, "MMDD")
最初の質問では、パスワード一覧のブックを別に用意して、そこから取得するようなことが書かれていましたが、例えば、VLOOKUP関数でパスワード一覧から値を取得するようなシートを用意しておけば、難しいことを考えなくても実装できるような気がします。当然、そのシートも非表示が前提です。
質問の仕方がへたで申し訳ありませんでした。
何がしたいかという点では、毎日エクセルで集計したデータを複数の納入先に報告をするので、
納入先別にパスを付ける必要があり、そのパスは一度決めたら同じパスを毎日使うので一覧表で現在管理してます。
それを社内のイントラネット内で共有して使用してます。納入先別のパスを一覧から探す手間を削減したいということから考えた方法です。
>保存するファイルのA列に名称文字
これは、パスを最初に決める際に固有の名称をファイル内の名称を使用する方法もあるかなと思ったしだいです。
また、最初のご質問でありましたが、作業するPCは複数のPCを数人で使用することを想定してます。
No.2
- 回答日時:
こんにちは。
>保存するファイルのA列などに個々の名称などを入れるので指定のセルにあるその名称文字+固有の数字などを作成するようなことは不可でしょうか。差し支えなければお教えください。
最初に、「パス」というのは、Path のことではなく、PassWord のことですね。それが違うと、まったくコードが違います。
もし、そうなら、とても、良いアイデアだと思います。以前、似たようなものを作った覚えがありますが、その時のものよりも、遥かにすぐれたアイデアだと思います。
そのマクロでなければ、絶対に開けられないようなものも可能になります(それは、暗号システムを導入するわけですが、特別なアルゴリズムが必要になります)が、今の掲示板では、せいぜい1週間ぐらいまでで、長くは引っ張れませんので、簡易的なものを提示します。ただ、万が一の失敗はあると、開かなくなってしまいますので、その都度、Openの際に秘密裏にバックアップを取るようにしたほうがよいかもしれませんね。
ご質問の内容とは、意味合いが違うかもしれませんが、こんなものを考えてみました。
ファイルの一覧から、一気に、プロテクトをして保存してしまいます。
添付画像のシートの画面のように、乱数(固定しています)から、順位を取り、番号を決めています。それぞれのセルには、「空白(半角・全角)を問わず、いれないようにしてください。
なお、以下のマクロは、万が一、乱数が変化するようでしたら、総当り制でなくては開けられなくなってしまいます。
'標準モジュール
Private Const mPATH As String = "C:\Test2\" '最後尾には必ず¥をいれてください。
Sub ProtectingMacro()
'初期設定(プロテクトするマクロ)
Dim c As Variant
Dim i As Long
Dim mPassWord As String
Dim wb As Workbook
Application.ScreenUpdating = False
For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
If Dir(mPATH & c.Value) <> "" Then
On Error Resume Next
Set wb = Workbooks.Open(mPATH & c.Value, , , , "", "")
If Err.Number <> 0 Then
Debug.Print c.Value
GoTo Step2
End If
mPassWord = c.Offset(, 1).Value & c.Offset(, 2).Value & c.Offset(, 3).Value
Application.DisplayAlerts = False
wb.SaveAs mPATH & c.Value, , mPassWord, mPassWord
Application.DisplayAlerts = True
i = i + 1
wb.Close False
End If
Step2:
Next c
Application.ScreenUpdating = True
MsgBox i & "個のファイルをプロテクトしましたが、ファイルを直接確認するか、イミディエイトウィンドウを御覧ください。"
End Sub
Sub openSesami()
'個別に開ける
Dim Rng As Range
Dim mPassWord As String
If TypeName(Selection) = "Range" Then
Set Rng = ActiveCell
If Rng.Value = "" Then
MsgBox "ファイル名のある所にカーソルを置いてください。", vbCritical
Exit Sub
End If
mPassWord = Rng.Offset(, 1).Value & Rng.Offset(, 2).Value & Rng.Offset(, 3).Value
On Error Resume Next
If Dir(mPATH & Rng.Value) = "" Then MsgBox Rng.Value & "がありません。", vbCritical: Exit Sub
Workbooks.Open mPATH & Rng.Value, , , , mPassWord, mPassWord
If Err.Number <> 0 Then
MsgBox Rng.Value & "のオープンに失敗しました。", vbExclamation
End If
End If
End Sub

返事が遅くなりました。ご丁寧にありがとうございました。
まずは試してみたいと思います。
わからないことがあればまた質問させていただきたいと思います。
No.1
- 回答日時:
すいませんが、回答ではありません。
確認です。「固定のパス設定までは出来た」とのことですが、どんな感じで作られたのでしょうか?
たぶん、マクロだと思いますが、この仕組みってsabchiさんだけが使うのでしょうか?他の人も使うとなると全員がマクロを実行して保存してくれる保証が無いですよね?その辺、どのように徹底するつもりですか?
もうひとつ…。一般的に一覧で管理しているようなパスワードって、数が多いし複雑なので、覚えていられないですよね?なので、開く時はパスワード一覧を都度確認することになると思います。もしかして、オープン用のマクロも作成するのでしょうか?
まずは、ありがとうございます。
説明が足りずすみませんでした。
使用環境の想定としては、自分以外も使用する事を想定しております。
使い方は共有しますので、マクロの実行は出来ると思います。
そもそも無理難題でしたら申し訳ございません。
保存するファイルのA列などに個々の名称などを入れるので指定のセルにあるその名称文字+固有の数字などを作成するようなことは不可でしょうか。差し支えなければお教えください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【教えて!goo ウォッチ 人気記事】風水師直伝!住まいに幸運を呼び込む三つのポイント
記事を読む>>
-
フォルダ内のブック全部にパスワードを設定したい
Excel(エクセル)
-
エクセルで複数ファイルに同一のパスワードをまとめて設定したいです
Excel(エクセル)
-
VBAにて名前をつけて保存とパスワードオプション
Excel(エクセル)
-
-
4
ワード、エクセルに自動的にパスワード設定したい
フリーソフト
-
5
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
6
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
7
[Excel VBA] フォルダ内の複数のパスワード付ブックを全て読み取り専用で開くには?
Visual Basic(VBA)
-
8
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
9
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
10
VBAからPDFファイルにパスワードを設定したい
Visual Basic(VBA)
-
11
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
12
エクセルのシート連番の振り直し
Excel(エクセル)
-
13
エクセル(excel)のパスワード解除について
その他(Microsoft Office)
-
14
フォルダ内の複数ブック・シートを一括保護/解除する
PowerPoint(パワーポイント)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
Excel VBA セルの値をファイル名にして保存するには
Visual Basic(VBA)
-
17
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
【Excel】特定セルの内容をテキ...
-
EXcelのマクロで相対パスでファ...
-
同一フォルダ内のファイルを開く
-
エクセル;相対パスを絶対パスへ...
-
複数のExcelファイルの印刷設定...
-
複数のbookから特定のセル(行...
-
エクセルを開いて文字を打つ際...
-
EXCELマクロで、開いてはいるが...
-
excelで直前に参照していたブッ...
-
【Excel】マクロの保存先について
-
名前の変わるブックをアクティ...
-
EXCELのボタンによるマクロの登...
-
マクロの保存先、開いてるすべ...
-
1つのEXCELファイルをインター...
-
ファイル名変更後も、マクロを...
-
EXCELブックが勝手に開いて困っ...
-
エクセルVBAで作成した別ブック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
EXcelのマクロで相対パスでファ...
-
複数のExcelファイルの印刷設定...
-
エクセル;相対パスを絶対パスへ...
-
【Excel】マクロの保存先について
-
マクロの保存先、開いてるすべ...
-
excelで直前に参照していたブッ...
-
エクセルデータを別のエクセル...
-
複数のExcelブックから特定シー...
-
エクセルVBAで作成した別ブック...
-
【Excel】特定セルの内容をテキ...
-
ファイル名変更後も、マクロを...
-
【関数】【マクロ】データの転...
-
EXCELマクロで、開いてはいるが...
-
EXCELのボタンによるマクロの登...
-
エクセルVBA 個人用マクロブッ...
-
個人用マクロブックが消えました
-
名前の変わるブックをアクティ...
おすすめ情報