何をこんな時間にやってんだか
予定管理にYahoo!カレンダーを使っていますが、いちいちブラウザで入力してられなかったのでなんとか楽にできないかと考えていました。
で、Yahoo!カレンダーにインポート出来るCSVファイルを「予定入力&ボタン一押し」で作ることができるエクセルファイルが完成。
- 要点
-
- CSVファイルの各項目を""でくくる必要がある。
- 一行目にフィールド名(「件名」とか)が来ないと行けない
- あとはフィールドの過不足、順序は不問
エクセルでは項目に""を付けてCSV保存することができないので、VBAでやるしかない。
以下、そのコード(OKWave CSV形式での保存時に”文字列引用符”にしたい(エクセル)より拝借)
正直↑が何をやってるのが想像も付きません(笑)
Option Explicit
Sub CSVExport_W_Qt()
Dim Fname As String
Dim usedRng As Range
Dim i As Long, j As Long
Dim buf As String
Dim Fno As Integer
Const Qt As String = """"
Fname = Application.InputBox("出力名を入力してください。", Type:=2)
If VarType(Fname) = vbBoolean Or Fname = "" Then Exit Sub
If InStr(Fname, ".csv") = 0 Then Fname = Fname & ".csv"
Fno = FreeFile()
Open Fname For Output As #Fno
With ActiveSheet
Set usedRng = .UsedRange
On Error Resume Next
For i = 1 To usedRng.Rows.Count
For j = 1 To usedRng.Columns.Count
If Not IsEmpty(usedRng.Cells(i, j)) Then
buf = buf & "," & Qt & usedRng.Cells(i, j).Value & Qt
Else
buf = buf & ","
End If
Next j
Print #Fno, Mid$(buf, 2)
buf = ""
Next i
On Error GoTo 0
End With
Close #Fno
Beep
End Sub