2021年10月4日

マウスを分解して掃除してみたよ。

以前、職場でワイヤレスマウスを使っていました。

Microsoft Wireless Mobile Mouse 1000というマウスでとても使いやすかったのですが、いつのころからかホイールの反応がおかしくなってうまくスクロール出来なくなってしまいました。その後そのマウスは使わなくなってしまったのですが、一応捨てずに取っておきました。

それから月日は流れ、新型コロナウイルスの蔓延により自宅でテレワークをするようになりました。

まさか、パンデミックにより家で仕事をする日がやってくるなんて。ほんとに驚きです。おそらく多くの方が同じように驚いたと思います。

2021年5月5日

【Linux】Linux Mint にWindows10のPowerShellでSSH接続する方法



ゴールデンウィークいかがお過ごしでしょうか。
私は特にどこにも行かず自宅に引きこもっています!笑
まあでも、ずっと家にいるのもストレスですね。早く以前のように自由に出歩けるようになってほしいです。

そんななか、自宅でLinuxを使ってサーバーの構築なんかをやってるんですけど、いろいろ調べてるなかでPowerShellをSSHクライアントとして使えることを初めて知りました。
試しにやってみましたので構築手順を備忘録として公開します。

最初にネットワーク構成です。

Linux Mintは余ってるPCにインストールしました。
バージョンは20.1です。
ホスト名はMOUSEMINT。

Windows10は、Pro バージョン20H2です。
ホスト名はMOUSEDAIV4N。

まずLinux側で作業します。


最初にLinuxのアップデートを行います。
$ sudo apt update

次にOpenSSH Serverをインストールします。
$ sudo apt install openssh-server

一応sshdが起動していることを確認します。
$ ps ax | grep sshd
 115240 ?        Ss     0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
 116367 pts/1    S+     0:00 grep --color=auto sshd
大丈夫そうですね。

次にWindows側で作業していきます。


PowerShellを起動したらSSHでログイン出来るか試してみます。
PS C:\Users\hosopro> ssh hosopro@192.168.1.20
The authenticity of host '192.168.1.20 (192.168.1.20)' can't be established.
ECDSA key fingerprint is SHA256:C3Q0M5pSMhjpwkH6+C3UdvEeR5r3gkIrDSVPuRCddiI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.20' (ECDSA) to the list of known hosts.
hosopro@192.168.1.20's password:
最初に「Are you sure you want to continue connecting (yes/no)?」と聞いてきますので「yes」と入力してEnter。
続いてパスワードを聞いてくるのでLinuxユーザーのパスワードを入力します。

ログイン出来たら一旦ログアウトします。
hosopro@MOUSEMINT:~$ logout
Connection to 192.168.1.20 closed.

再度SSHでアクセス。
PS C:\Users\hosopro> ssh hosopro@192.168.1.20
hosopro@192.168.1.20's password:
Last login: Sun May  2 18:15:50 2021 from 192.168.1.10
2回目からはパスワードだけでログインできます。

ここでホームディレクトリにworkフォルダを作成しておきます。
hosopro@MOUSEMINT:~$ mkdir work
このフォルダはあとで公開鍵を転送するときに使います。
フォルダの作成が出来たら一旦ログアウトします。

ログアウト出来たらホームディレクトリを確認してみます。
「.ssh」フォルダが出来ているのが確認できます。


次に秘密鍵と公開鍵の生成を行います。
PS C:\Users\hosopro> cd .ssh
PS C:\Users\hosopro\.ssh> ssh-keygen

ssh-keygenを実行すると、初めに「Enter file in which to save the key (C:\Users\hosopro/.ssh/id_rsa):」と表示されるのでEnterを押します。

次にパスフレーズをを聞いてきますので入力します。
このパスフレーズは公開鍵認証でSSH接続するときに使います。

パスフレーズは無しでもいいらしいのですが、安全上やはりあったほうがいいので設定します。 ちなみに10文字以上が推奨されています。

また通常のパスワードと違ってスペースも含めることができますので、自分が好きな歌詞の一節をフレーズとして使うなんてもいいんじゃないでしょうか。


.sshフォルダを見るとこのようにファイルが作成されているのが確認できます。


