ここから本文です

CSVファイルをエクセルに張り付けて、別名(年月日)で保存。というマクロをこちら...

アバター

ID非公開さん

2016/11/1518:07:14

CSVファイルをエクセルに張り付けて、別名(年月日)で保存。というマクロをこちらの知恵袋のみなさんに教えていただき使っています。

快適に使えているのですが、32行のテーブルに張り付けているのですが、たまに40行以上のデータを張り付けることがあるので困っています。
33行目から新しく張り付けなおして、年月日+1のような感じで保存できるか。

33行目から二つ目のシートに張り付けるようなマクロを組みたいです。

何度もお世話になり恐縮なのですが、また力を貸していただけると嬉しいです。
以下は今使っているマクロとその当時の質問です。


Option Explicit
Sub workbook_open()
Dim path As String, bk As Workbook
Dim fn As Integer, buf As String, data() As String
Dim r As Long, c As Long

'エクセルの再描画を抑止する
Application.ScreenUpdating = False

'このブックと同じフォルダ内のtable.xlsを開く
path = ThisWorkbook.path & "\"
Set bk = Workbooks.Open(path & "table.xls")

With bk.Worksheets("Sheet1").Range("B5")

'このブックと同じフォルダ内のE.txtを開く
Open path & "E.txt" For Input As #1
Dim WSH As Variant
Set WSH = CreateObject("WScript.Shell")
path = WSH.SpecialFolders("Desktop") & "\日報\"
Set WSH = Nothing
'EOFまで繰り返す
Do Until EOF(1)
Line Input #1, buf

'カンマで区切って配列に格納する
data = Split(buf, ";")
'配列に格納した項目をシートに転記する
For c = 0 To UBound(data)
.Offset(r, c).Value = data(c)
Next c

'転記先の行を1行下にずらす
r = r + 1

Loop

'ファイルを閉じる
'Close #1

End With
'メッセージを表示する
MsgBox "保存完了"

'エクセルのアラート表示を抑止する(保存時の確認メッセージを表示させないため)
Application.DisplayAlerts = False

'YYYYMMDD.xlsという名前で保存して閉じる
bk.Close True, path & Format(Now, "YYYYMMDD")

'エクセルのアラート表示を再開する
Application.DisplayAlerts = True

'エクセルの再描画を再開する
Application.ScreenUpdating = True

Application.Quit
ThisWorkbook.Close
End Sub




http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1216489241...
http://s1.gazo.cc/up/220533.png

Set WSH,bk.Close True,bk As Workbook,buf As String,エクセル,プログラム会社,お世話

閲覧数:
59
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

nan********さん

2016/11/1916:44:35

何度もお世話になりたいときはプログラム会社に頼むしかないななし

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる