こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

【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


アドバイスをいただけると助かります。
よろしくお願いします。

投稿日時 - 2010-02-25 22:48:36

QNo.5706413

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>これらは拡張子が無いファイルですが、メモ帳で開くことができます。

Workbooks.Open で開いても、エクセルファイルではないので、提示されたプログラムでは処理できません。
もちろん、セルもありませんから記入する事もできないはずですが?
一度、エクセルファイルをメモ帳で開いて見てください。


ヘッダーを入れて何をしたいのか解りませんが、テキストファイルを扱うプログラムにしないと無理だと思いますが?

http://officetanaka.net/excel/vba/file/file08.htm
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110.html

投稿日時 - 2010-02-26 11:45:44

補足

hana-hana3、教えていただいたURLを拝見させていただきました。
アドバイスありがとうございます。


>Workbooks.Open で開いても、エクセルファイルではないので、
>提示されたプログラムでは処理できません。

⇒処理ができないことは知りませんでした。
 Excelファイルであれば処理はできるのでしょうか。
 0001tokyou.xls、0002tokyou.xls・・・1000tokyou.xls・・・(数字4桁は固定+tokyou.xls)というファイルに変更できます。
 可能であれば、プログラムで示していただけると助かります。


>もちろん、セルもありませんから記入する事もできないはずですが?
>一度、エクセルファイルをメモ帳で開いて見てください。

⇒Excelファイルをメモ帳で開くと文字化けしてます。
 拡張子がない今回のファイル(0001tokyou、0002tokyou・・・1000tokyou・・・(数字4桁は固定+tokyou)というファイル)を、Excelで開くと、セルに格納されております。


>ヘッダーを入れて何をしたいのか解りませんが、テキストファイルを
>扱うプログラムにしないと無理だと思いますが?

⇒ヘッダーを入れる目的は、業務上必要な処理です。


自力で色々試しておりますが、アドバイスをいただけると助かります。

投稿日時 - 2010-02-26 23:00:18

ANo.1

よく解りませんが、この操作は、手動でも
簡単に出来ることなのでしょうか???

もし、できるなら、自動マクロを利用したほうが
手っ取り早いです。
出来たマクロを参考に、改良すれば
良いかもしれません。

投稿日時 - 2010-02-26 11:31:38

補足

tom11さん、ご意見ありがとうございます。

>よく解りませんが、この操作は、手動でも
>簡単に出来ることなのでしょうか???

⇒Excelのマクロ以外の方法でなら、手動でいくらか簡単に出来ます。
 
もし、できるなら、自動マクロを利用したほうが
手っ取り早いです。
出来たマクロを参考に、改良すれば
良いかもしれません。

⇒Excelのマクロ以外の方法なので、マクロの記録で参照することはできません。

プログラミングを組むことで、僕以外の同僚が、この処理をできるようにすることが目的です。

投稿日時 - 2010-02-26 22:46:20

あなたにオススメの質問