次に作成した公開鍵をLinux側に転送します。
保存先は先ほど作成した「work」フォルダです。
PS C:\Users\hosopro\.ssh> scp .\id_rsa.pub hosopro@192.168.1.20:/home/hosopro/work
hosopro@192.168.1.20's password:
id_rsa.pub                                                     100%  402    97.0KB/s   00:00

転送出来たらSSHでLinuxに接続します。
PS C:\Users\hosopro\.ssh> ssh hosopro@192.168.1.20
hosopro@192.168.1.20's password:
Last login: Sun May  2 18:39:36 2021 from 192.168.1.10

ログイン出来たらホームディレクトリに「.ssh」フォルダを作成します。
hosopro@MOUSEMINT:~$ mkdir .ssh

次にパーミッションを変更します。
hosopro@MOUSEMINT:~$ chmod 700 .ssh



次にworkフォルダに転送された公開鍵ファイルを.sshフォルダに移動します。
hosopro@MOUSEMINT:~$ mv ./work/id_rsa.pub ./.ssh/
hosopro@MOUSEMINT:~$ cd .ssh
hosopro@MOUSEMINT:~/.ssh$ ls -la
合計 12
drwx------  2 hosopro hosopro 4096  5月  2 18:56 .
drwxr-xr-x 23 hosopro hosopro 4096  5月  2 18:51 ..
-rw-rw-r--  1 hosopro hosopro  402  5月  2 18:45 id_rsa.pub

次に移動した公開鍵ファイルのファイル名を変更します。
hosopro@MOUSEMINT:~/.ssh$ mv id_rsa.pub authorized_keys
hosopro@MOUSEMINT:~/.ssh$ ls -la
合計 12
drwx------  2 hosopro hosopro 4096  5月  2 18:58 .
drwxr-xr-x 23 hosopro hosopro 4096  5月  2 18:51 ..
-rw-rw-r--  1 hosopro hosopro  402  5月  2 18:45 authorized_keys

次にauthorized_keysファイルのパーミッションを600に変更します。
hosopro@MOUSEMINT:~/.ssh$ chmod 600 authorized_keys
hosopro@MOUSEMINT:~/.ssh$ ls -la
合計 12
drwx------  2 hosopro hosopro 4096  5月  2 18:58 .
drwxr-xr-x 23 hosopro hosopro 4096  5月  2 18:51 ..
-rw-------  1 hosopro hosopro  402  5月  2 18:45 authorized_keys

ここまで出来たら一旦ログアウトします。
hosopro@MOUSEMINT:~/.ssh$ logout
Connection to 192.168.1.20 closed.


再度SSH接続してみます。
PS C:\Users\hosopro\.ssh> ssh hosopro@192.168.1.20
Enter passphrase for key 'C:\Users\hosopro/.ssh/id_rsa':←秘密鍵のパスフレーズを入力
Last login: Sun May  2 18:47:14 2021 from 192.168.1.10
今度はパスワードでなくパスフレーズを聞いてきました。
うまくいってるようです。
鍵を生成するときに設定したパスフレーズを入力してログインします。
これで公開鍵認証でSSH接続できるようになりました。


公開鍵認証での接続が可能になったので、これまで使用してたパスワード認証は禁止にしたいと思います。

/etc/ssh/sshd_configをviなどで開きます。
PasswordAuthenticationを探し、設定がデフォルトで「yes」になっているのでコメントを外して「no」に書き換えます。
#PasswordAuthentication yes

PasswordAuthentication no

書き換えたら保存し、sshdを再起動します。
$ sudo /etc/init.d/ssh restart

これで鍵を持ってないと弾かれるようになります。
PS C:\> ssh hosopro@mousemint
hosopro@mousemint: Permission denied (publickey).


WindowsからSSH接続するとなると昔はTeraTermやPuTTYを使うのが定番でしたが、デフォルトでPowerShellから接続が出来るのはありがたいですね。これから使っていきたいと思います。



2021年4月29日

【PowerShell】WORDのdocファイルをdocxに変換するスクリプト


最近仕事で、昔作られたWordの仕様書を見る機会があったのですが、ファイル形式が古くて「doc」形式だったんです。 docでも見るぶんにはなんら問題はないのですが、今後のことを考えて一つ一つ開いて「docx」形式で保存するということやっていたんです。

