• ベストアンサー

VBEでこんなことができますか。

エクセルのVBA(VBE)で、以下のことが可能でしょうか。 シート上のA列に並んだn個のセル内に文字列があります。 このn個の文字列をファイル名として、特定のフォルダ内に、 中身のない(0バイト)のn個のファイルを作成したいと思います。 こんなことができるvbのコードの作り方がありましたら、教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

0バイトのテキストファイルを作成します。 Sub Test()   Dim fn As Long   Dim c As Range   Dim myPath As String   myPath = "C:\Users\******\Desktop\" '特定のフォルダのパスを記述(例:デスクトップ)   For Each c In Range("A1:A3") 'A列に並んだn個のセルを記述(例:A1~A3セル)     fn = FreeFile     Open myPath & c.Value & ".txt" For Output As fn     Close fn   Next End Sub

teachmeright
質問者

お礼

短時間で、的確な回答を頂戴し、恐縮です。教えて頂いた内容を、自分の環境に合わせてやってみたら、無事動作しました。vbをもっと学びたくなります。ありがとうございました。心から感謝します。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

たとえば以下のような感じで Sub Sample() Dim MyMakeFile As Object Dim MyPath As String Dim MyFileName As String Dim i As Integer Set MyMakeFile = CreateObject("Scripting.FileSystemObject") MyPath = "D:\temp" For i = 1 To Range("A" & Rows.Count).End(xlUp).Row MyFileName = MyMakeFile.BuildPath(MyPath, Range("A" & i).Value) MyMakeFile.CreateTextFile MyFileName Next i Set MyMakeFile = Nothing End Sub

teachmeright
質問者

お礼

すばらしい回答をありがとうございました。 うまくいきました。n個を指定しなくても、 ファイルの終端まで繰り返す点や、 私が身につけていない方法があり、感心しました。 勉強になります。ありがとうございました。

