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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2023/01/20 14:36
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/12 16:58
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
[Excel VBA] フォルダ内の複数のパスワード付ブックを全て読み取り専用で開くには?
Visual Basic(VBA)
-
フォルダ内のブック全部にパスワードを設定したい
Excel(エクセル)
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
-
4
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
5
エクセルでエラーが出て困っています。
Excel(エクセル)
-
6
Excelのパスワードを自動入力にしたい。
Excel(エクセル)
-
7
エクセルでセル単独ごとにパスワードを設定する方法
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
EXCELパスワード付ファイルでリンクの自動更新について
Excel(エクセル)
-
10
VBA:ワークブックを変数でActiveにしたいのですが・・
Excel(エクセル)
-
11
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
12
エクセルで複数ファイルに同一のパスワードをまとめて設定したいです
Excel(エクセル)
-
13
フォームのテキストボックスの値をコピーしたい
Excel(エクセル)
-
14
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
15
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
16
【Excel関数】UNIQUE関数で0"を返さない方法?"
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセルVBAで作成した別ブック...
-
EXcelのマクロで相対パスでファ...
-
ファイル名変更後も、マクロを...
-
マクロの保存先、開いてるすべ...
-
エクセルのvbaにて thisworkboo...
-
[フィルターオプションの設定]...
-
【Excel】マクロの保存先について
-
【マクロ】マクロが保存されて...
-
ExcelのVBAコードについて教え...
-
複数のExcelファイルの印刷設定...
-
excelで直前に参照していたブッ...
-
エクセル 半角カナを全角に、...
-
エクセルを開いて文字を打つ際...
-
エクセル;相対パスを絶対パスへ...
-
マクロ 自動でパスワード及び指...
-
エクセルのマクロについて教え...
-
エクセルで上書き保存できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセル;相対パスを絶対パスへ...
-
マクロの保存先、開いてるすべ...
-
【Excel】マクロの保存先について
-
excelで直前に参照していたブッ...
-
EXcelのマクロで相対パスでファ...
-
エクセルVBAで作成した別ブック...
-
複数のExcelファイルの印刷設定...
-
エクセルのvbaにて thisworkboo...
-
EXCELのボタンによるマクロの登...
-
エクセルVBA 個人用マクロブッ...
-
EXCELマクロで、開いてはいるが...
-
EXCELブックが勝手に開いて困っ...
-
[フィルターオプションの設定]...
-
エクセルで未保存に対するメッ...
-
【Excel】特定セルの内容をテキ...
-
ファイル名変更後も、マクロを...
-
名前の変わるブックをアクティ...
おすすめ情報