しかし、ファイル数が多いんです。100近くもあるんです。

それでまた思ったんですよ、「めんどくせぇー!」って。笑

というわけで「doc」形式のファイルを「docx」形式に変換するスクリプトを作りました。
###############################################################################
# docファイルをdocxに変換するスクリプト
###############################################################################

$targetPath = "C:\work"

#docファイルを取得
$files = Get-ChildItem -Path $targetPath | ? { $_.Extension -like "*.doc" }

#文書の保存形式(DOCX形式)
$wdFormatDocumentDefault = 16

foreach ($f in $files)
{
    Write-Host $f
    
    #Wordオブジェクトを生成
    $word = New-Object -ComObject Word.Application

    #ファイルをオープン
    $doc = $word.Documents.Open($f.FullName)
    
    #保存ファイル名(拡張子を変更)
    $outputfile = $f.FullName.Replace("doc", "docx")
    Write-Host $outputfile
    
    #保存
    $doc.SaveAs2([ref]$outputfile, [ref]$wdFormatDocumentDefault)
    
    #閉じる
    $doc.Close()
    
    #終了
    $word.Quit()
}

Write-Host "処理が完了しました。"
少し解説すると、最初の$targetPathはターゲットとなるフォルダを指定します。このフォルダ内にあるdocファイルを全て取得して順番に一つ一つ変換していきます。

やってることは単純なのでコードを見ていただければ分かると思いますが、ポイントは保存ファイル名と保存時のSaveAs2のパラメータです。

最初、保存ファイル名はただの文字列で指定していたのですが、保存時にエラーになってしまいうまくいかなかったのでこのようなやり方になりました。おそらくオブジェクト型でないとダメなのだと思います。

次にSaveAs2のパラメータですが、こちらは頭に[ref]を付ける必要があります。最初これに気付かずに非常に苦労しました。 なぜ参照渡しにしなければいけないのかよく分かりませんが、メソッドがそのように定義されているからなんでしょう。

<参考>
http://mtgpowershell.blogspot.com/2010/10/wordhtml.html
https://docs.microsoft.com/ja-jp/office/vba/api/word.wdsaveformat


2021年4月25日

ARCHISS ProgresTouch RETRO TKL(茶軸)を買ってしまいました。

最近、久し振りにキーボードを新調しました。

買ったのは、ARCHISS ProgresTouch RETRO TKL(茶軸)

はじめてのメカニカルキーボードです。
フルキーボードと迷いましたが、コンパクトなテンキーレスにしました。


外箱はこんな感じになってます。


箱を開けるとマニュアルが入っていました。


日本語配列91キーです。
キーにはカナ印字はありません。
まあ、ローマ字入力してるんで無くても困らないですね。


さっそくPCに繋いでみました。
ちなみに有線です。
テンキーが無いのでコンパクトですね。
幅は約36cmです。


裏側はこんな感じです。
USBのコードは左右、中央、3か所から出せるようになってます。


あと、めちゃくちゃ重いです。
量ったら1kg近くもありました。
作りもかなり頑丈に作られてる感じがするんで、ハードパンチャーが使っても壊れなさそうです。笑


横からだとこんな感じですね。
奥行きは約14cm。


あと、結構高さがあるので慣れないと打ちにくいですね。
リストレストがあったほうがあったほうがいいかもしれません。


キーボード奥側
足を折りたたんだ状態。


足を立てた状態。
キーの上部まで5cm以上あります。


DIPスイッチ
このスイッチで特定のキーの配置を交換したり、無効にすることができます。

打鍵感ですが、今まで使ってたパタングラフ式と比べると全然違います。
標準的な打鍵感とされる茶軸を選んだのですが、それでもキーを押すときのストーロークが深いので力が必要だなと感じます。 ただ、このあたりの感覚は使っていくうちに慣れていくと思うので問題ないと思います。

あと、音は大きいなと感じました。筐体の剛性がしっかりしてるので、その分音が響く感じがします。 なのでこれ、会社では使えないですね。
隣の人に「うるせぇ!静かにしろー!」と怒鳴られると思います。笑

あと、今回キーを打ってるところを動画に撮ってみました。
参考になるか分かりませんが、よかったら見ていただければと思います。



