カテゴリ:SE♂日誌( 245 ) > Z_ ̄∂
[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_ ̄∂
こんにチワワ。どーもボキです。

仕事を任せる、責任範囲が増える、自分でコントロールできる範囲が広がる、
これらは、やりがいにつながるらしいからね。任せてみたよ。

●メンバの得意領域ということもあり、スケジュール立ても含め仕事を任せてみる。
 ⇒ スケジュールを立てたはいいものの、それっきり。スケジュール完全無視で進める。

●変化に伴うリスクとその対応リスト作成を任せ、役割分担を検討してもらう。
 ⇒ こちらからお願いするまでリストは出ず。催促して出てきたものも抜け漏れだらけ。

●対応リストを急ピッチでフォロー。最後の検証をお願いする。
 ⇒ 検証できたというが、実は数10分の検証のみ。運用時にボロがポロポロ。

●スキル伸長を狙い、ボキの担当領域は、丁寧なコメント記載済みソース付きの実行プログラムを渡す。
 ⇒ プログラムを実行するだけ。「エラーになりました」と結果を伝えてくるだけ。未だホウレンソウができない。

●簡単なプログラム修正を任せてみる。
 ⇒ 未だに「不適切なインデント」や「大小文字の混在」「不要なコメントアウト」が直っていない。
   「細かいところまで気を配りましょうね」と何度も伝えても直らない。

●運用後のトラブルフォローも任せてみる。
 ⇒ チャットやTELで応対するのみで、それらの記録に残さないため定量的な影響範囲が把握できず。
   専門部隊に相談して、といってもせず。

●運用後のトラブル対応が決まらないので催促してみる。
 ⇒ いつもは一行しか返信がない(「エラーになりました」など)、だらだらと状況を説明してきた。
   状況が改善しそうにない、またそばにいるのだから、分かった時点で相談に来て欲しい。

新入社員のように手取り足取りでの指導もやってきたけど、改善しないなぁ。
いつまでに何をを今より細かくしたスケジュールでゲート管理するしかないな。


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

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

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


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

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


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

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

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

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

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


[PR]
by yozda | 2016-04-29 14:41 | SE♂日誌 | Trackback | Comments(0)
[苦言] 魚類は相変わらずの魚類脳 > Z_ ̄∂
こんばんワイン。どーもボキです。

今日、魚類とMtgしたよ。
新しい社内設備を検討中らしいが、5年前とまったく進化してなかったよ。魚類のまま。

1.A〇Lの設備システムでの計測を考えている。
  ⇒ 社内のデータ形式から切り離されるよ、まさにガラパゴス設備

 1を指摘すると

2.A〇Lのホストコンピュータを入れればよいね。
  ⇒ そのホストってクソってレポートしたよね?5年前に同じ苦労したよね?バカなの?

3.結局、何をしたいのか、何をはかりたいのか、まったくつめてない。
  ⇒ バカだから。設備のスペックだけで話が進んでる。何のために?がマッタクない。

もしかしたらちかぢか同じ組織になるかもしれないと思うと(少なくとも同じ上司の下となる)
頭が痛いね。

相手を変えることは難しいだろうから、こちらが変わるしかないね。
多忙の中でも、設備&CATの方向性を全体に対して見せ、こちらが主導権を握っていくよ。
[苦言] アヴリルが使い物にならないから、プログラム開発でどうにかする計画書+苦言
[PR]
by yozda | 2016-04-26 23:41 | SE♂日誌 | Trackback | Comments(0)
[苦言]外注が専門家? > Z_ ̄∂
おはヨーグルト。どーもボキです。

・次の開発は「専門家」に任せたい。
・外注ならば「専門家」の目で見てもらえる。
・外注に出せば「専門家」の手により再設計してもらえる。

こういうことを平気で言い続ける人がいる。
課長の前でもそれをいうから、さすがに注意したけども。


なら、あなたの専門は?今の仕事、専任ですよね?


スキルの伸び悩みを感じてはいたが、考え方の芯を変える必要があるね。

どんな業界であっても、自分から情報を取りに行かない限り変われない。

自分は専門化ではない、専門化にはなれないと、言い訳しているようだと成長しないよ。

[PR]
by yozda | 2016-04-25 07:56 | SE♂日誌 | Trackback | Comments(0)
[苦言] 新しい課長、といっても2年くらい前から > Z_ ̄∂
こんばんワイン。どーもボキです。

4/1にボキの直属上司が異動となった。
設備&CATの面倒を見れる幹部がいないので、当面課長と他幹部が交互に面倒をみることになった。

課長、こいつは要注意だ。
 ・元上司に、技術開発管理、教育管理、労務管理、設備管理、などの面倒な雑務を押し付ける。
 ・組織表メモのボキ欄に、「精度保障」と記載。「精度保障=窓際」、という認識。
 ・ボキらの部屋にきて「ココなら仕事に集中できるわ。周囲の会話が全然耳に入ってこない。(=興味がない)」という。

振る舞いは紳士だが、こいつはクソかも知れん。気をつけねば。

ぼかぁシステムエンジニアなのに、設備も見なきゃいけなくなっているのに、
幹部はなぜ自分の領域を広げることもしないのかね?理解できないな。


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

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


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

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


会社の仕事もそう。

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

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

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


[PR]
by yozda | 2016-04-17 16:50 | SE♂日誌 | Trackback | Comments(0)