VBScriptで一太郎をExcelに変換する
環境 windows10
一太郎Pro2
やりたいこと
一太郎をHTML形式で保存して、そのHTMLファイルをExcelから開けば、罫線表をExcelにできます。
https://www.ichitaro.com/tech/0305/n_178.html
(一太郎マル秘テク)
手動でならこうです。HTMLファイル(標準のwebエンジンのアイコンになります)は,Excelから開くことができます。
これを誰でもすぐにできるようにVBScriptにしました。
コード
VBScript
Option Explicit
Dim taroFilePath
If Wscript.arguments.Count = 0 Then
MsgBox "Excelに変換したい一太郎ファイルをドラッグ&ドロップしてください"
Wscript.Quit
Else
taroFilePath = Wscript.arguments(0)
End If
Dim taro
Set taro = CreateObject("JXW.Application")
Dim withoutExtensionPath
withoutExtensionPath = Split(taroFilePath, ".")(0)
taro.Documents.Open (taroFilePath)
taro.TaroLibrary.SaveDocumentAsHTML (withoutExtensionPath & ".html")
Dim excel
Set excel = CreateObject("Excel.Application")
excel.Visible = True
excel.Workbooks.Open withoutExtensionPath & ".html"
MsgBox "編集後,ファイルの種類を「Excelブック(*.xlsx)」にして保存してください"
taro.TaroLibrary.CloseDocumentWindow()
MsgBox "一太郎の空のウインドウを閉じてください"
Option Explicit
Dim taroFilePath
If Wscript.arguments.Count = 0 Then
MsgBox "Excelに変換したい一太郎ファイルをドラッグ&ドロップしてください"
Wscript.Quit
Else
taroFilePath = Wscript.arguments(0)
End If
Dim taro
Set taro = CreateObject("JXW.Application")
Dim withoutExtensionPath
withoutExtensionPath = Split(taroFilePath, ".")(0)
taro.Documents.Open (taroFilePath)
taro.TaroLibrary.SaveDocumentAsHTML (withoutExtensionPath & ".html")
Dim excel
Set excel = CreateObject("Excel.Application")
excel.Visible = True
excel.Workbooks.Open withoutExtensionPath & ".html"
MsgBox "編集後,ファイルの種類を「Excelブック(*.xlsx)」にして保存してください"
taro.TaroLibrary.CloseDocumentWindow()
MsgBox "一太郎の空のウインドウを閉じてください"
Excelとして保存後、残ったhtmlファイルは削除してください。
文字コードを標準のUTF-8で保存すると,VBScriptのメッセージが文字化けするので,ANSIに変更して保存します。
VBSでドラッグ&ドロップ実行
ドラッグ&ドロップで動かすときは,ダブルクリックで実行したときにドラッグ&ドロップで実行することをメッセージで出すと親切です。
いかに説明文で「ドラッグ&ドロップで実行」と書いていても,条件反射でダブルクリックしてしまうものです。
If Wscript.arguments.Count = 0 Then
MsgBox "Excelに変換したい一太郎ファイルをドラッグ&ドロップしてください"
Wscript.Quit
Else
taroFilePath = Wscript.arguments(0)
End If
ダブルクリックされたか,ファイルをドラッグ&ドロップされたか判定するには,Wscript.arguments.Countを使います。
ドラッグ&ドロップされると,そのファイルの絶対パスがWscript.argumentsに配列の引数として渡されてスクリプトが実行されます。その数が0であれば,引数なし,つまり,ダブルクリック実行と判断できるのです。
一太郎をVBScriptから操作する
VBScript
Dim taro
Set taro = CreateObject("JXW.Application")
Dim withoutExtensionPath
withoutExtensionPath = Split(taroFilePath, ".")(0)
taro.Documents.Open (taroFilePath)
taro.TaroLibrary.SaveDocumentAsHTML (withoutExtensionPath & ".html")
Dim taro
Set taro = CreateObject("JXW.Application")
Dim withoutExtensionPath
withoutExtensionPath = Split(taroFilePath, ".")(0)
taro.Documents.Open (taroFilePath)
taro.TaroLibrary.SaveDocumentAsHTML (withoutExtensionPath & ".html")
一太郎SuperPlayRiteを別言語から扱う方法は,マクロバイザーの付録タブ,「他社環境での動作」ファイルが手がかりになります。
もちろん,『一太郎8 for Windows95/NT マクロリファレンス』にも載っております。一太郎SuperPlayRiteの本の入手方法等につては以前まとめましたのでそちらをご覧ください。
https://qiita.com/harryyuni/items/61166bc490332c06bd51
ただ,一太郎8より後に追加された機能・関数(HTML保存がそうです)については,本に載っていません。その場合は,手作業で機能を使ってみた上で,それらしい関数をマクロバイザーで探し,説明を読み,『一太郎8 for Windows95/NT マクロリファレンス』に載っているよく似た関数の解説から動作を推測し,使うしかありません。
古文書の解読のようではありますが,今回はただ保存するだけなので成功しました。
なぜ一太郎をExcelにするのか
一太郎の罫線表は文字の改行に合わせて行幅が広がることからベタ打ちしやすく、Excelのように印刷時に文字が切れることもありません。
単純に、単発の表をゼロから作るだけなら、一太郎の方が楽なのです。
ただ、毎回同じ形式の書類を作るのに一太郎が適しているかというのは別問題で、Excelに落とし込めば関数やマクロを駆使して別シートに反映、転記するなどして効率化できることがままあります。そんなとき,書式をExcelに落とし込むのに使ってみてください。
Author And Source
この問題について(VBScriptで一太郎をExcelに変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/harryyuni/items/bd4197b86f93c2748c7f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .