質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2376閲覧

ICS VBA 変換

en_9

総合スコア13

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/01/12 14:49

###デスクネッツNEO→LINEWORKSのスケジュール移行について

グループウェア-の移行に関し、スケジュールのデータ変換が必要となるのですが、
デスクネッツで出力できるのはCSV、LINEWORKSで受け取れデータはicsしかありません。

CSV→ICSの変換に関して、良いツールがないかとサイトを巡回していたところ、
このサイトの記事にたどり着きました。(http://ryoben.hateblo.jp/entry/2017/06/20/210357)
ただし、マクロを公開されている作者様はGoogleカレンダーへの移行の際に作成されたようで、
そのままではLINEWORKSでは利用することができません。

そこで、iCal イベント・メーカー - iCalendar (.ics) 作成ツール(https://apps.marudot.com/ical/)
を使用し、作成したデータを参考に、VBAを手直ししているのですが、LINEWORKSでデータの受け取りができず、
行き詰っている次第です。

 

発生している問題・エラーメッセージ

具体的なエラーメッセージは発生していませんが、
アップロードしたICSファイルがスケジュールが反映されない障害から抜け出せずにいます

エラーメッセージ

該当のソースコード

[test.ics]※データ反映ができないファイル BEGIN:VCALENDAR VERSION:2.0 PRODID:EXCEL_CONVERTER X-WR-CALNAME:テスト CALSCALE:GREGORIAN BEGIN:VTIMEZON TZID:Asia/Tokyo TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tokyo X-LIC-LOCATION:Asia/Tokyo BEGIN:STANDARD TZOFFSETFROM:+0900 TZOFFSETTO:+0900 TZNAME:JST DTSTART:19700101T000000 END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTAMP:20190112T221707Z UID:20190112T221707Z-678988191@hoge.com DTSTART;TZID="Asia/Tokyo":20160105T100000 DTEND;TZID="Asia/Tokyo:":20160105T103000 SUMMARY:hogehoge DESCRIPTION:test END:VEVENT END:VCALENDAR ++++++++++++++++++++++++++++++++++++++++++++++++++++ [test_OK.ics]※データ反映が可能なファイル BEGIN:VCALENDAR VERSION:2.0 PRODID:-//www.marudot.com//iCal Event Maker X-WR-CALNAME:テスト CALSCALE:GREGORIAN BEGIN:VTIMEZONE TZID:Asia/Tokyo TZURL:http://tzurl.org/zoneinfo-outlook/Asia/Tokyo X-LIC-LOCATION:Asia/Tokyo BEGIN:STANDARD TZOFFSETFROM:+0900 TZOFFSETTO:+0900 TZNAME:JST DTSTART:19700101T000000 END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTAMP:20190112T114840Z UID:20190112T114840Z-1290519626@marudot.com DTSTART;TZID="Asia/Tokyo":20160101T080000 DTEND;TZID="Asia/Tokyo":20160101T120000 SUMMARY:hogehoge DESCRIPTION:test LOCATION: END:VEVENT END:VCALENDAR

試したこと

EXCEL VBAを利用してファイルの変換を行っているのですが、
UIDの生成については「DTSTAMP」+「10桁の乱数」+ドメイン名を指定しています。

補足情報(FW/ツールのバージョンなど)

利用ツール:EXCEL2016
移行予定のグループウェア;デスクネッツNEO3.5 → LINEWORKS

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

環境がないため、直接的な回答ではないですが。

私の場合の解決するアプローチ方法についてです。

まず問題の切り分けを行います。
VBAで、OKのフォーマット(test_OK.ics)の内容を、そのまま出力します。
フォーマットと値、含めて”そのまま”出力します。

これが、取り込めないならば書式の問題ではないと考えます。

ちなみに、想像では、文字コードかな?と、チラっと考えています。

wiki:ICalendar

iCalendarデータはプレーンテキストで、デフォルトでUTF-8が使用される。別の文字コードを使うときは「charset」MIMEパラメータで指定することができる。

取り込めるのであれば、少しずつ(1~2行ずつ)元もソースの出力内容を反映していき
取り込めないタイミングの変更箇所が問題だと特定します。

投稿2019/01/13 03:36

編集2019/01/13 09:21
momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t.kawakami

2019/01/13 05:41

vbaは便利ですが、utf-8は対応させるのは難しいですね。 出力したものをメモ帳で開いて、utf-8に変換するという作業を質問者さまがされてみて、それが通ればmomon-ga様の推測どおりかと思います。
en_9

2019/01/13 07:35

アドバイスありがとうございます。 VBAから出力したicsファイルをエディタで確認したところ、 「OK」のフォーマットと比較した場合、最終行に改行コードが挿入されています。 utf-8(BOM無し)+CRLFで出力しているつもりなのですが、VBAのソースをもう少し見直してみます。
momon-ga

2019/01/14 13:55

まずは、「OK」フォーマットを、そのまま出力して、取り込めるかを確認したほうが良いです。 取り込めないなら、「utf-8(BOM無し)+CRLFで出力しているつもり」が、上手くできていないのだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問