Sub EspRevizoSetUp() ' (Optional myDummy As Boolean) Rem *----*----* *----*----* *----*----* *----*----* Rem EspRevizo初期設定処理(「EspRevizo」初回実行前に一度だけ実行) Rem 機能... Rem EspRevizoの初期設定をする。 Rem 1.「myFolder」に指定された関連フォルダを作成する。 Rem 2. 辞書ファイル「EspRevizoPcase.csv」「EspRevizoLcase.csv」を作成する。 Rem 注記... Rem 1.このマクロで使用する定数を「EspRevizoConst」内に指定して実行すること。 Rem 2.「EspRevizo」初回実行前に先行して一度だけ実行すること。 Rem 3.エスペラント語辞典「pejvo-s.txt」を用意すること。 Rem この辞典をインターネットからダウンロードし、当該ファイルを解凍することが必要。 Rem ダウンロード元: Rem http://homepage1.nifty.com/esperlando/jp/ サイト中の Rem http://homepage1.nifty.com/esperlando/dat/pejv150s.lzh ファイル。 Rem 4. この処理終了後は、このプロシージャの1行目を、 Rem 「Sub EspRevizoSetUp(Optional myDummy As Boolean)」に変更すること。 Rem この変更で、[マクロ]ダイアログボックス上の表示から消えます。 Rem 再度の実行が必要になった場合は、 Rem 「Sub EspRevizoSetUp() ' (Optional myDummy As Boolean)」に戻して実行する。 Rem 5.この処理後、辞書ファイル「EspRevizoPcase.csv」「EspRevizoLcase.csv」と同じフォルダに、 Rem エスペラント語辞典「pejvo_s.txt」を置くこと。 Rem 履歴... Rem 第01版:2005/05/14 作成。 Rem 第02版:2006/06/20 設定ファイル「EspRevizo00000.csv」廃止。 Rem 第03版:2007/01/30 Officeアシスタント廃止。 Rem 第04版:2007/02/06... Rem 関連フォルダ作成前にフォルダとファイルの有無を検査する処理を追加。 Rem 注記を修正。 Rem 第05版:2007/03/11... Rem 「EspRevizoLcase.csv」の登録データを「-a:{B}[形容詞語尾]」のダミーデータに変更。 Rem 第06版:2008/08/22... Rem 「EspRevizoLcase.csv」のダミーデータを追加。 Rem 第07版:2008/10/20 EspRevizoSchemaIni処理を追加。 Rem 第08版:2008/11/01... Rem エスペラント語辞典ファイル名「pejvo-s.txt」から「pejvo_s.txt」に変更に対処。 Rem 「EspRevizoLcase.csv」のダミーデータを変更。「-[接尾辞]」を追加。 Rem *----*----* *----*----* *----*----* *----*----* Dim myFso As Object Dim myFile As Object ' Dim myFolder As String Dim myFullName As String Dim myDicPejvo As String Dim myDicPcase As String Dim myDicLcase As String ' Dim myTitle As String Dim myStatusBar As String Dim myMsg As String Dim myAns As Long Rem *----*----* *----*----* *----*----* *----*----* ' myTitle = "EspRevizoSetUp" myMsg = "[初期設定] " & vbCrLf & "処理を実行します。 " & vbCrLf & vbCrLf myMsg = myMsg & "処理を中止したい場合は、" & vbCrLf myMsg = myMsg & "[キャンセル]を選択して下さい。" myStatusBar = Replace(myMsg, vbCrLf, "") ' Application.StatusBar = myTitle & ":" & myStatusBar myAns = MsgBox(myMsg, vbOKCancel + vbCritical + vbDefaultButton2, myTitle) ' If myAns <> vbOK Then Exit Sub Rem *----*----* *----*----* *----*----* *----*----* ' Rem 関連フォルダ名・関連ファイル名 Call EspRevizoConst("myFolder", myFolder) Call EspRevizoConst("myDicPejvo", myDicPejvo) Call EspRevizoConst("myDicPcase", myDicPcase) Call EspRevizoConst("myDicLcase", myDicLcase) Rem *----*----* *----*----* *----*----* *----*----* ' Set myFso = CreateObject("Scripting.FileSystemObject") ' If myFso.FileExists(myFolder & "\" & myDicPcase) = True Then myMsg = "[初期設定] " & vbCrLf & vbCrLf myMsg = myMsg & "既定のフォルダとファイルは、作成済みです。" MsgBox myMsg, vbOKOnly + vbCritical, myTitle Exit Sub End If ' Rem 関連フォルダを作成する。 Rem 「myFolder」の既定値によりフォルダ作成。 Rem マイドキュメント内に、\EspRevizoフォルダを作成する。 myFso.CreateFolder Left(myFolder, InStrRev(myFolder, "\") - 1) Rem \EspRevizoフォルダ内に、\PEJVOフォルダを作成する。 myFso.CreateFolder myFolder ' Rem 関連ファイルを作成する。 myFullName = myFolder & "\" & myDicPcase Set myFile = myFso.CreateTextFile(myFullName) With myFile .WriteLine ("To_kyo_:【地名】東京") .WriteLine ("Makuhari:【地名】幕張") .WriteLine ("Makuhari-Hongo_:【地名】幕張本郷") .Close End With ' myFullName = myFolder & "\" & myDicLcase Set myFile = myFso.CreateTextFile(myFullName) With myFile .WriteLine ("-a:.") .WriteLine ("-aj:.") .WriteLine ("-an:.") .WriteLine ("-ajn:.") .WriteLine ("-e:.") .WriteLine ("-en:.") .WriteLine ("-o:.") .WriteLine ("-oj:.") .WriteLine ("-on:.") .WriteLine ("-ojn:.") .WriteLine ("glavo:[狭義]両刃の刀剣類") .WriteLine ("sabro:[狭義]片刃の刀剣類") ' .WriteLine ("transirejo:【鉄】踏切") .Close End With Rem *----*----* *----*----* *----*----* *----*----* ' Set myFso = Nothing Set myFile = Nothing Rem *----*----* *----*----* *----*----* *----*----* ' Call EspRevizoSchemaIni ' myMsg = "[初期設定] " & vbCrLf myMsg = myMsg & "処理が完了しました!" & vbCrLf myStatusBar = Replace(myMsg, vbCrLf, "") ' Application.StatusBar = myTitle & ":" & myStatusBar myAns = MsgBox(myMsg, vbOKOnly + vbInformation, myTitle) End Sub ' EspRevizoSetUp *----*----* *----*----* *----*----* *----*----* Sub EspRevizoSchemaIni(Optional myDummy As Boolean) Rem *----*----* *----*----* *----*----* *----*----* Rem EspRevizo初期設定処理(「schema.ini」ファイルを作成) Rem (「EspRevizo」初回実行前に一度だけ実行) Rem 機能... Rem 1. EspRevizoの初期設定をする。 Rem 見出し情報や内部構造をODBCに伝えるために、 Rem コロン区切り形式ファイルの保存先フォルダに「schema.ini」ファイルを作成する。 Rem 2.「DBPath」にコロン区切り形式ファイルの保存先フォルダを指定すること。 Rem (既定値は「EspRevizo」の「pejvo-s.txt」ファイルの保存先) Rem 3.この処理で「schema.ini」ファイルを作成する。 Rem 注記... Rem 1. コロン区切り形式ファイルを参照する部分を、下記の書籍から引用して、Word VBA用に改変した。 Rem 佐藤信正『VBScript実用プログラミング・テクニック』メディア・テック出版の Rem 「Part5 [16]12万件の郵便番号を検索する」から引用した。 Rem 結城圭介『最速攻略 VBScripサンプル大全集』技術評論社の Rem 「第3章 実践サンプル編 ファイル・フォルダ Rem [3-13]フラットファイルのレイアウトを変更する Rem [3-14]フラットファイルからCSVファイルを作成する」から引用した。 Rem 2.「EspRevizo」初回実行前に先行して一度だけ実行すること。 Rem 3. SQL文使用には、ファイル名にハイフンが使えないため、(已むを得ず) Rem 「pejvo-s.txt」ファイルをコピーし、ファイル名のハイフンをアンダーバーに変更する。 Rem 「pejvo-s.txt」→「pejvo_s.txt」 Rem 4. このマクロの一部に下記の「EspRevizo」のプロシージャを使用している。 Rem EspRevizoConst Rem 履歴... Rem 第01版:2008/10/20 作成。 Rem *----*----* *----*----* *----*----* *----*----* Dim myFso As Object Dim myFile As Object ' Dim IniFile As String Dim myFullName As String ' Dim DBPath As String Dim CsvDB As String Dim myDicPcase As String Dim myDicLcase As String ' Dim myTitle As String Dim myStatusBar As String Dim myMsg As String Dim myAns As Long Rem *----*----* *----*----* *----*----* *----*----* ' Rem 既定値の設定 myTitle = "EspRevizoSchemaIni" Call EspRevizoConst("myFolder", DBPath) Call EspRevizoConst("myDicPejvo", CsvDB) Call EspRevizoConst("myDicPcase", myDicPcase) Call EspRevizoConst("myDicLcase", myDicLcase) ' IniFile = "schema.ini" myFullName = DBPath & "\" & IniFile Rem *----*----* *----*----* *----*----* *----*----* ' Set myFso = CreateObject("Scripting.FileSystemObject") ' If myFso.FileExists(myFullName) = True Then myMsg = "[初期設定] " & vbCrLf & vbCrLf myMsg = myMsg & IniFile & "ファイルは、作成済みです。" MsgBox myMsg, vbOKOnly + vbCritical, myTitle Exit Sub End If ' Rem 関連ファイルを作成する。 Set myFile = myFso.CreateTextFile(myFullName) With myFile .WriteLine ("[" & CsvDB & "]") ' .WriteLine ("ColNameHeader=False") .WriteLine ("CharacterSet=oem") .WriteLine ("Format=Delimited(:)") ' .WriteLine ("Col1=単語 Char Width 255") .WriteLine ("Col2=訳語 Char Width 255") .WriteLine (vbCrLf) ' *----*----* *----*----* .WriteLine ("[" & myDicLcase & "]") ' .WriteLine ("ColNameHeader=False") .WriteLine ("CharacterSet=oem") .WriteLine ("Format=Delimited(:)") ' .WriteLine ("Col1=単語 Char Width 255") .WriteLine ("Col2=訳語 Char Width 255") .WriteLine (vbCrLf) ' *----*----* *----*----* .WriteLine ("[" & myDicPcase & "]") ' .WriteLine ("ColNameHeader=False") .WriteLine ("CharacterSet=oem") .WriteLine ("Format=Delimited(:)") ' .WriteLine ("Col1=単語 Char Width 255") .WriteLine ("Col2=訳語 Char Width 255") .Close End With Rem *----*----* *----*----* *----*----* *----*----* ' Set myFso = Nothing Set myFile = Nothing End Sub ' EspRevizoSchemaIni *----*----* *----*----* *----*----* *----*----*