Excelシートに作ったToodledo用のデータをCSVに変換するマクロです。
CSVをToodledoにインポートする操作についてはYou Look Too Cool » Toodledoでタスクをインポートする方法を参考にしてください。
Excelシート
使う見出しはTASK,FOLDER,CONTEXT,DUEDATEの4つです。
他の見出しにも対応するはずですが試していません。
使わない見出しは削除しても構いませんがTASKは必須だと思います。
ワークシートに次のようにセットします。
A | B | C | D | |
---|---|---|---|---|
1 | TASK | FOLDER | CONTEXT | DUEDATE |
2 | 資料作成 | 打合せ | Work | 2012/10/20 |
3 | 煙突掃除 | 掃除 | Life | 2012/10/21 |
マクロ
アクティブシートに対して処理されます。
Sub Toodledoインポート用CSV出力()
fnsave = Application.GetSaveAsFilename( _
"import.csv", "CSV(*.csv),*.csv")
If fnsave = False Then Exit Sub
mytext = ""
i = 1
Do
j = 1
Do
If Cells(1, j) = "DUEDATE" Then
temp = Format(Cells(i, j), "yyyy-mm-dd")
Else
temp = Cells(i, j)
End If
mytext = mytext & Chr(34) & temp & Chr(34) & ","
j = j + 1
Loop Until Cells(i, j) = ""
mytext = Left(mytext, Len(mytext) - 1) & vbCrLf
i = i + 1
Loop Until Cells(i, 1) = ""
mytext = Left(mytext, Len(mytext) - Len(vbCrLf))
With CreateObject("ADODB.Stream")
.Type = 2
.Charset = "utf-8"
.Open
.WriteText mytext, 1
.SaveToFile fnsave, 2
.Close
End With
End Sub
fnsave = Application.GetSaveAsFilename( _
"import.csv", "CSV(*.csv),*.csv")
If fnsave = False Then Exit Sub
mytext = ""
i = 1
Do
j = 1
Do
If Cells(1, j) = "DUEDATE" Then
temp = Format(Cells(i, j), "yyyy-mm-dd")
Else
temp = Cells(i, j)
End If
mytext = mytext & Chr(34) & temp & Chr(34) & ","
j = j + 1
Loop Until Cells(i, j) = ""
mytext = Left(mytext, Len(mytext) - 1) & vbCrLf
i = i + 1
Loop Until Cells(i, 1) = ""
mytext = Left(mytext, Len(mytext) - Len(vbCrLf))
With CreateObject("ADODB.Stream")
.Type = 2
.Charset = "utf-8"
.Open
.WriteText mytext, 1
.SaveToFile fnsave, 2
.Close
End With
End Sub
コメント