ページを更新しました。
fastclassinfo.com
上記のページで、最新情報を記載しています。
このページの情報は古いので、ぜひ上記のページの情報をご覧ください。
あるフォルダの中に、複数の子フォルダを作成したいときがあります。
例えば、以下のようなフォルダがあるとします。ここにはエクセルファイルが一つだけで、子フォルダはありません。
このフォルダに階層別に複数の子フォルダを作ります。(以下はイメージ)
上記のようにフォルダを作成する作業は、手入力でも可能です。
しかし、作成したいフォルダ数が多いときはマクロを使った方がラクに仕事を終わらすことができます。
実際、マクロを使えば、10コでも100コでも自動で処理を行うことができます。また、フォルダ名称を間違えずに作成することができます。
そこで、マクロを使って処理する方法を紹介します。
- フォルダを階層別にまとめて一括作成するマクロの解説
- フォルダ内のExcelファイル全てに処理をするマクロを作成する前の準備
- VBAのプログラムは以下で紹介
- 動画で紹介したエクセル(マクロ入り)はこちらからダウンロードできます
- エクセルを自分用に編集アレンジして使いたいなら、エクセルマクロの無料動画で学ぼう
ページを更新しました。
fastclassinfo.com
上記のページで、最新情報を記載しています。
このページの情報は古いので、ぜひ上記のページの情報をご覧ください。
フォルダを階層別にまとめて一括作成するマクロの解説
この記事で紹介するマクロは、以下の動画で説明しています。
エクセルマクロVBAでフォルダを階層別にまとめて一括作成する方法
動画の中では、「クリア」ボタンが設定されています。しかし、機能を持っていないため、説明をしていません。
フォルダを階層別にまとめて一括作成するマクロの概要
この記事で紹介するマクロについて説明していきます。
ステップ2|フォルダを指定し、1で記入した名称をもとにフォルダを階層別に作成する
以下で実行する前の状態と実行後の結果について詳しく紹介します。
ステップ1|エクセルに階層別にフォルダURLと作成したいフォルダ名を記入する
[1] エクセルに階層別にフォルダURLを記入する
[2] エクセルに作成したいフォルダ名を記入する
詳細は、以下の画像で示した通りです。
ステップ2|ステップ1で記入した情報名称をもとにフォルダを階層別に作成する
マクロを実行すると、[1]で記入した情報をもとにフォルダが作成される。
実際に、マクロを動かした後のフォルダの階層は以下です。
フォルダ内のExcelファイル全てに処理をするマクロを作成する前の準備
プログラムを紹介する前に準備をします。以下の2つの準備を行います。
1. エクセルに必要情報を記入する
2. VBAのプログラムを作る前にFSO操作の参照設定を行う
以下で詳しく説明します。
1. エクセルに必要情報を記入する
以下の1と2にURLと作成したいフォルダ名称を記載する
2. VBAのプログラムを作る前にFSO操作の参照設定を行う
このマクロを使うときは、VBEの参照設定を変更する必要があります。参照設定とは、機能拡張のことです。
このプログラムを使うのには、参照設定で以下のライブラリに追加する必要があります。
1.VBEを開いて頂いて、「ツール」→「参照設定」
2.このライブラリにチェックを入れて、OKをクリック
・Microsoft Scripting Runtime
この設定を変更しないとマクロが動きません。忘れずに設定するようにしてください。具体的な設定方法は以下の通りです。
1.VBEを開いて、「ツール」→「参照設定」
2.以下の2項目にチェックを入れて、OKをクリック
・Microsoft Scripting Runtime
なお、Microsoft Scripting RuntimeはVBAでフォルダを操作できるようにするために必要です。
VBAのプログラムは以下で紹介
このマクロの概要は以下です。
[2] 同じ行に複数回記入されていないことを確認
[3] 同じ行に複数回記入されていた場合、処理を止める
[4] 階層別にフォルダを作成する
マクロのプログラムは以下です。
Option Explicit Sub makefolder() Dim i As Long, cmax As Long, x As Long, z As Long, cnt As Long, j As Long, k As Long Dim ws1 As Worksheet Dim str As String, url As String Dim s As String, s1 As String Dim n1 As Long Dim fs As FileSystemObject Set fs = New Scripting.FileSystemObject Set ws1 = Worksheets("フォルダ作成") cmax = ws1.Range("A65536").End(xlUp).Row cnt = ws1.Range("IV4").End(xlToLeft).Column '[1] セルB2にURLが記載されているかチェック If ws1.Range("B2").Value = "" Then MsgBox "セルB2に「作成先のフォルダURL」を入力して下さい" ws1.Range("B2").Activate Exit Sub End If url = ws1.Range("B2").Value '[2] 同じ行に複数回記入されていないことを確認 For i = 5 To cmax x = 0 For j = 0 To cnt - 2 If ws1.Range("B" & i).Offset(0, j).Value <> "" Then x = x + 1 End If Next If x > 1 Then z = z + 1 End If Next '[3] 同じ行に複数回記入されていた場合、処理を止める If z > 0 Then MsgBox "入力情報を見直してください" Exit Sub End If '[4] 階層別にフォルダを作成する For j = 0 To cnt - 2 For i = 5 To cmax s = "" If ws1.Range("B" & i).Offset(0, j).Value <> "" Then s1 = ws1.Range("B" & i).Offset(0, j).Value For k = 0 To j If k - j = 0 Then Exit For End If n1 = ws1.Range("B" & i).Offset(0, j - k - 1).End(xlUp).Row s1 = ws1.Range("B" & n1).Offset(0, j - k - 1).Value & "\" & s1 Next s = url & "\" & s1 fs.CreateFolder s End If Next Next Set fs = Nothing End Sub
動画で紹介したエクセル(マクロ入り)はこちらからダウンロードできます
この記事で紹介しているマクロ入りのエクセルファイルは以下のダウンロードできます。
エクセルマクロVBAでフォルダを階層別にまとめて一括作成する方法
動画の中では、「クリア」ボタンが設定されています。しかし、機能を持っていないため、説明をしていません。
以下のフォームにメールアドレスを入力いただくと、返信メールからエクセルファイルをダウンロードできます。
エクセルを自分用に編集アレンジして使いたいなら、エクセルマクロの無料動画で学ぼう
この記事では、フォルダ内のExcelファイル全てを処理をする方法を紹介しました。
しかし、この記事を見たとき、「もっと○○ができるのでは?」や「ここはなんとかならないのか」と感じる人は少なくないはずです。
例えば、「他の条件を付け加えたい」や「さらに機能を増やしたい」といった要望が出るかもしれません。
このような要望を満たすには、マクロを勉強して自力でマクロを編集できるようになる必要があります。
もし、自力でマクロを編集できるようになれば、今より仕事の効率はグッと上がります。
実際、私も自力でマクロを書けるようになってからは、仕事の生産性が一気に上がりました。
他の人が30分~1時間かけて行う仕事が、ボタン一つで終わらせることができるようになったのです。その結果、周囲からの信頼も増し、仕事で高い評価を得られるようになりました。
ただ、要望に応えるようになるためには、マクロを学ぶ必要があります。
まずは無料でマクロを勉強してみる
ウェブや書籍で勉強すれば、マクロを習得できると考えている人は少なくありません。
しかし、仕事で使えるマクロを習得したいなら、仕事で使える部分に特化した教材で学ぶことをお勧めします。
なぜなら、ウェブや書籍には仕事に関係しない部分まで提供していることが多いからです。
例えば、マクロ初心者なのに配列を学ぼうとする人がいます。実は配列なしでも仕事で使えるマクロを書くことは可能です。
しかし、マクロ初心者ほど「全ての知識が必要だ」と考えて、無駄な学習に時間を使ってしまうのです。詳しくは、こちらの記事で紹介しています。
そこで、私がお勧めするのは仕事に直結するマクロ教材です。とくにお勧めするのは、こちらの無料オンライン動画です。
なぜなら、仕事に直結する部分に絞って、エクセルマクロを学ぶことができるからです。
マクロの作り方・考え方から解説しているので、教材をしっかり学べばここで紹介したマクロをゼロから書けるようになります。
マクロ初心者が、仕事に直結したいマクロを学ぶなら、まずはこちらの無料オンライン動画を試すのがいいです。
興味がある人は、まずは無料でエクセルマクロの勉強を始めてみてください。
もっと学びたいと感じたら、さらに深く勉強をしてみることをお勧めします。