みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ログ入力支援ツールの作成方法

業務で使うため、ログ入力を簡単に出来る方法を探しています。
以前人づてに聞いた事があるのですが、小さなボックスの中の選択項目にチェックして[次へ]→チェックして[次へ]を繰り返し、[完了]を押した時に全ログが完成している、というツールがあるという事を聞いた事があります。
そのような機能はVBAで作成する事は出来るのでしょうか?
フリーウェアやWindows標準搭載の機能で出来るのでしょうか?どなたかご存知でしたら是非ご教授願います。

OS:WindowsXP
Office2002 SP3

投稿日時 - 2006-11-10 16:44:47

QNo.2530227

困ってます

質問者が選んだベストアンサー

最終ページには[完了]ボタンのみがあります。

下の<HTML>から</HTML>までをコピーし、TroubleLog2.htaの名前を付けて、TroubleLog1.htaと同じフォルダに保存して下さい。

TroubleLog1.htaをダブルクリックして実行してみて下さい。

<HTML>
<!-- TroubleLog2.hta -- 最終ページ例
-->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
<HTA:APPLICATION ID="oHTA" APPLICATIONNAME="TroubleTree" />
<TITLE>トラブル記録</TITLE>
<FORM NAME="Form1">
<p>メーカ
<input type="radio" name="rd" />東芝
<input type="radio" name="rd" />NEC
<input type="radio" name="rd" />富士通
</p>
<p>
その他 <input type="text" id="txt" size="50">
</p>
<p>
<input type="button" value="完了" onClick="go_end()" />
</p>
</FORM>
<SCRIPT>
Wsh = new ActiveXObject("WScript.Shell");
Fs = new ActiveXObject("Scripting.FileSystemObject");
ForAppending = 8;
fname = "TroubleLog.txt"; // ★ファイル名

function go_end(){
write_result();
window.close();
}
function write_result(){
var ix, str, tf;
ix=0;
while (ix<=document.Form1.rd.length-1){
if (document.Form1.rd(ix).checked)
break;
ix++;
}
switch (ix){
case 0: str="東芝"; break;
case 1: str="NEC"; break;
case 2: str="富士通"; break;
default: str=document.Form1.txt.value;
}
tf = Fs.OpenTextFile(fname, ForAppending, true);
tf.WriteLine("メーカ:"+str);
tf.Close();
}
</SCRIPT></HEAD></HTML>

投稿日時 - 2006-11-11 23:04:28

お礼

実行してみました!何とびっくり、こんな風にできるのですね!すごい!!
この方法を応用したらもしかしたら私にも作成できるかも知れません。頑張って研究します。大変助かりました。ありがとうございましたm(_ _)m

投稿日時 - 2006-11-13 08:54:54

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

HTMLアプリケーションで作ってみてはどうでしょうか。メモ帳で書いてすぐ動かせますし、HTMLの文法でレイアウトもそれなりにできます。

勉強がてら書いてみました。簡単にするため各ページで書き込んでいます。

先頭/中間ページには[次へ]ボタンがあり、続くページを呼び出します。
下の<HTML>から</HTML>までをコピーし、TroubleLog1.htaの名前を付けて保存して下さい。

<HTML>
<!-- TroubleLog1.hta -- 先頭/中間ページ例
-->
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
<HTA:APPLICATION ID="oHTA" APPLICATIONNAME="TroubleLog" />
<TITLE>トラブル記録</TITLE>
<FORM NAME="Form1">
<p>OS
<input type="radio" name="rd" />Windows98
<input type="radio" name="rd" />WindowsXP
<input type="radio" name="rd" />Windows2000
</p>
<p>
その他 <input type="text" id="txt" size="50">
</p>
<p>
<input type="button" value="次へ" onClick="go_next()" />
<input type="button" value="完了" onClick="go_end()" />
</p>
</FORM>
<SCRIPT>
Wsh = new ActiveXObject("WScript.Shell");
Fs = new ActiveXObject("Scripting.FileSystemObject");
ForAppending = 8;
fname = "TroubleLog.txt"; // ★ファイル名

function go_next(){
write_result();
Wsh.Run("TroubleLog2.hta"); // ★次のページ
window.close();
}
function go_end(){
write_result();
window.close();
}
function write_result(){
var ix, str, tf;
ix=0;
while (ix<=document.Form1.rd.length-1){
if (document.Form1.rd(ix).checked)
break;
ix++;
}
switch (ix){
case 0: str="Windows98"; break;
case 1: str="WindowsXP"; break;
case 2: str="Windows2000"; break;
default: str=document.Form1.txt.value;
}
tf = Fs.OpenTextFile(fname, ForAppending, true);
tf.WriteLine("-- "+ new Date()); // ★先頭ページには区切りを入れる
tf.WriteLine("OS:"+str);
tf.Close();
}
</SCRIPT></HEAD></HTML>

参考URL:http://www.microsoft.com/japan/msdn/workshop/author/hta/overview/htaoverview.asp

投稿日時 - 2006-11-11 23:01:55

ANo.1

日付、時刻と選択項目から作り出す情報をテキストファイルに追加することはExcelのVBAでもできます。

思いつくアドバイスとしては、
・できればログ入力は意識させない方がよいのでは。例えば業務で入力する作業があるなら、その中で自動的に記録する仕組みがよいと思います。
・業務とは別に入力させる場合、選択項目の量にもよりますが、訂正などを考えると画面は少ない方がよいでしょう。
・複数のPCで実施する場合、仕組みのインストールやログの収集方法について考える必要があります。
・溜まっていくログの扱いについて考える必要があります。
など。

pinoriさんの考えている業務や、ログ取得の目的について書かれると、もっと適切な回答ができると思います。

投稿日時 - 2006-11-11 07:40:40

補足

ありがとうございます。
業務で入力する必要があります。どちらかと言うと、複数のPCでデータベース上に入力するのではなく、個人的なツールとして用意しておいて、選択してログを完成するという方法です。

以前ほんの小耳にはさんだのは、例えば「PCから音が鳴らない」という障害のお問い合わせがあった場合

(1)OSを選択→[次へ]
(2)メーカーを選択"東芝"→[次へ]
(3)症状を選択"PCの音が出ない"→[次へ]
(4)デバイスマネージャのサウンドドライバに警告やエラーが"なし"→[次へ]
(5)セーフモードでのデバイスマネージャでの警告、エラーが"あり"→[次へ]
(6)サウンドドライバ削除しPC再起動→[次へ]
(7)通常起動でサウンドドライバ正常。音が鳴るようになった→[完了]

この操作が以下のようなログとして完成される

・WindowsXP
・東芝 DynaBook DamiPC
・PCから音が鳴らない
・デバイスマネージャのサウンドドライバに警告やエラーなし
・セーフモードでのデバイスマネージャでの警告、エラーあり
・サウンドドライバ削除しPC再起動
・通常起動でサウンドドライバ正常。音が鳴るようになった

このようなログが自動的に完成するしくみを作りたいのです。
現在はこのような内容をすべて手入力で行っています。テキストファイルにモデルログを用意して地道にコピペしているのですが、もっとマシな方法はないのかと常に思っています。この内容でもしおわかりになるようでしたら、是非ご教授お願いします。
ちなみに私はExcelやVBAに関してはほとんど心得がないので、いちから勉強する必要があります。
ご負担にならない範囲でどうぞご教授願います。

投稿日時 - 2006-11-11 12:22:26

あなたにオススメの質問