• ベストアンサー

エクセル表の列を読んで、Windowsのフォルダを自動生成するやり方を教えてください

技術的にできることなのかどうかわかりませんが、できることなら手作業でなく実現したいと思っています。 (1)エクセルの表の列(1列しか使わない)にカナで文字列が入っている。(5000行ぐらい) (2)その文字列をWindowsのフォルダ名にしたい。 (3)エクセル表を読んで、Windowsフォルダを自動的に生成する。 これがもし自動でできるのならば、作業工数が格段に減ります。ご存知の方ぜひ教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

Excelのバージョンが97くらいからであれば、Excel VBAというもので簡単に実現できそうだ。 以下のVBAプログラムはExcel2000で実行できた。 これは、自分のシートのA列を、中身が空っぽになるまで巡回し、Cドライブ直下にA列の内容でディレクトリをざくざく作るというものだ。 エラーが発生したら無視して次に進むようにしている。 これを参考に、近くの詳しい人に改造してもらってくれ。 ちなみにこれは、シート自身のモジュールに書き込む。 シートを開いて、ALT+F11を押して、「プロジェクト」中にあるシート名のアイテムをダブルクリックしたらプログラムを書く欄が出てくるのでそこに貼り付けるべし。 Public Sub buildDirectories() Dim rownum As Long On Error Resume Next rownum = 1 Do Until Me.Cells(rownum, "A").Value = "" MkDir "C:\" & Me.Cells(rownum, "A").Value rownum = rownum + 1 Loop End Sub

hellomiyoshi
質問者

お礼

早速の回答ありがとうございます! 教えていただいたコードで、ばっちり作成できました! フォルダをちまちま手作業で作成する・・なんてバカな事をせずにすみました! 本当にありがとうございます!感謝!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

No2 です。 訂正と補足 >ChDir path は、削除してください。 また、フォルダ名は ABC は可ですが、ABC\DEF のようにサブフォルダの作成は出来ません。

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

十分なテストはしていませんが・・・ 大丈夫だと思います。 Sub MakeFol() Dim i As Long Dim TopPath As String Dim FullPath As String TopPath = "C:\Tmp" If Dir(TopPath, vbDirectory) = "" Then MkDir TopPath Else i = MsgBox("作成済みのフォルダです。" & vbLf & "続行しますか?", vbOKCancel) If i = vbCancel Then Exit Sub End If ChDir path For i = 1 To 10000 If Cells(i, 1) <> "" Then FullPath = TopPath & "\" & Cells(i, 1) If Dir(FullPath, vbDirectory) = "" Then MkDir FullPath Else MsgBox FullPath & " 同名のフォルダがあります。" End If Else Exit For End If Next MsgBox "終了しました。" End Sub

hellomiyoshi
質問者

お礼

