• 締切済み

Accessにおけるパスワード一括解除について

指定のフォルダにあるエクセルブックをアクセスにて一括解除してそのままAccessにインポートする方法を探しています。 vba初心者なのでコードも頂けると助かります。

みんなの回答

  • NuboChan
  • ベストアンサー率47% (745/1584)
回答No.1

過去レスに同じような質問が合った。 https://okwave.jp/qa/q294748.html

m_ryo94
質問者

補足

説明が足りず申し訳ありません。 現状としましては指定のフォルダに複数のパスワード付きファイルが存在し、最初の1つはパスワード解除に成功するのですが2個目以降の処理が上手く行きません。(終了と出るのですが解除されるのは1つのみです。) 現在ネット等を参考にこのようなコードを書いているのですが何処に原因があるか不明なためご教示頂きたいと思っております。 Private Sub passreset_Click() Dim DB As Database Dim RC As DAO.Recodset Dim RB As DAO.Recodset Dim RN As DAO.Recodset Dim RP As DAO.Recodset Dim SQL_TxtC As String Dim SQL_TxtB As String Dim SQL_TxtN As String Dim SQL_TxtP As String Dim strDocName As String Dim strNewName As String Dim oApp As Object Dim FLD_NAME As String Dim fname As String Set DB = CurrentDb() SQL_TxtC ="SELECT DISTINCT 地区 FROM マスタ" SQL_TxtB ="SELECT DISTINCT 部署 FROM マスタ" SQL_TxtN ="SELECT DISTINCT 番号 FROM マスタ" SQL_TxtC ="SELECT DISTINCT パスワード FROM パスワード" Set RC = DB.OpenRecordset(SQL_TxtC) Set RB = DB.OpenRecordset(SQL_TxtB) Set RN = DB.OpenRecordset(SQL_TxtN) Set RP = DB.OpenRecordset(SQL_TxtP) FLD_NAME = "¥¥~sample¥" & RC!地区 & "¥" & RB!部署 & "¥" strDocName = FLD_NAME & RN!番号 & ".xls" strNewName = FLD_NAME & RN!番号 & "パス無し" & ".xls" Set oApp = CreateObject("Excel.Application") fname = Dir(strDocName) 'Excelファイルオープン With oApp .Workbooks.Open FileName:=strDocName,Password:=RP!パスワード,WriteResPassword:=RP!パスワード '名前をつけて保存 .Visible = False .ActiveWorkbook.SaveAs strNewName,Password:="",WriteResPassword:="" .ActiveWorkbook.Close False .Quit End With Set oApp = Nothing Do While fname 〈〉 "" Loop MsgBox "終了" End Sub

