カテゴリ:SE♂日誌( 242 ) > Z_ ̄∂
[苦言] 「パソコンがエラー出して困っている」という言われた側が困る相談 > Z_ ̄∂
どーもボキです。

今日、久々に現場に行ったら
 『パソコンがエラー出して困っている』
と言われた。

この人はずーっとこう。

エラーの内容、発生頻度、発生時の操作、ぜーんぜんわからん。いっつもこう。
連絡のたびに質問することになるよ。そして、いっつもメモってない。


けど、ボキはジェントルメン(複数)だからね。
ちゃんと対応したよ。

大事なことだから最初に聞いたよ。
 「うちが提供したものですか?そのパソコン」
と。


聞くと違うんだって。


けどね。教えてあげたよ。ジェントルメンじゃけ。
サポートデスクのTELをね。

アドバイスもしたよ。ジェントルメンじゃけ。
「エラーが起きた」だけじゃ相手も困るけ、内容くらいメモったほうが良いですよって。

[PR]
by yozda | 2018-12-11 23:47 | SE♂日誌 | Trackback | Comments(0)
[VBScript] TextBox > Z_ ̄∂
どーもボキです。

RadioGroupBoxやMessgeDlgを応用したTextBox。

a0021757_12270939.png

a0021757_12271868.png

利用時の注意
 ONCLICKをonlickと変換すること。

Option Explicit

msgbox TextBox("タイトル","キャプション","文字A" &vbTAB& ":" &vbCRLF & "文字B" &vbTAB& ":" & vbCRLF& "文字C" &vbTAB& ":")
'-----------------------------------------------------------------------------------------
' sTitle : タイトル
' sCaption : メッセージ
' sText : 表示するテキスト
Function TextBox(sTitle, sCaption, sText)
Const cRegName = "HKCU\Software\Microsoft\Internet Explorer\LinksExplorer\Docked"
Dim objWS,objIE,ieDoc
Dim i,s,r,ireg,html

' レジストリ修正 > エクスプローラバーを非表示
On Error Resume Next ' Dockedなし
Set objWS = CreateObject("WScript.Shell")
ireg = objWS.RegRead(cRegName)
objWS.RegWrite cRegName, 0, "REG_DWORD"
On Error GoTo 0 'エラー無視を解除

' IEを起動
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"

' タグ記述
html = "<BODY><TABLE ID=Tbl BORDER=0>" &_
"<TR><TD ALIGN=Left VALIGN=Top><SPAN>" & Replace(sCaption,vbCRLF,"<BR>") & "<BR><BR></SPAN>" & _
"<FORM NAME=Form>" & _
"<INPUT TYPE=HIDDEN NAME=Button VALUE=-1><textarea name=text rows=16 cols=64>"&sText&"</textarea>" & _
"<BR></TD></TR><TR><TD ALIGN=Center VALIGN=Bottom>"&_
"<INPUT TYPE=BUTTON VALUE="" OK "" ONCLICK=Form.Button.value="& vbOK &"> " & _
"<INPUT TYPE=BUTTON VALUE=""キャンセル"" ONCLICK=Form.Button.value="& vbCancel &">" & _
"</TD></TR></FORM></TABLE></BODY>"