早速のご回答ありがとうございます! 教えていただいたコードはまだ試していませんが、 「作成済み」の処理まで書いていただいて丁寧なコードだなと感心しました。 本当に助かりました! ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Thunderbirdのフォルダからのアドレス帳の自動生成

    Thunderbirdのフォルダからのアドレス帳の自動生成 Thunderbirdでメールを20程のフォルダに分類して整理して使っています。 アドレス帳が煩雑になってきたので、この際、「フォルダに対応したアドレス帳」に作り直そうかと思いました。 手作業でできるのはわかっていますが、自動化できるなら自動化して作業量を減らしたいです。 質問は、タイトルのとおり、Thunderbirdのフォルダからのアドレス帳の自動生成する方法やそのようなフリーソフトを知りたいのです。 よろしくお願いします。

  • Excelのワークシートを自動生成2

    こんにちは、 昨日、ワークシートの自動生成方法を教えて頂いたものです。 皆様からの回答で逆にやりたいことがはっきりしたので再度質問させてください。 ExcelでSheet1のA列の1行目、2行目・・・入力最終行までの各行の文字を ワークシート名にした新しいブックを、自動生成したいです。 昨日は作成するワークシート数を指定しましたが 作成ワークシート数が変わることも想定したく思います。 ご教授のほど、何卒よろしくお願いします。ト

  • エクセルの表で自動的にリンクを貼れますか?

    表の行に番号をうちその列の1つに、自分のPCにあるフォルダ内に行の番号を名前として保存しておいたファイルを自動的にリンクされるような設定はできますか?

  • フォルダを自動生成するプログラム

        A       B 1 20071203 旭区駒込 2 20101103 豊島区神保町 3 20101230 江東区東松原町 … 上記のように、A列に8桁の半角数字、B列に複数の全角文字(漢字、ひらがな、カタカナ) が入力されたエクセルファイルがあります。 ここから、各行のA列とB列を結合したものを「フォルダ名」としたフォルダを生成したいと考えています。 20071203旭区駒込 20101103豊島区神保町 20101230江東区東松原町 … 上記のような「フォルダ」が作られるイメージです。 このようなことができる方法はございませんでしょうか? 何卒よろしくお願いいたします。

  • マクロボタンを自動生成する方法はありますか?

    エクセル2007を利用しています。 行ごとに一つのデータが詰まっている表があります。(表1) 非常に長い(AX列まで)ので、そのままでは見づらいです。、 なので、別の表(表2)にコピペして見やすくしたいのです。 また、随時手動で追加され、時には行の挿入もされます。 そこで、(表1)の行ごとのデータを、ボタンひとつで (表2)にコピペする方法はありますか? マクロは全くの初心者で、作成してはみたものの、 行の挿入がネックで、これをされると機能しなくなってしまいます。 さらに、追加されたときにこのボタンも自動的に生成できると 大変助かります。 どなたか、ご教授願えませんでしょうか? よろしくお願いいたしますm(_ _)m

  • エクセルでファイル間での表のコピーを自動で行いたいのですが。

    エクセルでファイル間での表のコピーを自動で行いたいのですが。 エクセルで別ファイルに表のコピーを自動で行いたいのですが。 AファイルとBファイルに同じ表が作成されていて (まったく同じではありません、例えばBファイルの表には最後の列や行には合計行があるとか) Aファイルの表が変更された場合Bファイルの表も自動的に変更されて欲しいのですが 表の中の値だけでなく 表の行や列が増えたり減ったりという事も変更したいのですが

  • エクセルで自動的に・・・

    ある表を作っています。作業を自動化したいです。 詳細は次の通りです。 ●1行目はタイトルです。 ●D列に数字を上書きすると、その行を表の一番下に並び替えたいです。 ●その行のH列に今日の日付を入れたいです。 このようにするには、どのようなことをすればいいですか? よろしくおねがいします。

  • エクセル 指定した文字列を含む列を削除するには

    人から貰ったエクセルの表を必要なデータを残して削除する作業をしています。 (例:セルK5やM5に現在在庫数が入っている列が不要なので削除) 行に関してはオートフィルタを使って削除していますが、 列に関しては行列を入替えて貼付→オートフィルタで削除→行列を入替えて貼付 で実現出来ていますが、かなり時間と手間がかかっています。 もう少し簡単に上記作業を実現したいのですが、どうしたらよいでしょうか?

  • エクセルでの、「条件付き合計値の自動入力」について

    いつもお世話になっております。 エクセルの工数表の作成に関して、御相談させて下さい。 エクセルで、 A列に「日付」、 B列に「その作業内容」、 C列に「作業時間」、 D列に「当日の総作業時間」を入力するような、 作業工数表を作成したいと思っています。 (具体例) 2/1 事務処理 2.0 2/1 資料作成 2.5 2/1 伝票処理 0.5 5.0 2/2 事務処理 3.0 2/2 資料作成 4.0 7.0         以上のような状態にしたいのですが、 D列の「総作業時間」を、 自動で入力されるようにするには、どうすればよいでしょうか…。 具体的には、 「A列が同日の日付の場合、その「作業時間(C列)」を合計し、 同日日付の最後の日の、D列に合計値を記入する。 という流れになるのかな、と考えているのですが、 具体的なコードが思いつきませんでした…。 アドバイスを頂けると助かります。 よろしくお願いいたします。m(_ _)m

  • エクセルでシート間での表のコピーを自動で行いたいのですが。

    エクセルでシート間での表のコピーを自動で行いたいのですが。 シート1とシート2に同じ表が作成されていて シート1の表が変更された場合シート2の表も自動的に変更されて欲しいのですが 表の中の値だけでなく 表の行や列が増えたり減ったりという事も変更したいのですが