2021年4月18日

【PowerShell】複数のWordファイルの文字列を一括置換するスクリプト


最近、仕事で複数のWordファイルを編集する作業がありまして、ある文字列を別の文字列に置換するというものだったのですが、ファイル数が結構あり、こういうのって自動でやらせたいなと思ってスクリプトを作ってみました。

ネットで探すとVBAを使ったやり方は結構たくさん見つかるんですが、PowerShellを使ったやり方はなかなか見つからないんですよね。
それで作るのに苦労したのですが、VBAのやり方を参考にいろいろ試しながらなんとか出来上がりました。
###############################################################################
# 複数のWordファイルの文字列を一括置換するスクリプト
###############################################################################

#Wordファイルが格納されているフォルダ
$targetPath = "C:\work"

#WdFindWrap定数
$wdFindContinue = 1 #検索範囲の先頭または末尾まで検索しさらに検索を続ける

#WdReplace定数 
$wdReplaceAll = 2 #すべて置換する

#パラメーター
$findText = "東京都"        #検索する文字列
$matchCase = $false         #大文字小文字の区別する
$matchWholeWord = $true     #完全に一致する単語だけを検索する
$matchWildcards = $false    #ワイルドカードを使用する
$matchSoundsLike = $false   #あいまい検索
$matchAllWordForms = $false #すべての単語の活用形を検索する
$forward = $true            #検索方向(Trueで末尾へ)
$wrap = $wdFindContinue     #検索が文書の末尾に達した場合にどうするか(WdFindWrap定数)
$format = $false            #書式を検索する場合
$replaceWith = "神奈川県"   #置換文字列
$replace = $wdReplaceAll    #置換する文字列の個数(Wdreplace 定数)
$matchKashida = $false      #アラビア語のドキュメントでの kashida のテキストを区別
$matchdiacritics = $false   #右から左への言語の文書内には、発音区別符号が一致するテキストを区別
$matchalefhamza = $false    #アラビア語ドキュメント内の alef hamza が一致するテキストを区別
$matchControl = $false      #右から左への言語の文書で双方向制御文字が一致するテキストを区別

#Wordファイルを取得
$files = Get-ChildItem -Path $targetPath -Filter *.docx 

foreach ($f in $files)
{
    Write-Host $f

    $word = New-Object -ComObject Word.Application
    $word.Visible = $false
    
    $doc = $word.Documents.Open($f.FullName)

    #置換
    $word.Selection.Find.Execute($findText, `
                                 $matchCase, `
                                 $matchWholeWord, `
                                 $matchWildcards, `
                                 $matchSoundsLike, `
                                 $matchAllWordForms, `
                                 $forward, `
                                 $wrap, `
                                 $format, `
                                 $replaceWith, `
                                 $replace, `
                                 $matchKashida, `
                                 $matchdiacritics, `
                                 $matchalefhamza, `
                                 $matchControl) 

    #保存
    $doc.Save()

    #閉じる
    $doc.Close()

    #終了
    $word.Quit()
}

少し解説すると、$targetPathはWordファイルが格納されているフォルダです。このフォルダ内にある全てのWordファイルの文字列を置換します。

次にFind.Executeメソッドで指定するパラメーターを設定しています。通常、VBAで実行するときは必要なパラメーターだけ指定すればいいのですが、PowerShellの場合すべて指定しないといけません。最初このパラメーターの指定方法がよく分からなくて苦労しました。

$findTextに検索する文字列、$replaceWithに置換後の文字列を指定します。この例では、「東京都」を「神奈川県」に置換しています。
$wdFindContinueはWdFindWrap定数を指定します。今回はwdFindContinue(値:1)を指定して末尾まで検索してもさらに検索するようにしています。
$replaceはWdReplace定数を指定します。今回はwdReplaceAll(値:2)を指定して全て置換するようにしています。

あとは、foreachで見つかったWordファイルに対して同じ処理をくり返しています。


<参考>
http://mtgpowershell.blogspot.com/2010/11/word_12.html
https://touch-sp.hatenablog.com/entry/2017/04/11/185127
https://tonari-it.com/word-vba-replace-replacement/
Find.Execute メソッド | Microsoftドキュメント
WdFindWrap 列挙型 | Microsoftドキュメント
WdFindWrap 列挙型 | Microsoftドキュメント


