Googleカレンダー、インポート用CSVを作成するマクロ

Excelシートに作ったGoogleカレンダー用のデータをCSVに変換するマクロです。
出力されたCSVを使ってカレンダーにインポートすることができます。

Excelシート

Excelシートは次のように作ります。
日付と時刻はExcel形式(シリアル値)にします。

A B C D E F
1 Subject Start Date Start Time End Date End Time Location
2 南アフリカ対メキシコ 2010/06/11 23:00 2010/06/12 01:00 ヨハネスブルク
3 ウルグアイ対フランス 2010/06/12 03:30 2010/06/12 05:30 ケープタウン
4 アルゼンチン対ナイジェリア 2010/06/12 23:00 2010/06/13 01:00 ヨハネスブルク

マクロ

アクティブシートに対して処理されます。
日付と時刻の行はFormat関数で整形されます。
カンマ付テキスト(UTF-8)に変換され、指定したファイル名で保存されます。

Sub Googleカレンダーインポート用CSV出力()
    fnsave = Application.GetSaveAsFilename( _
        "import.csv", "CSV(*.csv),*.csv")
    If fnsave = False Then Exit Sub
    mytext = ""
    i = 1
    Do
        j = 1
        Do
            If Right(Cells(1, j), 4) = "Date" Then
                temp = Format(Cells(i, j), "yyyy/mm/dd")
            ElseIf Right(Cells(1, j), 4) = "Time" Then
                temp = Format(Cells(i, j), "hh:mm")
            Else
                temp = Cells(i, j)
            End If
            mytext = mytext & temp & ","
            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

実行結果

Subject,Start Date,Start Time,End Date,End Time,Location
南アフリカ対メキシコ,2010/06/11,23:00,2010/06/12,01:00,ヨハネスブルク
ウルグアイ対フランス,2010/06/12,03:30,2010/06/12,05:30,ケープタウン
アルゼンチン対ナイジェリア,2010/06/12,23:00,2010/06/13,01:00,ヨハネスブルク

コメント

  1. […] インポート用CSVを作るには次のページを参考にしてみてください。 Googleカレンダー、インポート用CSVを作成するマクロ | You Look Too Cool […]

  2. 柴ぱぱ より:

    サイボーズガルーン2のスケジュールをグーグルカレンダーに反映させたく、いろいろと調べた結果、ここに辿り着きました。「ガルーン同期」なるアプリもあるようですが、私の環境では利用できませんでした。そこでガルーンから書き出したCSVをカット&ペースト等の力技で並び替え、このマクロを利用させて頂き、グーグルカレンダーにインポートすることができました。誠にありがとうございました。
    また一つ教えて頂きたいのですが、私の場合LocationよりDescription(説明)をインポートしたいと思っています。この場合はLocationをDescriptionに書き換えただけではダメみたいです。どのようにマクロを変更したら良いのかアドバイスを頂けたら幸甚です。
    何卒、宜しくお願い申し上げます。

  3. stabucky より:

    >紫パパさん
    ご利用ありがとうございます。
    Descriptionの件ですがご指摘の通り書き換えるだけで大丈夫だと思います。

    Subject,Start Date,Start Time,End Date,End Time,Description
    南アフリカ対メキシコ,2013/08/01,15:00,2013/08/01,16:00,これはテストです。

    というCSVを試しましたが正しくインポートされました。

    ・全くインポートされないならばデータ形式がおかしい。
    ・インポートされるもののある列だけ空になるならば項目名がおかしい。
    などが考えられます。
    綴りが違うと、レコード(行)はインポートされるものの、その列だけ空になるようです。

  4. 柴パパ より:

    できました。
    「できない・・、できない・・」でファイルを滅茶苦茶に
    いじってしまったのが原因で、一つづつ丁寧に操作したら
    ちゃんとできました。

    本当にありがとうございました。

  5. stabucky より:

    できましたか。よかったです。
    また何かあればコメントください。

タイトルとURLをコピーしました