wildcardのプロフィール
- ベストアンサー数
- 54
- ベストアンサー率
- 54%
- お礼率
- 50%
- 登録日2003/01/05
- フォルダ内の複数ブック・シートを一括保護/解除する
フォルダの中に複数のExcelファイル(ブック)が入っており、 それら全てのブック・シートの保護/解除を一括して行うマクロを現在使用しています。(後述) <現在の利用状況> ◆フォルダの中に複数のExcelファイル(ブック)が入っている(雛形、シート構成は全て同じ) ◆全てのブックにパスワード付きでブック保護・シート保護をかけている→パスワードは共通(1111) ◆マクロ用ブックは上記の処理対象ブックとは別フォルダに入れている (現在のVBAでは同一フォルダ内に入れた状態では作動しない) ◆マクロを実行する都度、任意のフォルダを選択する <改善希望> ◆マクロ用ブックと処理対象のブックを同一フォルダに入れた状態で作動するようにしたい (同一フォルダ内の自ブック以外のブックに対してブック・シートの保護/解除を一括処理したい) VBA初心者なので構文をどう書き換えるかで行き詰っています。 ThisWorkbook.Path を使うというのはなんとなく分かりますが、 何パターンか試してエラーの繰り返しです…。 ご教示頂けます様お願いいたします。 ------------------------------------------------------------------------- Sub 選択フォルダ内全て保護() Dim myFol As Object, myFile As Object, sh As Worksheet Dim openFilePath As String Const myPass As String = "1111" Set myFol = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0) If myFol Is Nothing Then Exit Sub Application.ScreenUpdating = False openFilePath = myFol.self.Path & "\" With CreateObject("Scripting.FileSystemObject") For Each myFile In .GetFolder(openFilePath).Files If .GetExtensionName(myFile.Path) = "xls" Then With Application.Workbooks.Open(myFile.Path) For Each sh In .Worksheets sh.Protect Password:=myPass, DrawingObjects:=False, Contents:=True, Scenarios:=True, _ AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, _ AllowInsertingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True Next sh .Protect Password:=myPass, Structure:=True, Windows:=False .Save .Close False End With End If Next myFile End With MsgBox "終了しました" End Sub ------------------------------------------------------------------------- Sub 選択フォルダ内保護全て解除() Dim myFol As Object, myFile As Object, sh As Worksheet Dim openFilePath As String Const myPass As String = "1111" Set myFol = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0) If myFol Is Nothing Then Exit Sub Application.ScreenUpdating = False openFilePath = myFol.self.Path & "\" With CreateObject("Scripting.FileSystemObject") For Each myFile In .GetFolder(openFilePath).Files If .GetExtensionName(myFile.Path) = "xls" Then With Application.Workbooks.Open(myFile.Path) For Each sh In .Worksheets sh.Unprotect Password:=myPass Next sh .Unprotect Password:=myPass .Save .Close False End With End If Next myFile End With MsgBox "終了しました" End Sub -------------------------------------------------------------------------
- ベストアンサー
- オフィス系ソフト
- komakoma5050
- 回答数1
- excel マクロでの特殊文字入力方法
マクロで特殊文字入力は出来ないのでしょうか? やりたい内容は、セルをダブルクリックした時に✓を表示させたいのです。 セルをダブルクリックした時に○を表示するマクロが、下記の通りである時、 ○の代わりに✓を表示させたいのですが、VBAで○の所に✓で書き換えると ?と表示されてしまいます。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Value = "○" Then .Value = "" Else .Value = "○" End If End With End Sub
- Accessのリンクテーブルについて質問です。
Accessのリンクテーブルについて質問です。 この度、バックエンドとフロントエンドでのデータベースを作っています。 フロントエンドを会社のPC10台程度で利用しようと考えています。 ただ、作成するのが、自宅のPCと会社のPCで作っているのですが、 リンクテーブルのパスが変わってしまい、非常に困っています。 現在は自宅でデータ系を作成し、会社でフォーム等見た目に関するものを作っている次第です。 リンクテーブルを自動更新させる方法、または、ボタンで全てのリンクテーブルを更新させる方法はないでしょうか? 一つのテーブルをボタンで更新させる方法は、他サイトで見つけたのですが、複数テーブルを一挙に更新させる方法が見当たりません。 また、面倒な話なのですが、テーブル数は現在決まっておらず、今後増える予定です。(現在は7つ。) 出来れば参考サイトやソースコードを教えていただけると、非常に助かります。 何卒よろしくお願いいたします。m(_ _)m
- ベストアンサー
- その他(プログラミング・開発)
- abuhiro
- 回答数2
- 【Access97】txtファイルの一括インポート
txtファイルをAccessへ自動でインポートする方法としてはマクロの”テキスト変換”しか知識がありません。 今回そのtxtファイルが1000個以上あり、一回一回txtファイル名を変えての”テキスト変換”では膨大な時間がかかってしまいます。 ファイル名はすべて「数字4桁.txt」で統一、1つのフォルダ内に保存してありますので、この条件でAccessへ一度に取り込む方法があればご教授ください。 <txtファイル:ヘッダーなし、1ファイルにつき1~100行程度のデータ> 001,"トウキヨウ","東京" 002,"オオサカ","大阪" 003,"ナゴヤ","名古屋" 004,"フクオカ","福岡" ・ ・ ・ <Accessテーブル:フィールド名はtxtデータの並び順に合わせて作成> ─── ──── ─── 番号 支店カナ 支店名 ─── ──── ───
- ベストアンサー
- その他MS Office製品
- KO1014
- 回答数3
- Outlook Expressが立ち上がらなくなってしまいました
今朝からOutlook Expressが立ち上がらなくなってしまいました。 今まで通り、デスクトップのショートカットから立ち上げようとしましたが、反応がありません。 プログラムメニューから立ち上げようとしても同じ状況で、とても困っています。 昨夜ウイルスバスターを2008から2010にバージョンアップしましたが、そのことと何か関係があるのでしょうか? 是非、対処策を教えていただきたいです。 よろしくお願いいたします。
- ベストアンサー
- その他(メールサービス・ソフト)
- Heppokorin
- 回答数4