フォルダを作成するMkDirステートメントの使い方を解説します。サンプルコードでは、毎月月初に当月のフォルダを作成するコードを取り上げます。
目次
今月のフォルダを作成する
いきなり文法の結論
ずばり、こう書きます。
MkDir パス
Cドライブ直下に「サンプルフォルダ」というフォルダを作るサンプルコードは下記の通りです。
Sub C直下にフォルダを作る() MkDir "C:\サンプルフォルダ" End Sub
MkDir の後に作成したいフォルダのフルパスを書きます「\」は「¥」という理解でOKです。環境によって見え方が違うだけでバックスラッシュと円マークは同じ意味です。
エラーになるケースを補足説明
文法*1はシンプルで簡単です。エラーになる場合について抑えておきましょう。エラーになるパターンは2つだけです。
- すでに存在しているフォルダのパスを指定する
- 親フォルダが存在していない
1点目については先ほどのサンプルコードをもう一度実行してみれば確認できます。一度目はエラーになりませんが、二度目はエラーになります。すでにCドライブに「サンプルフォルダ」というフォルダが存在するからです。
2点目については、上のサンプルコードで作成したサンプルフォルダの中に、「今月のフォルダ」を作成することを考えます。
Sub サンプルフォルダの中に今月のフォルダを作る() MkDir "C:\サンプルフォルダ\今月のフォルダ" End Sub
実行してみると確かに「サンプルフォルダ」の中に「今月のフォルダ」が作成されていました。
今回うまくいったのは、すでにサンプルフォルダを作成済みだったからです。サンプルフォルダを一度消して、このプロシジャを実行してください。すると、今度は別のエラーが出ます。
今回は「パス名が無効です」というエラーが出ました。存在しない「サンプルフォルダ」の中に「今月のフォルダ」を作成する命令を記述したため、「そんな親フォルダありません」というエラーになった、というわけです。これらを言い換えると、一番最後のパスのところだけ、まだ存在しないフォルダ名にして、親の部分はすべて既存のフォルダである必要がある、ということです。
今回やりたいことのイメージ
先ほど作成したサンプルフォルダに6桁の数字でYYYYMMという名前のフォルダを作成することが今回やりたいことです。
月ごとに何かのデータをYYYYMMというフォルダに日々ためていく業務を想像してください。月初に一回だけ、今月のフォルダを作りたい。という感じです。
サンプルコード
Sub 当月のYYYYMMフォルダを作る() Dim 当月num As Long 当月num = Year(Date) & Format(Date, "MM") MkDir "C:\サンプルフォルダ\" & 当月num End Sub
まとめ ~MkDirをつかって今月のフォルダを作成する方法~
- 文法は単純で、MkDir パス名
- エラーになる2つのパターンだけ覚えよう
<関連記事>
<お知らせ>
Excel VBAでクラスやオブジェクトの概念と使い方を丁寧に解説し、ワンランク上の実力を目指すガイドが電子書籍になりました。この本で本物の実力を身に付けて一皮むけてみませんか?
books.rakuten.co.jp
*1:プログラムの文法の事をシンタックスと言います