Option Explicit
'Option Base 1
Sub データクリア()
Dim mylastrow As Long
Dim mylastcol As Long
Dim area As Range
Worksheets("生産者").Activate
mylastrow = Range("a1").CurrentRegion.Rows.Count
mylastcol = Range("a1").CurrentRegion.Columns.Count
MsgBox "データエリアをクリアします。"
Range(Cells(1, 1), Cells(mylastrow, mylastcol)).ClearContents
MsgBox "クリアが終了しました"
End Sub
Sub CSV出力(ByVal sht As Worksheet, Optional ByVal rngStart As Range = Nothing)
Dim varFile As Variant
varFile = Application.GetSaveAsFilename(InitialFileName:=sht.Name & ".csv", _
FileFilter:="CSVファイル(*.csv),*.csv", _
FilterIndex:=1, _
Title:="保存ファイルの指定")
If varFile = False Then
Exit Sub
End If
sht.Select
sht.Copy
'不要な先頭の行列を削除します。
If Not rngStart Is Nothing Then
If rngStart.Row > 1 Then
Range(Rows(1), Rows(rngStart.Row - 1)).Delete
End If
If rngStart.Column > 1 Then
Range(Columns(1), Columns(rngStart.Column - 1)).Delete
End If
End If
ActiveWorkbook.SaveAs Filename:=varFile, FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close
MsgBox ("CSV出力しました。" & vbLf & vbLf & varFile)
End Sub
Sub ワークシートCSV出力()
Dim st As Worksheet
Set st = Worksheets("生産者")
Call CSV出力(st)
End Sub
Sub CSV入力1()
Dim varFileName As Variant
Dim intFree As Integer
Dim strRec As String
Dim strSplit() As String
Dim i As Long, j As Long
varFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _
Title:="CSVファイルの選択")
If varFileName = False Then
Exit Sub
End If
intFree = FreeFile '空番号を取得
Open varFileName For Input As #intFree 'CSVファィルをオープン
i = 0
Do Until EOF(intFree)
Line Input #intFree, strRec '1行読み込み
i = i + 1
strSplit = Split(strRec, ",") 'カンマ区切りで配列へ
For j = 0 To UBound(strSplit)
Cells(i, j + 1) = strSplit(j)
Next
'配列をそのまま入れる方法も、ただし全て文字列として入力される
' Range(Cells(i, 1), Cells(i, UBound(strSplit) + 1)) = strSplit
Loop
Close #intFree
End Sub
殆どの部分がネタサイトからのコピーです。これは結構優れてますよ。多分ですが
自由自在にExcelで表を作り、ファイルに保存できます。勿論読んでワークシートに
再現も出来ます。1行の長さが違っていても問題ないようです。
ネタサイトは
http://excel-ubara.com/excel_index.html
です。色々なことがかかれてるようなので、勉強になりそうですよ。
ワークシートへコントロールを置いて、それに関数を貼り付けて実行できるようにしてます。
単なる勉強ですがね。(^0^)
Sub ワークシートCSV出力()
Dim st As Worksheet
Set st = Worksheets("生産者")
Call CSV出力(st)
End Sub
上の部分が自作の僅かな部分ですが、クリアする部分もそうです。普通のていうか
プリミティブと言うんでしたかね。例えば
Dim i as Integer
i=10
と書けますが、この場合はsetを使うのが、分からなくてエラーになる原因が分かりません
でした。(^0^)