●予定表データの移植●
《 このページは、Windows の使用を前提にしています 》
Outlook の予定表データを壁カレに移す方法を紹介します
パソコンを使って個人の予定表を管理されている方も多いと思います。
Microsoft Office の Outlook と、フリーソフトの 壁カレが代表的なソフトです。(他にも、Lotus の Organizer や Justsystem の Sasuke なども有名です。)
Outlook は PDA との予定表データなどの同期先ソフトとしてもっとも活用されているソフトで、PDA を持っている人には欠かせません。しかし、日本の祝日の日付が一部間違っていたりします(この欠陥があるのは Office XP の Outlook 2002 です。他のバージョンは確かめていませんが…)。
2004年3月に Microsoft が 提供を開始した Office XP Service Pack 3 をインストールすると、Outlook 2002 でいったん祝日の表示を全て削除してから、再度「祝日の追加」を行なえば、祝日の日付が正しくなります。法改正と実装の時期的なズレが原因と思われます。誠実に改善した Microsoft の姿勢は評価できます。欲を言えば、法改正した時点で早急に Microsoft から 訂正方法を提供してほしかったです。(それとも、すでに提供されていて私が見逃しているだけなのでしょうか?)
祝日の日付というのは、予定表にとって最も大切な情報の一つですから。
壁カレは、3か月分のカレンダーが表示され、日付の上にマウスを置くと、その日の予定が表示されたり、予定の時刻が近づくとメッセージボックスが表示されたりして、デスクトップに置いておくと大変便利なソフトです。日本の祝日の日付も間違いがありません。
この便利なソフトを両方ともを使いたいけれど、同じような入力をやり直すのはめんどうだ、という方に、このページの下にある、拙作の短い VBScript を使われるようお勧めします。
最初に Outlook で予定表を入力しておいてから、壁カレにそのデータを持ってくる、という方法です。
--- 使い方 ---
- どこかに作業用のフォルダを用意する。
- 下のプログラムリスト(横線と横線の間の部分)をマウスの左ボタンを押したままなぞる。(ドラッグする)
《最後の 「b.Close」まで、色をつけてください。》
- Ctrl キーを押したままで C のキーを押す。(Control+C)
- メモ帳またはご愛用のテキストエディタを起動する。
- Ctrl キーを押したままで V のキーを押す。(Control+V)
- yotei.vbs という名前を付けて、1.で用意したフォルダに保存する。
《「ファイルの種類」で「すべてのファイル」を選択しておいてください》
- Outlook の予定表データを1.で用意したフォルダに yotei.csv という名前で取り出す。
具体的には次の操作をします。(Outlook 2002 の場合です)
- Outlook を起動して、予定表を表示し、
- メニューから[ファイル]、[インポートとエクスポート]の順に選択し、
- 出てきたダイアログボックスで「ファイルへエクスポート」を選択して[次へ]を押し、
- 次に「テキストファイル(DOS、カンマ区切り)」を選び[次へ]を押します。
- [参照]ボタンを押して、1.で用意したフォルダへ行き、
- 「ファイル名」に yotei.csv と入力して[OK]ボタンを押してください。
- 取り出したい期間を入力して、操作を終えます。
- 1.のフォルダにある yotei.vbs をダブルクリックすると、yoteiKabe.csv というファイルができます。
- 壁カレに yoteiKabe.csv の内容を読み込みます。
具体的には次の操作をします。
- 壁カレを起動し、カレンダーの上でマウスを右クリックします。
- 出てきたメニューの、真ん中よりちょっと下の方にある「データ読み込み」をクリックし、
- ダイアログボックスの「読み込みデータ形式」で「カンマ区切りデータ(*.CSV)」を選び、
- 「読み込み対象ファイル」の[参照]ボタンを押して、8.でできた yoteiKabe.csv というファイルを選び、[開く]ボタンを押す。
- [完了]ボタンを押します。
《プログラムリスト》 yotei.vbs
このプログラムはフリーソフトとしますが、著作権はこのホームページの作者が保有します。
' Outlook予定表からエクスポートした CSVファイルを
' 壁カレで読み込める形式の CSVファイルに変換
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const Curdir = ""
'ここに .CSV ファイルが入っているフォルダを書く
'データと、このプログラムが同じフォルダ内ならこのままでよい。
' 例 CurDir = "C:\yoteiCSV\"
' このプログラムでは Outlook からの出力ファイル名を yotei.csv ,
' 壁カレ入力用のファイル名を yoteiKabe.csv と
' しています。
Set fsa = CreateObject("Scripting.FileSystemObject")
Set a = fsa.OpenTextFile(Curdir & "yotei.csv", ForReading, False)
Set fsb = CreateObject("Scripting.FileSystemObject")
Set b = fsb.CreateTextFile(Curdir & "yoteiKabe.csv", True)
a.SkipLine ' 見出し行を読み飛ばし
Do While a.AtEndOfLine <> True
lin = a.ReadLine
kenmei = ""
cp = 1
ch = Mid(lin, cp, 1)
Do
If ch <> """" Then kenmei = kenmei & ch
cp = cp + 1
ch = Mid(lin, cp, 1)
Loop Until ch = ","
cp = cp + 1
ch = Mid(lin, cp, 1)
y = ""
Do
If ch <> """" Then y = y & ch
cp = cp + 1
ch = Mid(lin, cp, 1)
Loop Until ch = "/"
cp = cp + 1
ch = Mid(lin, cp, 1)
m = ""
Do
If ch <> """" Then m = m & ch
cp = cp + 1
ch = Mid(lin, cp, 1)
Loop Until ch = "/"
cp = cp + 1
ch = Mid(lin, cp, 1)
d = ""
Do
If ch <> """" Then d = d & ch
cp = cp + 1
ch = Mid(lin, cp, 1)
Loop Until ch = ","
m = Right("00" & m, 2)
d = Right("00" & d, 2)
dt = y & m & d
b.WriteLine(dt & "," & kenmei)
Loop
a.Close
b.Close