ブック・ファイル
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
第11回 和風スパゲティ勉強会「FileSystemObject入門」の配布資料と配信アーカイブを共有します。FileSystemObjectの使い方を基礎から解説しましたので、復習や見逃し配信にご活用ください。
WorkbookオブジェクトのSaveCopyAsメソッドを使用することで、作業中のブックのコピーを作成して保存することができます。SaveAsと違い、実行しても処理中のブックがコピーブックに変わるではありません。
第11回のテーマは「FileSystemObject入門」ということで、FileSystemObjectの使い方を基礎から解説します。FileSystemObjectの真価「ファイルやフォルダをオブジェクトとして扱える」ことを体験しましょう。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
ブックの保存時にマクロを自動実行する方法を解説します。保存の直前に実行したい場合はBeforeSaveイベント、保存の直後に実行したい場合はAfterSaveイベントを使用します。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
Workbook_BeforeCloseとAuto_Closeの違いを解説します。どちらもブックを閉じる直前にマクロを自動実行する仕組みですが、閉じるのを中止する機能を有するbeforecloseが上位互換のためこちらを使いましょう。
Workbook_OpenとAuto_Openの違いを解説します。どちらもブックを開いた際にマクロを自動実行する仕組みですが、機能面に差はないため、基本はThisWorkbookに書けて管理しやすいWorkbook_Openを使っておきましょう。
ブックを閉じる際にマクロを自動で実行するにはBeforeCloseイベントを使用します。引数CancelにTrueを渡すと、ブックを閉じるのを中止できます。イベントを実行せずにブックを閉じるにはEnableEventsをFalseにします。
ブックを開いたときにマクロを自動実行するにはWorkbook_Openイベントを利用します。ただし実際には「マクロを有効化」した際に実行されるため、本当に開いた直後に実行させるにはいくつかの工夫が必要になります。
選択セル範囲にあるフォルダパスからフォルダを一括作成するマクロを紹介します。日付をTEXTJOIN関数で繋げてフォルダパスを生成するなど、規則性のあるフォルダを一括生成する際にご活用ください。
フォルダの構成をシートに書き出すマクロを紹介します。ダイアログで選択したフォルダの構成を新規シートに出力します。実行型の便利マクロですので、「個人用マクロブック」などに搭載して使ってください。
複数のファイルを一括で選択できるダイアログボックスを表示するには、GetOpenFilenameメソッドの引数MultiSelectにTrueを渡すか、FileDialogオブジェクトのプロパティAllowMultiSelectにTrueを代入して実行します。
ダイアログボックスによるファイル選択を実行する、GetOpenFilenameメソッドとFileDialogオブジェクトの違いを解説します。FileDialogの方が高機能ですがコードが面倒な傾向があります。
名前を付けて保存ダイアログを開くにはGetSaveAsFilenameメソッドを使用します。このメソッドは実際の保存はせず選択されたファイルのパスを返してくれるだけですので、実際の保存処理はこの後に実行してください。
ダイアログでファイルを選択する機能であるGetOpenFilenameとGetSaveAsFilenameの違いを解説します。どちらもパスをStringで返す点は同じですが、存在しないファイルを指定できる点などが異なります。
ダイアログボックスを開いてユーザーにファイルを選択してもらうにはGetOpenFilenameメソッドを使用します。初期フォルダの指定などより複雑な操作をを行いたい場合はFileDialogオブジェクトを使用してください。
ブックが読取専用か判定するには、WorkbookオブジェクトのReadOnlyプロパティを判定します。ReadOnlyは読み取り専用プロパティで、このプロパティに代入して読み取り専用の設定を変更することはできません。
ブックの読み取り専用を解除するにはWorkbookのChangeFileAccessメソッドが用意されているのですが、非常に癖が強いメソッドのため、一旦ブックを閉じてOpenでブックを開き直した方が良い場面が多いです。
ブックを読み取り専用で開くにはWorkbooks.Openの引数ReadOnlyをTrueに指定します。ただし既に開いているファイルに対して実行しても、エラーにはならず、かつ読取専用にはなってくれませんのでご注意ください。
開いているブックを読み取り専用にするにはWorkbookのChangeFileAccessメソッドを使用します。読取専用ブックに実行するとエラーになってしまうためReadOnlyプロパティを調べてから実行してください。
Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。
フォルダ内の複数ファイルへ同じ処理を行う場合、①まずは対象ファイルのリストを取得、②そのリスト内の全ファイルへ処理のように処理を段階化するのが便利です。この①を簡単に行うための汎用関数を紹介します。