2021年2月8日

【DIY】モニター台を作ってみた。

昨年、テレワーク用の机を作ったのですが、今回、机の上に置くモニター台を作ってみました。


まずは、出来上がりのイメージです。

モニター1台分の台です。
幅は600mm。奥行は1x10の幅分の235mmです。
下にはキーボードが収まるようにし、中間にはノートPCを収納するイメージです。

これを2台分作成します。




ちなみにこのモニター台の設計図はGitHubに上げてますので、気になる方はダウンロードしてみてください。



それでは材料です。

天板は1x10(19mmx235mm)で600mmの長さにカットしたものを2本。
足の部分も同じく1x10で120mmの長さにカットして、これは4本。
あとは、中間の棚板1x4を長さ562mmでカットして4本。
すべてホームセンターで切ってもらいました。


最初にやすり掛けをします。
このやすり掛けは結構面倒なのですが、これを丁寧にやるかやらないかで出来上がりに差が出てきます。


やすり掛けが終わったら、塗装します。
机に合わせて天板はブライワックス(ジャコビアン)。
足と棚板はつや消しブラックに塗装しました。


そして組み立てです。
ボンドとコーススレッドで留めてます。
ちょっと板の反りとかがあって、棚板がうまく収まらなかったりして苦労しましたが、なんとか出来上がりました。


机に乗せるとこんな感じです。
うーん、いいんじゃないでしょうか。
だいたい予想通りの出来です。


机とマッチしてますね。


キーボードとノートPCも収まってます。




2020年10月17日

【DIY】テレワーク用に机を作ってみた。(後編)

中編からの続きです。
塗装を行っていきます。





サンド掛けまで出来ましたのでいよいよ塗装を行っていきます。


今回、天板をウレタンニスで塗装し、つやのある感じにしようと思っています。


刷毛で塗っていきます。


一通り塗れました。

【DIY】テレワーク用に机を作ってみた。(中編)

前編からの続きです。
設計図を書いていきます。





この前のポンチ絵をもとにCADを使って設計図を書いてみます。

幅:1200
奥行き:600
高さ:700

いきなりですが完成図です。笑
(途中の経過のキャプチャ撮るの忘れてました)


足の部分には梁を1本追加しました。
あと、ぐらつき防止で背板を付けることにしました。
使用する材料は、OSB合板(厚さ11mm)、2×4、1×4、金具、鬼目ナット、ボルト、木ネジ、木工ボンドです。

【DIY】テレワーク用に机を作ってみた。(前編)

どうもお久しぶりです。
管理人です。

新型コロナウイルスの影響で世の中テレワークが流行っていますが、私が務める会社もご多分に漏れずテレワークを導入しています。

そのおかげで最近はもっぱら自宅で仕事を行っているのですが、ちょっと困ったことが起きてしまっています。

それは、、、



机が小さ過ぎて作業がしづらーい!

ということです。笑(ケンさんすみません)

2020年7月26日

【Xamarin】Xamarin.FormsでHello World してみた。

私、実はスマホアプリを作りたくて前々からXamarinを独学で勉強してました。

ただ、いかんせん分からないことだらけで非常に苦労しておりました。

書籍を買って読んでみたり、ネットで調べてみたり、講習会にも参加してみました。

そして、最近になってようやく理解出来るようになってきましたので、これからXamarinについての記事も書いていこうと思っております。

今日は手始めに「Hello World」を表示するところまでやってみたいと思います。

ちなみにXamarinはMac Bookを使って開発しています。

2020年7月18日

【Blogger】私はロボットではありません。お問い合わせフォームにreCAPTCHAを付けてみたよ。

このブログのお問い合わせのページはformrunというサービスを利用して構築しています。

ただこのブログ、お問い合わせなんてほとんどありません。

5年ぐらいの間に1回あったか無いかぐらいです。(笑)

そんな訳でお問い合わせのページは無くてもいいんですが、一応Google Adsenseをやる場合に「お問い合わせフォーム」があったほうがいいらしいんで設置しています。

2020年7月12日

【Blogger】テンプレートを変更してみました。

