バーコードのチェックデジットについて
久々の書込みです、、、
顧客のバーコードプログラム改修の関係で、バーコードのサンプル(NW7)をいただいて、それがどのチェックデジットを使用しているか調査をしたんです。それでチェックデジットの種類をいろいろ調べたのですが、これがまたたくさんあるわけですよ、、、
<NW7>
・セブンチェック7DR
・セブンチェック7DSR
・モジュラス10ウェイト2・1分割
・モジュラス10ウェイト2・1一括
・モジュラス10ウェイト3-1
・モジュラス11ウェイト2~7
・モジュラス11ウェイト1~0
・ナインチェック(9DR)
・ナインチェック(9DSR)
もらったサンプルを元に、末尾の数字が上記のチェックデジットに合っているか調べるんですが、メチャクチャ時間かかるんです、、、、
そこで「Excelで自動計算できるのを作った方がいいんじゃね?」と思ったわけです。それがドハマりの始まりでした。めったに使わないであろうこのExcel計算式を完璧にしたい、、、というおバカな(費用対効果0)考えをしてしまいました。
しかも「CODE39のモジュラス43も必要なんじゃ、、、、」と思い始めて、VBAで出来るのかいろいろサイト巡っても、サイトはあるにはあるのですが、古いのかVBAが動かない、、、、、
Function mdl43(rng)の標準モジュールのやつが動かないんです、、、
諦めかけてたところ、このサイトをみつけました!
救いの神がいたわけです。このサイトを参考に、
・modulus43(値&チェックデジットを出力)
・modulus43B(チェックデジットだけを出力)この文を変更→modulus43B = lst(tot Mod 43)
の2つを作って見事動くようになりました!
Excelをxlsmで保存して社内の共有フォルダに入れておきましたが、「使う人いないだろうな、俺ももう使わないだろうな、、、」って気がします(´;ω;`)
せっかく作ったんで、需要はないかもしれませんが公開します!
左側によく使うNW7セブンチェックとCODE39を配置してます。右側はめったに使わないと思いますが、最大9桁の数字のチェックデジットが計算できるはずです。
マクロを有効にしてください。黄色背景の部分以外は余り入力しないでくださいね。計算式が入っていますんで、、、、、
以上!
パソコンを自動ログインさせる(ドメインユーザー)
久々に書きます50ジジィーです。
さて、顧客の工場でADDCによるドメインネットワークでPCとユーザを管理しているのですが、1つのパソコンで機械の稼働状況のデータを収集する仕組みを構築しました。機械→パトライト無線→受信機→社内ネットワーク→収集用パソコンって感じです。
そのパソコンには某社がおつくりになったデータ収集ソフトが入っているのですが、このソフトの仕様がインストールしたユーザがパソコンにログインしていないとソフトが起動しない~データも収集しない~って仕様だったんです(汗)。
そのパソコンももちろんドメインに参加してましてユーザとパスワードを入れてログインしない限りログインできないんです。停電、WindowsUpdateの再起動など強制的にパソコンが再起動する時があり、夕方とかに再起動した日には次の朝まで(っていうか社員が気が付くまで)データが収集できない状況が多々発生してました。
またまたGoogle先生の出番です。VBSで起動時に自動ログインさせるようにしましょう~
*いつもの自己責任でお願いいたします。一切の責任は受けません。またWindows10では成功しましたが、Windows7では実験してません(レジストリの場所が違うかもしれないのでregeditで先に見てもいいかもですが、下手したら起動できなくなりますのでご注意を~)
'自動ログオン(オートログオン)
Option Explicit'まずは管理者権限を取得
Dim WMI, OS, Value, Shelldo while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
'##### WScript5.7 または Vista 以上かをチェック
Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each Value in OS
if left(Value.Version, 3) < 6.0 then exit do
Next'##### 管理者権限で実行
Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"WScript.Quit
loop'変数宣言
Dim strPath
Dim objshell
Dim AutoAdminLogon
Dim domein
Dim yuuzaa
Dim pasu
Dim ans'ログインしたいドメイン名、ドメインユーザ、パスワードを編集してください。
domein = "AAA"
yuuzaa = "BBB"
pasu = "CCC"ans = MsgBox ("下記のドメインに自動ログイン設定を行います。" & vbCrLf & "ドメイン名=" & domein & vbCrLf & "ユーザ名=" & yuuzaa & vbCrLf & "パスワード=xxxxxxxxxx" & vbCrLf & "よろしいですか?",vbOKCancel,"ドメイン自動ログイン設定")
If ans = vbCancel Then
MsgBox "処理を中断します"
WScript.Quit
Else'自動ログオンするためのレジストリを書き換えます。
strPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon"
set objshell = WScript.CreateObject("WScript.shell")
AutoAdminLogon = objshell.RegRead(strPath)
If AutoAdminLogon = 0 Then
objShell.RegWrite strPath, 1, "REG_DWORD"
End If
Set objshell = Nothing'自動ログオンするユーザを設定します。
call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultDomainName", domein, "REG_SZ")
call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", yuuzaa, "REG_SZ")
call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", pasu, "REG_SZ")End If
MsgBox "指定のドメインユーザーでの自動ログイン設定が終了しました。"
真ん中部分のdomein,yuuzaa,pasuの値を変更して(AAA,BBB,CCCの部分)、「xxxx.vbs」としてどっかに保存してください。変な変数名~ってツッコミはなしで ><;
(注意)VBSは改行の「_」が効きませんので注意してください。
vbs実行→管理者権限取得→レジストリに登録って流れです。
*グループポリシーで設定が上書きされちゃう可能性もありますのであしからず、、、、
あとは再起動して自動でログインできるか試すだけですが、あと、ドメインネットワークじゃなくてパソコンにログインしたい場合に、「domein」の値をPC名にすれば成功するのか?も実験してませんのであしからず、、、、
くれぐれも自己責任でお願いします~
以上、久々の50ジジィーでした
LANケーブル久々にカシメて分かった事
こんにちは、50ジジィ―です。久々に書く勇気が沸きましたw
この前、顧客工場内でカテゴリー6のLANケーブルをひく案件があり、それに関わりました。その案件も完了し、余ったLANケーブルをいただけることになり会社に持って帰りました。
会社は古いケーブルばかりなので、1つ1つ変えていこうと思ってひさびさにRJ45コネクタをカシメました。ジジィ―の古い考えでは右と左同じ色にして、導通チェッカーでOKだったらいいだろうと思ってました。
お恥ずかしい (*ノωノ)....
続きを読むOffice2016製品が2013製品と共生できるようになりました????
こんにちは、50ジジィ―です。
今日顧客から連絡があって、Word(2013)が強制終了するんですって言われて調査に向かいました。去年の10月?からOffice2016製品が2013製品と共生できるようになりました~とマイクロソフトさまが大々的に宣言しまして、こっちとしては顧客に提案できるようになってWinWinの関係だったわけですよ。今年に入ってPowerPoint2016単体を同じ顧客に6台インストールしてちゃんとインストールは出来るようになって、顧客からも不具合の報告は一切ありませんでした。
今日までは…
現場に行って再現してもらいました。
Wordで「差し込み印刷」をしようとして、データを選んで(Excel)「OK」を押すと、
「WORDは動作を停止しました」となります(´;ω;`)
続きを読むSurfaceにUSBキーボードを繋げると
IPアドレスを変更するスクリプト(追記あり)
こんにちは、50ジジィ―です。
先日顧客より「出張先でノートPCを使用するときに社内用固定IPからDHCPに変更するのがいちいちめんどい...なんとかならないか」と言われ「なんとかします」と答えてしまったので、調査「ググる」を始めました。
ググると結構似たような状況に追い込まれた人はいるものでwいろいろなサイトを参考にさせていただきました。
VBスクリプトでやるのが一番いいと解決したのですが、VBスクリプトで作成する上での問題が下記になります。
・「管理者権限」がないとIPアドレスってものは変更できない。
・パソコンによって「ネットワークインターフェイス名」が違う。
いろいろサイトを巡っていい所取りしたのが下記の記述になりました。
xxx.vbsという拡張子にしてデスクトップなどに保存してダブクリするだけです。右クリ
してIP設定(IP,Subnet,GW,DNS1,DNS2)を編集しないといけませんが...
続きを読む