' ↓↓共通↓↓
Set ieDoc = objIE.Document
ieDoc.Body.InnerHtml = html
ieDoc.Title = sTitle
objIE.ToolBar = False ' 上ツールバーを隠す(AddressBar,MenuBarも非表示となる)
objIE.StatusBar = False ' ステータスバーを隠す
ieDoc.Body.RuntimeStyle.OverflowX = "hidden" ' 横 スクロールバーを隠す
ieDoc.Body.RuntimeStyle.OverflowY = "hidden" ' 縦 〃
objIE.Width = ieDoc.All.Tbl.clientWidth +50 ' 幅 サイズ調整
objIE.Height = ieDoc.All.Tbl.clientHeight +70 ' 高 〃
objIE.Left = Int((ieDoc.parentWindow.screen.availwidth -objIE.Width )/2) ' 左 位置調整
objIE.Top = Int((ieDoc.parentWindow.screen.availheight-objIE.Height)/2) ' 上 〃
For i = 0 To objIE.Width
ieDoc.Title = ieDoc.Title +" " ' - Microsoft Internet Explorerを隠す
i = i +10
Next
ieDoc.Body.bgcolor = "ButtonFace" ' 色
objIE.Visible = True ' ウィンドウ表示
objIE.Resizable = False ' ウィンドウサイズ固定 ※表示前に実行すると縁にゴミ画像が残る
' ユーザ操作取得
On Error Resume Next ' エラー無視 ([×]終了対応)
r = -1
Do While r = -1
WScript.Sleep 100
r = CInt(ieDoc.Form.Button.value)
If objIE = Null Then Exit Do
Loop
objIE.Visible = False
' ↑↑共通↑↑

' 値取得
If r = vbOK Then
r = ieDoc.Form.text.value
Else
r = ""
End If

objIE.Quit
Set objIE = Nothing

' レジストリ修正 > エクスプローラバーを元設定に戻す
objWS.RegWrite cRegName, ireg, "REG_DWORD"

On Error GoTo 0 'エラー無視を解除
TextBox = r
End Function

[PR]
by yozda | 2018-09-24 12:27 | SE♂日誌 | Trackback | Comments(0)
[VBScript] MessageDlg > Z_ ̄∂
どーもボキです。

MessageDlgの改良点

改良点
 ・サイドバー表示が有効な場合、関数内にて一時的にそれを無効とし、終了時に有効に戻すようにした。
 ・GetResolution関数の利用を廃止。

a0021757_12164198.png

a0021757_12122540.png

利用時の注意
 ONCLICKをonlickと変換すること。

Option Explicit

MsgBox MessageDlg("タイトル","キャプション" &vbCRLF& "01234567890123456789012345678901234567890123456789","Button0,Button1,Button2")
'-----------------------------------------------------------------------------------------
' sTitle : タイトル
' sCaption : メッセージ
' Items : アイテムリスト
' Index : デフォルト選択するアイテムインデックス
Function MessageDlg(sTitle, sCaption, Items)
Const cRegName = "HKCU\Software\Microsoft\Internet Explorer\LinksExplorer\Docked"
Dim objWS,objIE,ieDoc
Dim i,s,r,ireg,html

' レジストリ修正 > エクスプローラバーを非表示
On Error Resume Next ' Dockedなし
Set objWS = CreateObject("WScript.Shell")
ireg = objWS.RegRead(cRegName)
objWS.RegWrite cRegName, 0, "REG_DWORD"
On Error GoTo 0 'エラー無視を解除

If Not IsArray(Items) Then Items = Split(Items,",")

' IEを起動
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"

' タグ記述
html = "<BODY><TABLE ID=Tbl BORDER=0 STYLE=font-size:10pt>" &_
"<TR><TD ALIGN=Left VALIGN=Top><SPAN>" & Replace(sCaption,vbCRLF,"<BR>") & "<BR><BR><SPAN>" & _
"<FORM NAME=Form>" & _
"<INPUT TYPE=HIDDEN NAME=Button VALUE=-1>" &_
"</TD></TR><TR><TD ALIGN=Center VALIGN=Center>"
' ボタン
html = html & "<INPUT TYPE=BUTTON VALUE=" & Items(0) & " ONCLICK=Form.Button.value=0>"
For i = 1 To UBound(Items)
html = html & " <INPUT TYPE=BUTTON VALUE=" & Items(i) & " ONCLICK=Form.Button.value=" & i & ">"
Next
html = html & "</TD></TR></FORM></TABLE></BODY>"