ちょっとブログのテンプレートを変えてみました。

どうでしょうか?

これまで「Zikazev Blue」というテンプレートを使用していて、まあまあ満足していたのですが、ひとつだけ不満があって、スマホで見たときに表示が崩れるという問題がありました。

そこで新たなテンプレートを探してたのですが、最近になって良さそうなのが見つかりましたのでここ1週間で変更してみました。




新しいテンプレートは、「Alexis」というやつです。
https://newbloggerthemes.com/alexis-blogger-template/

シンプルなテンプレートでレスポンシブ対応です。

2020年7月4日

新型コロナウイルス接触確認アプリ(COCOA)を入れてみた

みなさんは、新型コロナウイルス接触確認アプリ(COCOA)、入れましたか?

私は昨日入れました。

最近また感染者が増えてきましたからね、知らない間に感染者の近くにいたっていうこともあるので、まだの方はすぐに入れたほうがいいと思いますよ。

ところで、インストールしたあとにこのアプリをいろいろ触ってたんですが、ちょっとこれどうなの?というやつがありました。

それは、陽性情報の登録の際の同意に関する説明です。







「陽性情報の登録」ボタンを押すと「陽性登録への同意」という画面が表示されます。

2020年6月27日

【Windows10】ブルースクリーンが出たよ

昨日のことなんですが、会社から帰宅してとりあえずパソコンを起動したんです。
その後、ログインしたあとしばらくそのまま30分ぐらい放置してたんです。

そうしたらいきなりこの画面に。

なんとブルースクリーン!

マジか!(;゚Д゚)

Windows10になって初めて見ました。

とりあえず、心を落ち着かせて原因を探ってみることに。

えーと、なになに、

停止コード:SYSTEM SERVICE EXCEPTION
失敗した内容:Ntfs.sys

ntfsという怖い単語が出てますが、とりあえずネットで調べてみました。

するとどうやらファイルシステムが壊れているか、ハードディスクまたはメモリに問題が起きている可能性が高いとのこと。

あ~、マジかぁ。。

このいま使ってるパソコン、買って8年ぐらいするんでハードディスクやメモリが壊れても全然不思議じゃないんですよね。

いよいよ寿命かな。

まあ、とりあえず画面に「エラー情報を収集してます」と出てるので、収集が終わるのを待ってみることにしました。

が、

30分経っても0%のままです。

これはなんか動いてないっぽいなと思い、PCの電源ボタンを押してみるといきなり電源が落ちました。

うーん、どうなってんだ。

ま、寝るか。笑

と、昨日はもう眠かったんでそのまま寝たんですが、今朝になってPCを起動してみると問題なく立ち上がってきました。

昨日のブルースクリーンはいったいなんだったのか。。

一瞬おかしくなっただけなのか。。

原因はよく分かりませんが、とりあえず今は動いていて、こうしてブログを書いています。

だけど、もう買い替えたほうがいいかもしれませんね。

早いとこ新しいPCを購入したいと思います。


2020年3月20日

【Mac】外付けキーボードのコピー&ペーストをCtrl+C、Vに変更する

どうもお久しぶりです。

もう3月の後半ですが、今年最初の投稿です。(汗)

ところで最近、Mac bookでアプリの開発を行っているのですが、Windowsと比べるといかんせんMacが使いづらくて困ってます。

Finderが使いづらいとか、ドックのアイコンをクリックしただけで最小化されないとか、全体的にウィンドウ表示が遅いとか、いろいろ不満点があるんですが、なかでも一番使いづらいと思うのがキーボードです。

まあ、Windowsのキーボードとキーの配置が違うので仕方ないことなんで慣れるしかないかとは思ってるんですが、しかしながらコピー&ペーストだけはどうにも慣れません。

正直やりにくいです。

Windowsの場合だとコピー&ペースト[Ctrl]+[C]、[Ctrl]+[V]なんですが、左手の小指で[Ctrl]キーを押しながら[C]、[V]が難なく押せるんです。しかしMacの場合、[Command]キーが内側よりに配置されてるので中指とかで押さないといけなくなってしまい非常にやりにくいと感じてます。

それでなんかいい方法はないかと調べたところ、ありました。

2019年11月19日

