何をこんな時間にやってんだか

予定管理に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
正直↑が何をやってるのが想像も付きません(笑)