' ↓↓共通↓↓
Set ieDoc = objIE.Document
ieDoc.Body.InnerHtml = html
ieDoc.Title = sTitle
objIE.ToolBar = False ' 上ツールバーを隠す(AddressBar,MenuBarも非表示となる)
objIE.StatusBar = False ' ステータスバーを隠す
ieDoc.Body.RuntimeStyle.OverflowX = "hidden" ' 横 スクロールバーを隠す
ieDoc.Body.RuntimeStyle.OverflowY = "hidden" ' 縦 〃
objIE.Width = ieDoc.All.Tbl.clientWidth +50 ' 幅 サイズ調整
objIE.Height = ieDoc.All.Tbl.clientHeight +70 ' 高 〃
objIE.Left = Int((ieDoc.parentWindow.screen.availwidth -objIE.Width )/2) ' 左 位置調整
objIE.Top = Int((ieDoc.parentWindow.screen.availheight-objIE.Height)/2) ' 上 〃
For i = 0 To objIE.Width
ieDoc.Title = ieDoc.Title +" " ' - Microsoft Internet Explorerを隠す
i = i +10
Next
ieDoc.Body.bgcolor = "ButtonFace" ' 色
objIE.Visible = True ' ウィンドウ表示
objIE.Resizable = False ' ウィンドウサイズ固定 ※表示前に実行すると縁にゴミ画像が残る
' ユーザ操作取得
On Error Resume Next ' エラー無視 ([×]終了対応)
r = -1
Do While r = -1
WScript.Sleep 100
r = CInt(ieDoc.Form.Button.value)
If objIE = Null Then Exit Do
Loop
objIE.Visible = False
' ↑↑共通↑↑

objIE.Quit
Set objIE = Nothing

' レジストリ修正 > エクスプローラバーを元設定に戻す
objWS.RegWrite cRegName, ireg, "REG_DWORD"

On Error GoTo 0 'エラー無視を解除
MessageDlg = r
End Function


[VBScript] メッセージダイアログを実現する


[PR]
by yozda | 2018-09-24 12:18 | SE♂日誌 | Trackback | Comments(0)
[VBScript] RadioGropuBox > Z_ ̄∂
どーもボキです。

RadioGroupBoxの改良版です。

改良点
 ・サイドバー表示が有効な場合、関数内にて一時的にそれを無効とし、終了時に有効に戻すようにした。
 ・GetResolution関数の利用を廃止。

a0021757_12004880.png

a0021757_12122540.png

利用時の注意
 ONCLICKをonlickと変換すること。

Option Explicit

Const RadioGroupBox_MaxCount = 10
MsgBox RadioGroupBox("タイトル","キャプション" &vbCRLF&"01234567890123456789012345678901234567890123456789","アイテム0,アイテム1,アイテム2",1)
'-----------------------------------------------------------------------------------------
' sTitle : タイトル
' sCaption : メッセージ
' Items : アイテムリスト
' Index : デフォルト選択するアイテムインデックス
Function RadioGroupBox(sTitle, sCaption, Items, Index)
Const cRegName = "HKCU\Software\Microsoft\Internet Explorer\LinksExplorer\Docked"
Dim objWS,objIE,ieDoc
Dim i,s,r,ireg,html,bCmbBx

' レジストリ修正 > エクスプローラバーを非表示
On Error Resume Next ' Dockedなし
Set objWS = CreateObject("WScript.Shell")
ireg = objWS.RegRead(cRegName)
objWS.RegWrite cRegName, 0, "REG_DWORD"
On Error GoTo 0 'エラー無視を解除

If Not IsArray(Items) Then Items = Split(Items,",")

' IEを起動
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"