【Access】以前お客さんに作ったシステムで「クエリは破損しています」というエラーが出てしまったらしい。


どうもお久しぶりです。

長らくブログを放置してしまいました。

ところで、本日、以前私がフリーで仕事をしているときにお客様に作成したシステムに関する問い合わせがあり、システムを動かすと「クエリは破損しています」というエラーが出てしまうというとのこと。

そのシステムはAccessで作られており、調べてみると最近マイクロソフトが提供した更新プログラムに不具合がありその影響で出ているエラーということが分かりました。

2019年7月15日

【スイーツ】セブンの『きみのプリン』がウメェェェ!!

今日、何気なしに近所のセブンイレブンに立ち寄ったところ、スイーツコーナーに新商品が並んでいるのを発見してしまいました。

どうやらプリンのようです。

名前は『きみのプリン』。

ほぉ~、黄身と君のダブルミーニングだな。(ニヤリ)

オジサンそういうの嫌いじゃないぞ!

というわけで早速買ってみました。


パッケージはこんな感じです。
ちょっと小ぶりですかね。
そして、値段は148円(税込み159円)。
まあまあの値段です。



ふたを開けるとこんな感じ。
見た感じ非常になめらかさそう。


では早速、いただきまーす!


うーん、予想通り口当たりが非常になめらかで、食べた瞬間に香りが口の中に広がりプリンが舌の上でとろけます。

これはウメェェェェェェェェ!!!

プログラミングしてて疲れて甘いものが欲しくなった時に食べるにはちょうどいいです。

ぜひ、お試しあれ。



2019年6月29日

コメントシステムをDISQUSからMeTypeに変えてみたよ。

このブログを始めた当初からコメントシステムはDISQUSを使っていたのですが、最近になって広告が盛大に表示されるようになってしまい非常に見苦しい状態になっていました。

この広告を非表示にするには有料版にアップグレードする必要があるのですが、それには最低月に9ドル払わないといけません。

しかし、たまにしかコメントが無いのに月に9ドルは払いたくありません。

そこで、DISQUSに代わるものをいろいろ探してみました。

2019年6月19日

【初心者向け】入力フォーム(その5:削除機能の実装)






前回、編集ボタンの作成まで出来ましたので、今回は削除機能の実装をしていきたいと思います。



まずは、「F_入力」フォームに[削除]ボタンを追加します。

名前:buttonDelete
標題:削除

次にこの[削除]ボタンのクリック時イベントプロシージャに次のように記述します。
Private Sub buttonDelete_Click()

    Dim ans As VbMsgBoxResult
    
    ans = MsgBox("このレコードを削除してもよろしいですか?", vbYesNo + vbExclamation, "削除")
    
    If ans = vbYes Then
    
        '削除実行
        DoCmd.RunSQL "DELETE * FROM T_名物 WHERE ID = " & CStr(Me.ID.Value)
    
    End If

    'フォームを閉じる
    DoCmd.Close acForm, Me.Name

End Sub
ここでは何を行っているかというと、まずMsgBoxでメッセージを表示させレコードの削除の確認を行っています。そして[はい]のボタンが押された場合に「T_名物」テーブルから該当のレコードを削除しています。

2019年6月18日

【初心者向け】入力フォーム(その4:編集ボタンの作成)






前回で入力フォームからの新規追加の機能は完成しました。

今回は、同じ入力フォームを使って編集も出来るようにしていきたいと思います。


まずは、「F_名物」フォームに「編集」ボタンを追加します。

名前:buttonEdit
標題:編集



次に[編集]ボタンの「イベント」タブの「クリック時」のところの右端にある[...]をクリックします。

そして、[追加]ボタンの時と同じように「コードビルダー」を選択して[OK]をクリックします。

するとbuttonEdit_Click()というイベントプロシージャが作られますので、ここに下記のように記述します。
Private Sub buttonEdit_Click()

    DoCmd.OpenForm "F_入力", , , , , acDialog, CStr(Me.ID)

    Me.Requery

End Sub
追加のときと違うのは、最後のパラメータがCStr(Me.ID)となっていることです。これは、選択したIDを文字列として渡しています。これにより「F_入力」フォームでどのIDのレコード表示すればいいかが分かるようになります。