- 締切済み
【Excel VBA】ファイルにヘッダーを挿入
Excel VBAが初心者です、よろしくお願いします。 仕事で必要なため本を読みながら挑戦しております。 アドバイスをいただけると助かります。 【実現したいこと】 あるフォルダ内に格納された多くのファイルに、ヘッダーを挿入します。ヘッダー挿入後のファイルは、新ファイルで保存をします。 詳細は下記のとおりです。また、作りかけのプログラムも以下のとおりです。 【詳細】 ・あるフォルダ:0001tokyou、0002tokyou・・・1000tokyou・・・(数字4桁は固定+tokyou)というファイルが格納されております。ファイル数はそのときによって異なります。これらは拡張子が無いファイルですが、メモ帳で開くことができます。VBAではフォルダを選択できることとします。 ・ヘッダー:ヘッダーは1種類ですが、項目は10個あります。 ・新ファイル保存:ヘッダー挿入前のファイル「0001tokyou」にヘッダーを挿入したら、「0001kantou」という新しいファイルで保存します。従って、0001tokyouファイルは存在したままです。 【作りかけのプログラム】 Sub ヘッダ挿入と別名保存() Dim myFile As String Dim mydata As String Dim myArray() As String Dim fileName As String Dim folderName As String Dim i, j As Integer Dim header As Variant header = Array("氏名", "性別", "年齢", "生年月日", "住所", "マンション名", "備考1", "備考2", "備考3", "備考4") '挿入するヘッダーを定義する。 If Application.FileDialog(msoFileDialogFolderPicker).Show Then folderName = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) End If '加工するファイルが格納されているフォルダを指定する。 If folderName = "" Then MsgBox "フォルダが指定されませんでした。処理を終了します。", vbOKOnly Exit Sub End If '加工するファイルが格納されているフォルダが指定されなかった場合の処理です。 fileName = Dir(folderName & "\*") Do While fileName <> "" myFile = Workbooks.Open fileName:=folderName & "\" & fileName For i = 0 To 8 'ヘッダーを新ファイルに挿入する。 Cells(1, i + 1).Value = header(i + 1) Next i fileName = Dir() Loop End Sub アドバイスをいただけると助かります。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hana-hana3
- ベストアンサー率31% (4940/15541)
>これらは拡張子が無いファイルですが、メモ帳で開くことができます。 Workbooks.Open で開いても、エクセルファイルではないので、提示されたプログラムでは処理できません。 もちろん、セルもありませんから記入する事もできないはずですが? 一度、エクセルファイルをメモ帳で開いて見てください。 ヘッダーを入れて何をしたいのか解りませんが、テキストファイルを扱うプログラムにしないと無理だと思いますが? http://officetanaka.net/excel/vba/file/file08.htm http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110.html
- tom11
- ベストアンサー率53% (134/251)
よく解りませんが、この操作は、手動でも 簡単に出来ることなのでしょうか??? もし、できるなら、自動マクロを利用したほうが 手っ取り早いです。 出来たマクロを参考に、改良すれば 良いかもしれません。
補足
tom11さん、ご意見ありがとうございます。 >よく解りませんが、この操作は、手動でも >簡単に出来ることなのでしょうか??? ⇒Excelのマクロ以外の方法でなら、手動でいくらか簡単に出来ます。 もし、できるなら、自動マクロを利用したほうが 手っ取り早いです。 出来たマクロを参考に、改良すれば 良いかもしれません。 ⇒Excelのマクロ以外の方法なので、マクロの記録で参照することはできません。 プログラミングを組むことで、僕以外の同僚が、この処理をできるようにすることが目的です。
補足
hana-hana3、教えていただいたURLを拝見させていただきました。 アドバイスありがとうございます。 >Workbooks.Open で開いても、エクセルファイルではないので、 >提示されたプログラムでは処理できません。 ⇒処理ができないことは知りませんでした。 Excelファイルであれば処理はできるのでしょうか。 0001tokyou.xls、0002tokyou.xls・・・1000tokyou.xls・・・(数字4桁は固定+tokyou.xls)というファイルに変更できます。 可能であれば、プログラムで示していただけると助かります。 >もちろん、セルもありませんから記入する事もできないはずですが? >一度、エクセルファイルをメモ帳で開いて見てください。 ⇒Excelファイルをメモ帳で開くと文字化けしてます。 拡張子がない今回のファイル(0001tokyou、0002tokyou・・・1000tokyou・・・(数字4桁は固定+tokyou)というファイル)を、Excelで開くと、セルに格納されております。 >ヘッダーを入れて何をしたいのか解りませんが、テキストファイルを >扱うプログラムにしないと無理だと思いますが? ⇒ヘッダーを入れる目的は、業務上必要な処理です。 自力で色々試しておりますが、アドバイスをいただけると助かります。