' タグ記述
html = "<BODY><TABLE ID=Tbl BORDER=0 STYLE=font-size:10pt>" &_
"<TR><TD ALIGN=Left VALIGN=Top><SPAN>" & Replace(sCaption,vbCRLF,"<BR>") & "<BR><BR></SPAN>" & _
"<FORM NAME=Form>" & _
"<INPUT TYPE=HIDDEN NAME=Button VALUE=-1>"
bCmbBx = UBound(Items) >= RadioGroupBox_MaxCount-1
If bCmbBx Then
' コンボボックス
html = html +"<SELECT NAME=ComboBox size=" & RadioGroupBox_MaxCount &" style=width:100%>"
For i = 0 To UBound(Items)
If i = Index Then s = " selected" Else s = ""
html = html +"<OPTION value=" & i & s & ">" & Items(i) &"</OPTION>"
Next
s = s+"</SELECT>"
Else
' ラジオボタン
html = html +"<INPUT NAME=Radio TYPE=HIDDEN VALUE="& Index & ">"
For i = 0 to UBound(Items)
If i = Index Then s = " checked" Else s = ""
html = html +" <INPUT TYPE=RADIO Name=RG ONCLICK=Radio.value=" & i & s & ">" & Items(i) &"</INPUT><BR>"
Next
End If
html = html +"<BR></TD></TR><TR><TD ALIGN=Center VALIGN=Bottom>"&_
"<INPUT TYPE=BUTTON VALUE="" OK "" ONCLICK=Form.Button.value="& vbOK &"> " & _
"<INPUT TYPE=BUTTON VALUE=""キャンセル"" ONCLICK=Form.Button.value="& vbCancel &">" & _
"</TD></TR></FORM></TABLE></BODY>"
' ↓↓共通↓↓
Set ieDoc = objIE.Document
ieDoc.Body.InnerHtml = html
ieDoc.Title = sTitle
objIE.ToolBar = False ' 上ツールバーを隠す(AddressBar,MenuBarも非表示となる)
objIE.StatusBar = False ' ステータスバーを隠す
ieDoc.Body.RuntimeStyle.OverflowX = "hidden" ' 横 スクロールバーを隠す
ieDoc.Body.RuntimeStyle.OverflowY = "hidden" ' 縦 〃
objIE.Width = ieDoc.All.Tbl.clientWidth +50 ' 幅 サイズ調整
objIE.Height = ieDoc.All.Tbl.clientHeight +70 ' 高 〃
objIE.Left = Int((ieDoc.parentWindow.screen.availwidth -objIE.Width )/2) ' 左 位置調整
objIE.Top = Int((ieDoc.parentWindow.screen.availheight-objIE.Height)/2) ' 上 〃
For i = 0 To objIE.Width
ieDoc.Title = ieDoc.Title +" " ' - Microsoft Internet Explorerを隠す
i = i +10
Next
ieDoc.Body.bgcolor = "ButtonFace" ' 色
objIE.Visible = True ' ウィンドウ表示
objIE.Resizable = False ' ウィンドウサイズ固定 ※表示前に実行すると縁にゴミ画像が残る
' ユーザ操作取得
On Error Resume Next ' エラー無視 ([×]終了対応)
r = -1
Do While r = -1
WScript.Sleep 100
r = CInt(ieDoc.Form.Button.value)
If objIE = Null Then Exit Do
Loop
objIE.Visible = False
' ↑↑共通↑↑

' 値取得
If r = vbOK Then
If bCmbBx Then
r = ieDoc.Form.ComboBox.selectedIndex
Else
r = CInt(ieDoc.Form.Radio.value) ' 取得データは文字のため
End If
Else
r = -1
End If

objIE.Quit
Set objIE = Nothing

' レジストリ修正 > エクスプローラバーを元設定に戻す
objWS.RegWrite cRegName, ireg, "REG_DWORD"

On Error GoTo 0 'エラー無視を解除
RadioGroupBox = r
End Function


[VBScript] ラジオボタンダイアログを実現する その3


[PR]
by yozda | 2018-09-24 12:05 | SE♂日誌 | Trackback | Comments(0)
yozda-FONT > Z_ ̄∂
こんにチワワ。どーもボキです。