関連するQ&A

  • ACCESS2000ファイルのインポートについて

    ACCESS2000を使用しています。 ある指定のフォルダにある複数のEXCELファイルを、ACCESSに一括でインポートしたいです。 EXCELファイルは範囲指定を行います。(例えばb2:d100までインポートしたい) ブック名は部署名が入っており、シート名はどのブックも同一シート名です。 どのように行えばいいでしょか。 ご回答の程、どうぞよろしくお願いいたします。

  • 【ACCESS】コマンドにVBAで動作をつけたい

    ACCESS2010使用をしています。 ACCESS使用歴はまだ数カ月と、初心者でございます。 フォームに作成したコマンドに色々な動作をさせたいと思っています。 付けたい動きは比較的単純だと思うのですが、 検索してもなかなかヒットせず、VBAで作成してみても、動いてくれません;_; お力をお貸し頂けると助かります。 以下にやりたい事を羅列いたしました。 【コマンド1をクリックすると】 指定のエクセルブックを開く 【コマンド2をクリックすると】 既存の更新クエリを"デザインビュー"で開く  (都度、中身を変えたいのでクエリを実行するのではなく、書き換えられるようにしたい) 【コマンド3をクリックすると】 既存の指定テーブルへ指定したエクセルブックをインポートをする   (指定のフォルダのから、インポートするエクセルブックを選択出来るようにしたい) ≪ 流れ(イメージ)は以下の通りです≫  コマンド3をクリック→指定のフォルダダイアログボックスが表示される  →エクセルブックを選択→インポート 説明不足の箇所がございましたすみません。 ご不明点等ございましら追記致します。 どうぞ、お知恵をお貸しくださいm(__)m

  • Accessを使ったデータの一括インポートについて

    VBA初心者です。 現在ExcelのデータをAccessにインポートする方法を探しています。 フォルダの構成としては 親フォルダに子フォルダがあり、そのなかにファイルがあります。 例としましては 親フォルダ 子フォルダ ファイル名 A aaaa 1111 B bbbb 2222 C cccc 3333 D dddd 4444 E eeee 5555 F ffff 6666 と言った感じです。 自分なりに調べて1つのフォルダの中にあるデータは全てインポートできそうです。(aaaaフォルダ内等) 現在、親ごとにテーブル分けして一括インポートできる方法を探しています。 現在のコードは Private Sub AAA_Click() Dim dname As String Dim fname As String Dim tblname As String dname = "c:\フォルダ名\" tblname = "テーブル名" fname = Dir(dname & "*.xls") Do While fname <> "" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, tblname, dname & fname, True fname = Dir() Loop End Sub これを用いようと考えてます。 ここから子フォルダ内を全て1つのテーブルにまとめるというところでつまづいております。 初心者のためコードも頂けると助かります。 よろしくお願いします。

  • AccessからExcelのパスワードを解除

    いつもお世話になっております。 結構切羽詰っている状況での質問です。 AccessからExcelのデータを取込むように VBAで作成しておりましたら、 困ったところで引っかかってしまいました。 Excelを開いている時はならないのですが、 そのExcelファイルそのものにパスワードがかかっている為、 直接Accessから開くと、エラーになってしまいます。 Access側からVBAを使って、パスワード解除は出来ませんでしょうか? どなたか教えて下さいm(_ _)m

  • エクセル 複数ブックの保護の一括解除について

    エクセル2003を使用しています。 具体的に質問致します。 1つのフォルダ内に100位のブックが存在します。 そのブックには、シートが1つだけあり、保護がかかっています。(パスワードはなし) その保護を一括して解除したいのです。マクロなどを使えば可能でしょうか? よろしくお願いします。

  • アクテイブなブック以外を一括非表示

    お世話になります。 エクセルの5つのブックを開き、VBAで、それぞれにアクセスするマクロを実行しているときに、誤って、アクテイブなブック以外のブックをクリックしてまうと、Workbooks(AAA).WorkSheets(BBB).Range("C1").Selectctなどのブックを指定している個所で、「インデックスが有効範囲にありません」のエラーがでて、マクロがとまってしまいます。 アクティブなブック以外を非表示にするとか、クリックできないようにする方法はないでしょうか?また、その解除方法も教えていただけたら助かります。 よろしくお願いします。

  • エクセル 範囲 にある「0」を一括して空白(NULL)にする方法について

    アクセスからエクセルの表をインポートする作業があるのですが、インポートした際、エクセル側に「0」があるので「0」もインポートされてしまい困っています。エクセル側で「0」が入力された範囲のセルをVBAなど自動一括で空白セルにする方法を教えてください。 (アクセス側でインポートする際、「0」を無視する方法でもいいです) どうぞよろしくお願いします。   A,B,C,D,E,   データ1,データ2,データ3,データ4,データ5   1 5,4,4,3,0 2 3,2,3,4,4  3 5,4,3,0,0     4 0,0,0,0,0 5 0,0,0,0,0 ~ ~ 40 0,0,0,0,0   

  • ハイパーリンクを一括で解除するには

    エクセルでハイパーリンク(メールアドレス)を一括で解除する方法を教えてください。 よろしくお願いします。

  • VBAプロジェクトのパスワード解除について

    VBAプロジェクトのパスワードを解除した後VBAプロジェクトにあるモジュールを削除するというコードを書きました。 解除まではできていますが、モジュールを解除するコードにくると保護されているというエラーが出て進めません。 いくつかのことを確認しましたが、解決に至らなかったので、ご教示いただけないでしょうか。 確認した内容は以下のとおりです。 (1)パスワード解除後にブレークポイントを設定して、VBAプロジェクトを触ってみましたが、モジュールは展開されず、パスワードも要求されません。 (2)パスワード解除後プログラムを強制終了して、解除したエクセルをダブルクリックして開き、VBAプロジェクトを触ると、パスワードは解除されていて、モジュールも展開されました。 (3)パスワード解除とモジュール削除を別々のプロシージャにして、パスワード解除をしてプロシージャを終わらせて、改めてモジュール削除のプロシージャを実行してみましたが、VBAプロジェクトが保護されていますと出て、モジュール削除のコードが実行できない。 VBAで処理するのは不可能であるなら、PowerShellとの組み合わせなどでできるようになるのでしょうか? とりあえずは、xlsmをxlsxで保存し直すことでモジュールを削除するという目的は達成しておりますが、上記の方法でもやってみたいのでご教示お願いします。

  • アクセス処理結果を書き出しすることはできる?

    こんにちは。いつもお世話になっています。 アクセスにてVBAで処理を回した後、処理結果を(1)アクセスに書き出し(2)エクセルに書き出しすることは、それぞれ可能でしょうか? もし可能であれば、(3)どのようなコードを使い実施することができるかお教えいただけないでしょうか? EX)インポートという処理に対しての書き出し事項 ・インポート完了しました。 ・インポート件数は○○件でした。 ↑これら情報をアクセス、あるいはエクセルへ書き出すことは可能でしょうか?

専門家に質問してみよう