複数ファイルシート一括検索(下階層対応版)

以前、「複数ファイルシート一括検索」という記事を書きました。複数のExcelファイルの全てのシートを対象として文字列検索をするマクロです。
フォルダ内の全てのファイルを対象としますが下の階層のフォルダには対応していませんでした。
今回、下の階層を含めて検索するように改良しました。 (さらに…)

シート保護のパスワードを探すマクロ

Excelのシートの保護を解除するためのパスワードを忘れてしまったときのために、マクロを使ってしらみつぶしに探します。 (さらに…)

シートの保護のパスワードは異なっても開くことがある

Excelはシートの保護ができます。パスワードを設定することもできます。
通常、パスワードは完全に一致しないと開かないものですが、Excel2007の場合は、開いてしまうケースがあります。
例えば「aaa」というパスワードに対しては「1au」「aec」という文字列でも開きます。
「123」に対しては「102」でも開きます。
おそらく、パスワードは、ある一定の法則で、もっと短い情報(文字列)に置き換えられて保存されているのだと思われます。
例えばパスワードが3桁の数字である場合、ランダムに入力すると当たる確率は1000分の1ですが、上の「123」の場合は「102」でも当たるので確率は500分の1になります。他にも当たる数列があるでしょうから、確率はもっと上がります。

まあ、シートの保護ですので、大した問題ではないという気もします。
ファイルの保護では上のパターンでは開きませんでした。

アクティブシートだけを保存するマクロ

ExcelでアクティブシートのみをExcel形式またはPDFで保存するマクロです。Excel2007で確認しました。

今回は保存場所をデスクトップに固定しています。
デスクトップのパス(フォルダ)は、WSHを使うと「CreateObject("WScript.Shell").SpecialFolders.Item("Desktop")」
で取得できます。

Excel形式で保存

シート名をファイル名にしてExcel形式で保存します。
アクティブシートのみを保存するために一度、シートをコピーし、そのシートを含むブックがアクティブになったところで保存し、閉じています。

Sub アクティブシートのみExcelでデスクトップに保存()
    desktop_path = CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & ""
    myname = ActiveSheet.Name
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs _
        Filename:=desktop_path & myname & ".xlsx"
    ActiveWindow.Close
End Sub

PDFで保存

シート名をファイル名にしてPDFで保存します。
PDFは、基本的にはアクティブシートだけが保存されますので、上よりシンプルです。

Sub アクティブシートのみPDFでデスクトップに保存()
    desktop_path = CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & ""
    myname = ActiveSheet.Name
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=desktop_path & myname & ".pdf"
End Sub

複数ファイルシート一括検索

Windowsにはファイルの内容を検索する機能があります。
しかしExcelを検索する場合、どのファイルにあるかは表示されますが、どのシートにあるかは表示されません。
シートが多いと、そのファイルを開いてから、また検索する必要があります。

そこで、ある文字列について、特定のフォルダにある、すべてのExcelファイルのすべてのシートを検索し、どのシートにあるかを表示するマクロを考えました。
検索結果を表示するだけでなく、該当のセルにハイパーリンクを張るようになっています。
Excel2007で確認しました。 (さらに…)

複数のExcelファイルを1枚にまとめるマクロ

複数のExcelファイルの内容を1枚のシートにまとめるには、コピー&ペーストを繰り返せばよいのですが、数が多くなると面倒です。
マクロで実行する方法を考えました。
あるフォルダに保存されている複数のExcelファイルとそのシートをすべて取得し、別の1枚のシートにまとめます。

ただし制限があります。
シートのレイアウトやサイズがすべて同じならばコピー&ペーストでよいのですが、そうとは限らないので、範囲をあらかじめ決めて、その範囲のセルの内容をテキスト形式で取得します。
つまり書式は無視されます。
また1枚のシートにまとめるときに左端にファイル名とシート名をセットします。
無駄な行を削除するために並び替えたりしてもすぐに復元できます。

サンプルは前半と後半に分かれます。
Excelファイルには「matome」というシートを作っておきます。 (さらに…)

Excelの複数ファイルのシート名一覧を作成

フォルダ内にあるExcelファイルについてすべてのシート名を取得して一覧にするマクロです。
実行すると対象となるフォルダの問い合わせがあり、そのフォルダにあるExcelファイルをすべてピックアップします。それらを開いてすべてのシート名を取得し閉じます。結果はアクティブになっているシートに貼り付けますので白紙のシートを開いてから実行してください。
なお、そのフォルダの下の階層のファイルについては対応していません。Excel2007で確認しました。 (さらに…)

Excelでシートを隠す方法

Excelのファイルを他人に渡す場合、見られたくないシートがある場合どうしたらよいでしょうか。
そのシートを削除してしまうのが手っ取り早いですが、別のシートがそのシートの値を参照していたりすると困ります。 (さらに…)


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報