テキストファイルから自動的に共起ネットワークを作成・保存するには(VBAからの操作について) #1085
-
こんにちは。 ■KH Coderのバージョン ■お使いのOS ■KH Coderのインストール先フォルダ(解凍先フォルダ) ■どんなエラー・不具合・問題ですか? Sub CreateCoOccurrenceNetwork()
'KH Coderを起動する
Dim khCoderPath As String
khCoderPath = "C:\khcoder3\kh_coder.exe"
Shell khCoderPath, vbNormalFocus
Application.Wait (Now + TimeValue("0:00:05")) '5秒待機
'入力データと出力データのパスを設定する
Dim inputPath As String
Dim outputPath As String
inputPath = "C:\Users\A\Desktop\test1.txt"
outputPath = "C:\Users\A\Desktop\test2.txt"
'前処理を実行する
SendKeys "%n" 'ファイルメニューを開く
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "{DOWN}" '下に移動
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "{DOWN}" '下に移動
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "{ENTER}" '前処理を実行する
Application.Wait (Now + TimeValue("0:00:30")) '30秒待機
'共起ネットワーク図を作成する
SendKeys "%n" 'ファイルメニューを開く
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "{DOWN}" '下に移動
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "{ENTER}" '共起ネットワーク図を作成する
Application.Wait (Now + TimeValue("0:00:10")) '10秒待機
'ファイルを保存する
SendKeys "%f" 'ファイルメニューを開く
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "s" '保存
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys outputPath '出力先のパスを入力する
Application.Wait (Now + TimeValue("0:00:01")) '1秒待機
SendKeys "{ENTER}" '保存する
End Sub このようなコードですがうまくいきません・・・ |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
コマンドプロンプトから自動実行プラグイン「auto_run.pm」を使う自動的にテキストファイルから共起ネットワークを作成して保存するということですね。コマンドプロンプト(ターミナル)であれば、次のコマンドで実行できます。
入力のテキストファイル名「c:\khcoder3\tutorial_jp\bayes_data.txt」は、任意のテキストファイルのフルパスに置き換えてください。出力は、「c:\khcoder3」フォルダに「net.png」というファイル名で共起ネットワークが保存されます。 上のコマンドでは自動実行プラグインを用いています。「pulugin_jp」フォルダの「auto_run.pm」です。「auto_run.pm」の20行目、
を編集すれば、出力ファイル名を任意のものに変更できます。 この自動実行プラグインはPerlで書かれています。編集することで、出力ファイル名以外にも、共起ネットワークのオプションなどを変更できます。このプラグインについて詳しくはこちらの書籍をご覧下さい。 VBAからの実行上のコマンドをVBAから実行するには次のようにすれば良いでしょう。 Shell ("cmd.exe /c ""cd c:\khcoder3 & .\kh_coder.exe -auto_run c:\khcoder3\tutorial_jp\bayes_data.txt""") 自動実行プラグインを使わずVBAから細かく操作する自動実行プラグインを使わずに、VBAから「このメニューを選択してこのボタンを押して…」と細かく操作することも可能だと思います。 しかし書き込んでいただいたVBAのコードは、不正確な箇所が多くあります。間違いだったら申し訳ありませんが、もしかしてChatGPTかなにかに生成させたものでしょうか? 以前のスレッド #598 の内容も活かされていません。 きちんとしたVBAのコードを書けば、KH Coderの細かな操作も可能でしょう。 RPAという方法も別の方法として、以前RPA(Robotic Process Automation)ツールでKH Coderを自動操作しているという方もいらっしゃいました。その方はBizRobo!というツールをお使いだとうかがいました。現在はMicrosoftのPower Automate Desktopが無料で使えるようですし、候補の1つになるかもしれません。 |
Beta Was this translation helpful? Give feedback.
-
いつもご丁寧なご返信ありがとうございます。 PC関係まったくの初心者で、さっぱりわからず、♯598の内容も活かしきれず、ChatGPT等々を活用していたのですがうまく行かず困り果てていました・・・ ご丁寧に教えていただき感謝いたします。 |
Beta Was this translation helpful? Give feedback.
コマンドプロンプトから自動実行プラグイン「auto_run.pm」を使う
自動的にテキストファイルから共起ネットワークを作成して保存するということですね。コマンドプロンプト(ターミナル)であれば、次のコマンドで実行できます。
入力のテキストファイル名「c:\khcoder3\tutorial_jp\bayes_data.txt」は、任意のテキストファイルのフルパスに置き換えてください。出力は、「c:\khcoder3」フォルダに「net.png」というファイル名で共起ネットワークが保存されます。
上のコマンドでは自動実行プラグインを用いています。「pulugin_jp」フォルダの「auto_run.pm」です。「auto_run.pm」の20行目、
を編集すれば、出力ファイル名を任意のものに変更できます。
この自動実行プラグインはPerlで書かれています。編集することで、出力ファイル名以外にも、共起ネットワークのオプションなどを変更できます。このプラグインについて詳しくはこちらの書籍をご覧下さい。
http://amzn.to/2AYS5dI
VBAからの実行
上のコマンドをVBAから実行するには次のようにすれば良いでしょう。