
VBAで作業の効率化を図っています。
その過程で、icsファイルをCSVファイルへ変換を考えています。
色々と調べてみたのですが、いまいちよくわからなかったので
質問させていただきます。
1.VBAでicsファイルをCSVファイルをに変換することは可能でしょうか?
また、可能な場合どのようなマクロになるのか教えていただけると幸いです。
(ヒント程度でも構いません)
2.不可能な場合、フリーソフト等があれば教えていただきたいです
サイトでの変換は見つかったのですが、ネット有り気になってしまうので避けたい
と考えています。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
VBA で不可能かどうかは別として、CSV ファイルに変換するだけの機能ですし、既にフリーソフトに落ち着く可能性に言及しておりますのでフリーソフトを探したほうが良い気がします。
フリーソフトに関しては「ics csv 変換」とでも検索してご自分でいろいろ試してみたほうが良いと思います。
どうしても自分で CSV に変換するコードを書きたいのであれば、以下のページが参考になると思います。
RFC2445
http://www.asahi-net.or.jp/~CI5M-NMR/iCal/rfc244 …
iCalendar 仕様について書いてくださっているページ
http://www.asahi-net.or.jp/~CI5M-NMR/iCal/ref.html
ウィキペディア
https://ja.wikipedia.org/wiki/ICalendar#%E3%82%B …
ics ファイルは単なるテキストファイルですのでご自分で作れると思いますよ。
(UTF-8 で書かれ、改行は CR+LF、日時の書式は ISO 8601、BEGIN:ほげほげ ~ END:ほげほげで区切られる構造)
ics ファイルの 1行目から最終行まで 1行ずつ読み取りながら、
BEGIN:VEVENT 行 ~ END:VEVENT 行にある各項目のうち、CSV に持っていきたい項目だけ拾っていけばよいと思います。
ご回答ありがとうございます!
フリーソフトの検索ですが、そちらのワードでも検索してみたのですが
ソフトではなくネット上での変換のページに飛ばされてしまい、
これだ!というものを見つけられずにいる状態でした。
改めてもう一度探してみようと思います。
また、コードに関する参考ページもご教授いただきありがとうございました!
フリーソフト使用に落ち着くことになったとしても、
自信のスキルアップのためにこちらを参考に挑戦してみます。
No.1
- 回答日時:
一行ずつファイルを読み込んで解釈して、シートに書き込んでいくのがいいでしょうか?
シート書き込み後にcsvで保存ということで
動作を検証しておらず、イメージで申し訳ないのですが、以下のプロシージャを参考に作成できるのではと思います。変数fは対象のicsファイルパスです。
Sub test1(f As String)
Dim re As Object, mm As Object
Dim r As Integer
Dim buf As String
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "(\S+):(\S+)"
r = 0
Open f For Input As #1
Do Until EOF(1)
Line Input #1, buf
Set mm = re.Execute(buf)
For Each m In mm
Select Case m.submatches(0)
Case "BEGIN"
If m.submatches(1) = "VEVENT" Then r = r + 1
Case "DTSTART"
Cells(r, 1).Value = m.submatches(1)
Case "DTEND"
Cells(r, 2).Value = m.submatches(1)
Case "LOCATION"
Cells(r, 3).Value = m.submatches(1)
Case "SUMMARY"
Cells(r, 4).Value = m.submatches(1)
Case "DESCRIPTION"
Cells(r, 5).Value = m.submatches(1)
End Select
Next m
Loop
Close #1
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで作成日時...
-
#include <Windows.h>というヘ...
-
自分で作成した重要ファイルを...
-
binファイルを解凍したいの...
-
HTMLからのBATファイル実行
-
アクセス 壊れた? 「ファイ...
-
warファイルをEclipseでプロジ...
-
「ブルーファイル」と「グリー...
-
Dropboxとショートカットファイ...
-
○○○.zip.001というファイルが開...
-
日本語名のファイルのダウンロード
-
ディレクトリの監視と変更ファイル
-
VBAからファイルをセル入力から...
-
私のコンピューター上のファイ...
-
HEWのtoolchainの設定の確認方法。
-
CSSを1ページに1枚作るのって変...
-
C言語---ファイルに出力したデ...
-
ドラッグ&ドロップで読み込む...
-
既にファイルが開いているのな...
-
リンクの張り付けかたを教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
リンクの張り付けかたを教えて...
-
.NETアプリを作ったときの .man...
-
jarファイル
-
コマンドプロンプトで、指定し...
-
「営業秘密の漏洩」について
-
自分で作成した重要ファイルを...
-
warファイルをEclipseでプロジ...
-
公文書のxmlファイルの開き方が...
-
ストレージにある全てのファイ...
-
C言語---ファイルに出力したデ...
-
HTMLからのBATファイル実行
-
ファイルが開かれているかどう...
-
監視ツールを入れさせられまし...
-
「ブルーファイル」と「グリー...
-
バッチ処理で追記コピーしたい
おすすめ情報
追記です。
現状諸事情でOutlookの仕様は難しいです