
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) Excelについて。 Excelからcsv変換したいのですが、 やり方はファイル→名前をつけて保存→ 7 2022/07/27 01:10
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- 哲学 HEVCコーデックが必要な.mp4を普通の.mp4に変換するソフト 3 2022/12/03 13:01
- フリーソフト mmfファイルからmp3に変換できる方法を教えてください(XMediaRecode以外で) 2 2022/03/22 22:25
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンクの張り付けかたを教えて...
-
.NETアプリを作ったときの .man...
-
HTMLからのBATファイル実行
-
アクセス 壊れた? 「ファイ...
-
公文書のxmlファイルの開き方が...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
aviファイルの読み込み
-
exeファイルの中身を見る方法は...
-
binファイルを解凍したいの...
-
コマンドプロンプトで作成日時...
-
「ブルーファイル」と「グリー...
-
【VBA】EXCELブックを開かずに...
-
参照するファイルをワイルドカ...
-
mdsファイルが作成されない
-
ファイルが開かれているかどう...
-
VBAのバイナリ出力について
-
Excel VBA リンク更新について ...
-
監視ツールを入れさせられまし...
-
C#でログファイルにファイルパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトで作成日時...
-
アクセス 壊れた? 「ファイ...
-
binファイルを解凍したいの...
-
.NETアプリを作ったときの .man...
-
リンクの張り付けかたを教えて...
-
公文書のxmlファイルの開き方が...
-
#include <Windows.h>というヘ...
-
Latexで図番号だけを「図1.1」...
-
コマンドプロンプトで、指定し...
-
jarファイル
-
「ブルーファイル」と「グリー...
-
ファイルが開かれているかどう...
-
バッチ処理で追記コピーしたい
-
VBAでのicsファイル変換
-
CSSを1ページに1枚作るのって変...
-
監視ツールを入れさせられまし...
-
C#でログファイルにファイルパ...
-
exeファイルの中身を見る方法は...
-
自分で作成した重要ファイルを...
-
HTMLからのBATファイル実行
おすすめ情報
追記です。
現状諸事情でOutlookの仕様は難しいです