advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1437 for フォルダ 選択 (0.009 sec.)
フォルダ (4447), 選択 (24694)
[[20100812165342]]
#score: 4655
@digest: b40958e671a855382bb4b8d9b0af4648
@id: 50871
@mdate: 2010-08-19T06:31:12Z
@size: 9757
@type: text/plain
#keywords: 告フ (88868), objpath (79658), 次報 (62959), nijiniji (49037), writepath (36340), loadpath (29523), writepass (26885), loadpass (26885), setpassword (20721), 月次 (20265), strpath (19514), スワ (17388), ド設 (15545), ダ¥" (13393), strbookname (13347), browseforfolder (12371), mypass (11861), 1130 (11029), 択", (10527), パス (7803), ォル (6347), strfilename (6220), ルダ (5435), ブフ (5053), 報告 (4835), ワー (4636), フォ (4453), password (3639), activeworkbook (3212), ファ (3051), にパ (2804), サブ (2742)
『マクロで複数のファイルに、ファイル毎に指定のパスワードを設定したい』(nijiniji)
毎月作成している月次データexcelのファイル約30に対し、パスワードの指定をして 登録したい。パスワード設定後メール配信した後、来月のデータを取り込む為に パスワードをはずしたい。 大まかな形としては、フォルダに 30ファイル (ファイル名は固定) 111-1111.xls 〜 130-1130.xls パスワード設定用ファイルに、上記30のファイル名と指定のパスワードを入力して おきパスワード設定マクロを実行・パスワード解除マクロを実行。 というような構想なのですが、 Sub set_passwd() Dim strBookName As String strBookName = ActiveWorkbook.Path & "¥" & ActiveWorkbook.Name Application.DisplayAlerts = False ActiveWorkbook.SaveAs _ Filename:=strBookName, _ FileFormat:=xlNormal, _ Password:="", _ WriteResPassword:="", _ ReadOnlyRecommended:=False, _ CreateBackup:=False Application.DisplayAlerts = True End Sub 上記マクロを見つけてきましたが、これだと1ファイル毎に設定し、パスワード その都度入れたり、削除したりと入力待ちがいが発生してファイルを開けなくなり そうなのでなんとか、自動にしたいのですが。ここまでくるとシステムにならざる をえないのでしょうか。 ご教授下さい。 Excel2002 WindowsXP ---- >111-1111.xls > 〜 >130-1130.xls だと30ファイルにならないですよね? 101-1101.xls 〜 130-1130.xls だと仮定して 元のブックにパスワードを設定するのではなくて 最初に選択したフォルダ内にサブフォルダを作って、その中に パスワード付きのブックを新規作成するサンプルです。 ヘルプなどを使って調べてみてください。 Sub test() Const myPass As String = "1234" 'パスワード Dim myPath As Object Dim strFileName As String, LoadPath As String, WritePath As String Dim i As Long Set myPath = CreateObject("Shell.Application").BrowseForFolder(0, "ブックがあるフォルダ選択", 17) If myPath Is Nothing Then Exit Sub LoadPath = myPath.Items.Item.Path & "¥" WritePath = LoadPath & "PasswordFiles¥" MkDir WritePath Application.ScreenUpdating = False For i = 1 To 30 strFileName = Format(i, "100") & Format(i, "-1100") & ".xls" With Workbooks.Open(LoadPath & strFileName) .SaveAs WritePath & strFileName, Password:=myPass .Close False End With Next i Application.ScreenUpdating = True MsgBox "完了" End Sub (momo) ---- 早々のご教示ありがとうございます。 正直申しまして、自分の都合に合うマクロをそのままパクッて使った事しかないので コードを理解していません。 上記コードとサブフォルダを作ってやってみましたが、 パス名が無効のエラーとなってしまいました。 どこを直せばいいのでしょうか? Const myPass As String = "1234" 'パスワード なぜここにパスワードなのでしょう? ずうずうしいのですが見捨てず教えてくだされば・・・ (nijiniji) ---- サブフォルダはコード内で作っていますので作らなくて大丈夫です。 MkDir WritePath ここで作ってます。 >Const myPass As String = "1234" 'パスワード >なぜここにパスワードなのでしょう? コード内で直接指定しても構いませんが、可読性と設定しやすさで Constで最初に設定しているだけですので なぜ・・・というより、では逆にどのようにパスワードを設定したいのでしょうか? (momo) ---- >Const myPass As String = "1234" 'パスワード >なぜここにパスワードなのでしょう? これだと30ファイル全て同じパスワードになるのではないのですか? >なぜ・・・というより、では逆にどのようにパスワードを設定したいのでしょうか? 初回の説明不足のようで・・・ こちらの大構想なのですが・・・ @月次報告フォルダ の中にある 顧客別実績30ファイルに 101-1101.xls 102-1102.xls 〜 129-1129.xls 130-1130.xls Aパスワード設定マクロ.xls このファイルは、@と同じ中でもサブフォルダの中でもどこでもいいです。 Aファイルには、A列に、@月次報告フォルダと同じファイル名。 B列に、パスワードを入力。 101-1101.xls 1234 102-1102.xls akb48 〜 129-1129.xls tky123PO 130-1130.xls 130-1130 マクロを実行をすると、@のフォルダを順番に検索し、AのファイルA列と同じ名前が 有ったら、B列のパスワードを設定。なければ何もしない。 となるように、@フォルダのファイルに指定のパスワードを設定したいのです。 @のファイル数と、Aの入力数は同じではありません。顧客によって設定・非設定の要望が あるので。 また、この作業は毎月行うので、設定したのち(顧客に送付後) 来月のデータを取込むため、パスワードを解除するまでのマクロをにしたいのです。 高望みしすぎだと思いますが・・・ (nijiniji) ---- そいういう事ですか。 ですと殆どのコードが変更になりますが Sub パスワード設定() SetPassWord True End Sub Sub パスワード解除() SetPassWord False End Sub Sub SetPassWord(flgPass As Boolean) Dim objPath As Object, strPath As String Dim tbl As Variant, i As Long Dim LoadPass As String, WritePass As String Set objPath = CreateObject("Shell.Application").BrowseForFolder(0, "ブックがあるフォルダ選択", 17) If objPath Is Nothing Then Exit Sub strPath = objPath.Items.Item.Path & "¥" tbl = ActiveSheet.Range("A1").CurrentRegion.Value Application.ScreenUpdating = False Application.DisplayAlerts = False For i = 1 To UBound(tbl) If Dir(strPath & tbl(i, 1)) <> "" Then If flgPass = True Then LoadPass = "": WritePass = tbl(i, 2) Else LoadPass = tbl(i, 2): WritePass = "" End If With Workbooks.Open(strPath & tbl(i, 1), Password:=LoadPass) .Save .SaveAs strPath & tbl(i, 1), Password:=WritePass .Close False End With End If Next i Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "完了" End Sub パスワード設定を動かすと設定されて、解除を動かせば解除されます。 (momo) ---- momoさん 連絡が遅くなり失礼いたしました。 望んでいた通り、パスワード設定・解除が出来ました。 ありがとうございました。 おんぶに抱っこで申し訳ありません。 「@月次報告フォルダ」の階層が深いので、フォルダの指定をしたいのですがその場合、 5行目、 Set objPath = CreateObject("Shell.Application").BrowseForFolder (0, "ブックがあるフォルダ選択", 17) を Set objPath = Dir(ActiveWorkbook.Path + "¥@月次報告フォルダ¥") にすると、1行目が型エラーになります。 Dir は、文字列型 (String) ですが、どこをどう直せばいいのかわかりません。 どうかご教授下さい。 (nijiniji) ---- >Set objPath = CreateObject("Shell.Application").BrowseForFolder(0, "ブックがあるフォルダ選択", 17) >If objPath Is Nothing Then Exit Sub この2行をコメントアウトしておいて >strPath = objPath.Items.Item.Path & "¥" を strPath = ActiveWorkbook.Path + "¥@月次報告フォルダ¥" にすればできると思いますが Dir関数を使う意味はないと思いますが ちなみにフォルダが無い場合はエラーになります。 (momo) ---- 上記、マクロの一部訂正をしましたが、 「ファイルが見つかりません」のエラーになりました。 1から10まですみません。 (nijiniji) ---- >ちなみにフォルダが無い場合はエラーになります。 という結果ですよね? もしかして「@月次報告フォルダ」をルートとしてフォルダ指定をしたいという事ですか? その場合は以下のように変更で。 Set objPath = CreateObject("Shell.Application").BrowseForFolder(0, "ブックがあるフォルダ選択", 17, ActiveWorkbook.Path + "¥@月次報告フォルダ¥") If objPath Is Nothing Then Exit Sub strPath = objPath.Items.Item.Path & "¥" (momo) ---- momoさん また言葉足らずですみません。 @月次報告フォルダ は、また別のフォルダ「法人別報告ファイル」に、 「法人別報告ファイル」は、「2010利用実績」のフォルダの中というように、何階層にもなる 社内専用のファイルサーバに入っています。通常デスクトップからショートカットーキーで、 @月次報告フォルダ まで掘り下げて入っていきます。 上記マクロだと、「フォルダの参照」になりショートカットキーに入れません。 (今は試作中でデスクトップにフォルダを置いているので問題ありませんが) Aパスワード設定マクロ.xls のマクロの実行を掛けたとき、@月次報告フォルダを すぐに参照するようにしたいのです。 (nijiniji) ---- > Set objPath = CreateObject("Shell.Application").BrowseForFolder(0, "ブックがあるフォルダ選択", 17, ActiveWorkbook.Path + "¥@月次報告フォルダ¥") の()内の最後のパラメータが初期フォルダですので そこのパスを設定してあげるだけなのですが・・・ フォルダ選択に問題があるのですか? ショートカットを選択するようにするにはファイル選択をしなければならないので 対象ファイルも全て選択するようにしなければなりません。 具体的にどのようにしたいのかが良くわかりません (momo) ---- momoさん いろいろとありがとうございます。 「ファイル名がみつかりません」の原因は、momoさんに教えてもらってる時は 簡単なファイル名にしていました。正式ファイル名は長かった為、途中で切れてしまい ファイル名がない状態になっていました。 また、フォルダの指定については >strPath = ActiveWorkbook.Path + "¥@月次報告フォルダ¥" を strPath = ActiveWorkbook.Path & "¥" にしたら上手くいきました。 (フォルダ名を入れると二重になってしまい、設定されない) この解決は、職場の偉い方に教えてもらいました。 今回、仕事で大ミスを起こしてしまい、おおっぴらに相談も出来ず、 エクセルの学校に駆け込みました。 いつも人頼み・パクってばかりではダメですね。 毎回これを機にと思ってはいるのですが・・・ momoさん、最後までありがとうございました。 また何かの時はよろしくお願いしますm(_ _)m (^_^;) (nijiniji) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201008/20100812165342.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97054 documents and 608267 words.

訪問者:カウンタValid HTML 4.01 Transitional