02年(入社3年目)の頃、社内Webを作ると称し、フォントを作って遊んでいたる仕事をしていた。

結局、今となってはカウンター数の表示部分にのみ活きているんだが、
このときに得た知識で、CSVファイルベースで更新可能な現Webができた(=ただ遊んでいたわけではない)。

最近は、社内Webもブログのように簡単にメンテできる仕組みを導入しており、
そろそろ独自Webを持つこともなくなりつつあるけれど……。

以下はそのときに作成したフォントの一部。
各ページのタイトル部の表示のみに利用する予定だったが、読みにくいと不評のため結局不採用。

このフォントは、Tableタグの各セル背景色を変更するとことで、
リアルタイムに表示文字を変更できるようにしている。電光掲示板のようなイメージだ。

社内のブラウザはIE限定のため、IEでしか使えない関数を使って実現した。
今となっては(その当時すら)誰の役にもたたないし、フォントもバランスも統一できてないし、javascriptソースは公開できたもんじゃないな。
a0021757_13132553.gif



[PR]
by yozda | 2016-12-30 13:14 | SE♂日誌 | Trackback | Comments(0)
あなたにとって上司って何? > Z_ ̄∂
こんにチワワ。どーもボキです。

4月に上司が代わったばかりだが、5月にまた上司が変わる。

4月で元上司が異動となった。元上司にとっては新しい領域だ。
優秀な人だったので、あの人にとっては良いことだろう。


4月から同じ課の他幹部がボキのチームを管理することになった。

製造業のエンジニアといっても、ボキたちは社内インフラのエンジニア。
他幹部は、元製品開発エンジニアだからね。領域が違いすぎて手に余るんだろうね。


5月には新しい上司に変わる。その上司は、他課の掛け持ちだ。
その人は設備領域のエキスパートだ。

人間だれしもその人なりの「癖」がある。その人もそう。見る人が見ればとっつきにくい人だろう。
ボキ的には、頭は固いかもしれないが、信念を持っている点・Mtgでは傾聴する姿勢など、悪い印象はない。

幹部にまでなれる人だから、馬鹿ではない。「考えを曲げない人」でなく、「確固たる信念のある人」なんだろう。
考えを曲げない、説得できない、ということは説得する側にロジカルに説明する力がないってことだ。

ボキは、自分が持っていないものを持っている人は尊敬するよ。(その部分だけ)
丸投げ大臣落武者は「あいつは大変よぉ。まーがんばって」とかいっているが、何も感じない。

第一優先すべきお客様は、上司だからね。ぼかぁ何でもするよ。


[PR]
by yozda | 2016-04-29 14:41 | SE♂日誌 | Trackback | Comments(0)
[苦言] あるよ。は、ないと同じ > Z_ ̄∂
こんにチワワ。どーもボキです。

あるよ。とは、とはドラマHEROに出てくるとあるバーのバーテンダー(田中要次)のセリフである。
通販の商品からお好み焼きまで、頼めば「あるよ。」とともになんでも出てくる。
a0021757_1642491.jpg


尋ねれば「あるよ」と帰ってくる。それは素晴らしいこと。
それは、バーテンダーから期待以上のものが帰ってくるからだ。

メニューにはないお酒を注文して、「あるよ。」といわれたら、
「メニュー書いとけよ!」と思うだろう。


会社の仕事もそう。

言われないと出ないのは、ないのと同じ。自分の仕事の価値を下げることになるよ。
だって周りにコントロールされないと、力を発揮できないんだから。

回りが困りそうと感じ取ったら、「あるよ。」と差し出せ。言われなくても出して見せていけ。
言われなくても出す。ちょっとでも成果が出るものなら即レポート提出。

これが大事。これが自分の仕事を周囲に見せる第一歩。
見えない仕事はやってないことと同じだからね。


[PR]
by yozda | 2016-04-17 16:50 | SE♂日誌 | Trackback | Comments(0)
何のため? > Z_ ̄∂
こんにチワワ。どーもボキです。