関連するQ&A

  • VBE画面を閉じるコード

    alt+F11で、VBE画面を開いていますが、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub で、どこかのセルをクリックしたら、VBE画面を閉じたいのですが、コードを教えてください。 エクセルのアプリケーションのみ表示させたいです。 添付画像は、 エクセル(上) VBE(下) が開いてますが、VBEをVBAコードを実行して閉じたいです。

  • EXCEL VBAを使ってファイル内にある特定の文字すべてに色をつけたい

    おはようございます。 EXCEL VBAであるひとつのEXCELファイルの中のすべてのシートの特定の文字が入っているセルに色をつけるにはどのようなコードを使えばいいでしょうか? (例)田中 という文字列が入っているセルはすべてブルーの色がつくという感じです。 教えて下さい。 よろしくお願いします。

  • 拡張子「xlm」のファイルについて

    会社のExcelファイルで、拡張子が「xlm」のファイルがありました。Excel4.0というずいぶん古いバージョンのマクロのようですが、 (1)昔はこういうExcel4.0の「xlm」ファイルって、結構使われていたのでしょうか? (2)これのマクロはExcelのシートのセルにだけ書き込まれるものなのでしょうか?というのも、VBE画面でソースコードを見ようにも、VBAモジュールが全くなく、ソースコードらしきものはExcelのシートのセルにしか書かれていないからです。Excel4.0マクロって、VBEにソースコードを書き込むんじゃなく、Excelのシートのセルに命令を全て書いて動かすものなんでしょうか?

  • ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した

    ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出したいのですが、やり方をご存じの方がいらっしゃったら教えてください。 フォルダ内には150個ほどエクセルファイルがあり、中身のシート名・フォーマットは同じなのですが、すべてファイル名が違います。 ファイルを開くことなく、これらのファイルの特定のシートの特定のセルにある値を、全て1枚の表にまとめることは可能でしょうか? フォルダ名 →"AGENDA_RIREKI" 参照したいファイル名 →ファイルによって異なる "#1111 AAA.xls"など 参照したいシート名→ "AGENDA" 参照したいセル→ "A7" と "E20~E70(E列のみ) データをまとめたいファイル名→ "AGENDA_matome.xls" データをまとめる時の形↓ (A列)          (B列)            (C列)        (D列) ファイル1のA7の値 ファイル1のE20の値  ファイル2のA7の値  ファイル2のE20の値                     E21の値                    E21の値                     ・                     ・                     ・     VBAは初心者です。。できればコードをそのまま拝借したいです。 お知恵を貸してください。よろしくお願いします。

  • VBA 複数ブックへ書き込み

    VBA初心者です。 1つのフォルダ内にある100(ファイル名001から100)個のエクセルファイル(ブック)の特定の場所(すべてのエクセル ファイルはファイル名は違うが、同一のシート名で同一のセルの構造になっている。 以上に対して、1つのもとになるファイルA(ブック、シート)の特定のセル(同一列の行を上から順次下る)セルの値を先の同一フォルダ内のエクセルファイル100(001~100)個に対して、ブックオープン、特定セルのデリート、特定セルへの書き込み、ブック保存という一連の作業を行いたいです。 多数のファイルから1つの集計ファイルに値を読み込んできて書き込むサンプルはあるようですが、逆に1つのファイルから同一フォルダ内の多数のファイル(ブック)の特定場所に書き込むためのサンプルコードを教えていただけると大変助かります。 以上よろしくお願いいたします。

  • エクセルVBAをつかってフォルダ内のファイルの特定シートのデータを1つのシートにまとめる

    はじめまして。 過去ログ検索しましたが、載っていないようなので投稿させていただきます。 ブックAがあるフォルダ内にある「○年*.xls」のさらに「○月(○月以外のシートもあり)」のシート内の特定のセル(範囲は固定されてます)の文字列を、全てブックAの1つのシートにまとめたいのですが、VBAにてこれは可能ですか? フォルダ内のファイルが複数だったり、またそのファイル内の該当シートが1つだったり複数だったりで、かなり行き詰ってます。 どなたかご存知の方いらっしゃいましたらご教授願います。 エクセル2000を使用しております。

  • VBE画面とシート画面を同時に表示させるには?

    Excel VBA独習者です。 プログラム作成時におけるセル番地指定を確実にするため、VBE画面と、シート画面を同時に表示させたいのです。 複数シートの同時表示はWindowsの新しい画面の表示でできるのですがが、VBE画面は新しい画面として選択できないので方法がわかりません。 どなたか教えていただけないでしょうか。 よろしくお願いいたします。

  • VBAを使い、同一フォルダにあるファイルの特定のシートの情報を取得したい

    はじめまして。 書籍や過去の質問等を調べましたが、類似するものを見つけられなかったため質問させていただきます。 Xというエクセルファイルで、Xと同一フォルダ内にある、ファイル名に特定の文字列(例えば「月報」)を含んだ全てのエクセルファイルの、特定の文字列(例えば「○年○月」)を含んだ全シートの、一定のセル範囲をひとつのシートにまとめたいと思っています。 X内のコマンドボタンで動かす予定ですが、複数のボタンになると自分では思っています(ボタンAでファイル名の取得、ボタンBでシートの取得、ボタンCでセルに貼り付け、みたいな感じで。ボタンの数は特に制限はないです) 要点としては a, 定定の文字列を含んだファイル名の取得 b, aで取得したファイル内の特定の文字列を含んだ全てのシート内の一定のセル範囲の取得(シートの数はファイルによる。必ずしも1つというわけではない。) c. bで取得した一定のセル範囲のデータを、1つのシートにまとめる。 あとはこれらのデータをtxtやcsvなどに出力できるようにするつもりです。 私がやってできたのは、同一フォルダ内にあるファイル名に特定の文字列を含むファイルの全てのファイル名を指定したセルに吐き出すことしかできませんでした。 なんか、ややこしい表現かもしれませんが、ご指導お願いします。 環境はxp、エクセル2003です。 よろしくお願いします。

  • セルの項目をシート名にしたい

    はじめまして、vba初心者の者です。 セルB3から始まるB列にある、 項目を各シートの名前にしたいです。 セルB列のセルの中身がnullになれば終了という動作。 例えば。 セルB3に「山田」という文字列があれば、Sheet1は山田にする。 セルB4に「佐藤」という文字列があれば、Sheet2は佐藤にする。 よろしくお願い申し上げます。

  • エクセルVBAで複数のファイルをひとつにまとめる

    はじめまして。 VBA初心者で恐縮なのですが、教えてください。   ブックAAAがあるフォルダ内に複数ある「***.xls」の全てのフイルのシート「A」内の特定のセル(A1:F30)の文字列を、全てブックAAAの1つのシートの特定の列(A:F)に重ねてまとめたいと思っています。 但し、シート「A」は非表示となっていて、また、「***.xls」のファイルは全て「ブックの保護」がかかっているため、シート「A」を表示させるためにはパスワードの入力が必要となります。 これをVBAを使って実行することは可能でしょうか。複雑で手に負えず行き詰っています。 どなたかご存知の方いらっしゃいましたらご教授願います。 エクセル2007を使用しております。  

専門家に質問してみよう