何のため?

それは、仕事をする上で重要な考え方のひとつだ。

 ・いつまでに、何を、どういう状態にするのか?
 ・それをするとどんな嬉しいことが起きるのか?
 ・今、それをやらないといけないのか?

一言でいえば、「目的」を意識することだね。



目的の実現には、たくさんの「手段」があるよ。
 ・今までのやり方に無駄がないか見直す。
 ・今までのやり方を根本から見直す。
 ・やりたいことを実現できるモノ(設備やシステム)を入れる。

とか。(3つしか出んかった…。)


その手段が難しいものほど、目的と手段を履き違えやすくなる。

たとえば、少しでも成果を出すことが先決にもかかわらず、
モノを上手に使いたおすことに一生懸命になってしまったりね。


そういうときには振り返ってみて欲しい。
何のため?と。



最近良く考えるのよ。働くのは、何のため?


家に帰ると、23時。

嫁の機嫌は悪い。子供達は寝てる。
家の中は、グチャグチャ。
毎週末が大掃除。


家族のための仕事だが、その家族と話す時間も削るほど働くのは、
何のため?


[PR]
by yozda | 2016-04-09 17:17 | SE♂日誌 | Trackback | Comments(0)
[苦言] ウィルス再検出 > Z_ ̄∂
こんにチワワ。どーもボキです。

またウィルスが出た。
前展開した運用ルールの無視に加え、私物USBメモリの持ち込み

PBPはボキを休ませてくれないね。
もう無理。収束しないわ。

ウィルスが見つかってからというもの、USBワクチンを配ってスキャンをお願いしているが一向に実施せず。(こちらはPBPでなく、同じ課のメンバ)
危機管理意識のないバカばかり。


PBPリーダ(幹部の横分けバーコード)は「全PCの一斉スキャンが最優先!」とかほざいてる。
けど、どーやるつもり?それが出来ないから、ルールを強化+USBワクチンでの順次スキャンにしたんでしょ?

そもそも最初はウィルスいないよね?ルール無視が原因だよね?
守れないようなルールの方が問題?人の入れ替わりが激しいから守れない?バカなの?

ルールすら守らせられないなら、収束なんか到底無理だわ。

余り悪さしないウィルスでよかったねぇ。ルール守らないんだからいずれデータ破壊するようなウィルスにも侵入されるだろうね。
そうなってから後悔すればぁ~??
[苦言] ウィルス感染防止に向けた運用ルールにケチをつけられる
[PR]
by yozda | 2015-05-17 12:28 | SE♂日誌 | Trackback | Comments(0)
[苦言] ウィルス感染防止に向けた運用ルールにケチをつけられる > Z_ ̄∂
こんばんワイン。どーもボキです。

ウィルス感染の拡大を防ぐため、ユーザに運用ルールをひとつ追加してもらった。

対策なしPCに接続したUSBメモリは、接続の度に対策ありのPCでスキャンをかけること。
下図のイメージだ。対策なしPCに連続して挿すと、ウィルスを拡大させることになるからね。

そしたら文句言ってきた奴がいたわ。
 「接続毎にスキャンって、意味が分からん。接続したPCには対策ソフト入ってないからできるわけない。」
って。

このボケは何を言っているんだろう?と思ったね。対策ありのPCでスキャンしろって書いてるだろ?
日本語読めよ。

あと
 「USBメモリじゃなく、ポータブルHDDを利用しているから、毎回スキャンかけてたら仕事にならん」
とか言ってた。

あっそ。こっちはね、サーバにウィルスが侵入してその対応に何日もとられているのよね。
何でか分かる?お前らがバカだからだよ。
a0021757_172621.gif

サーバへのウィルス侵入を許してしまった
[PR]
by yozda | 2015-05-13 01:00 | SE♂日誌 | Trackback(1) | Comments(0)