カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

VBで指定した日の曜日が月のうち何回目かを調べる

今回は、「今日は第何○曜日か知りたい」という時に使えるプログラムを紹介します。
今日が金曜日だと仮定して、今月のうち何回目の金曜日かを知りたい時に使います。

2つの日時の間隔を返すDateDiff関数を使って結果を求めます。

まずDateDiffの第1引数には「ww」を指定し、週の開始曜日をカウントの基準に設定します。
そして第3引数である“週の開始曜日”に調べたい日の曜日を入力することによってその曜日が月のうち何回目なのかを取得することができます。

ソースは次のようになります。

Dim year As Integer
Dim mon  As Integer
Dim day  As Integer
Dim ww   As Integer

year = 2020
mon = 7
day = 10

ww = DateDiff("ww", DateSerial(year, mon, 0), _
    DateSerial(year, mon, day), _
    Weekday(DateSerial(year, mon, day)))

Debug.Print ww & "回目"

出力結果は

2回目

となります。
続きを読む…»

2,667 views

Windows10が起動できなくなったのでMBRの作成

Windows10でMBRが無くて起動できないパターンに陥ってしまったので解消した方法をご紹介します。
 
まずその経緯をご説明します。
Windows7を使っていて、プライマリのSSDがいっぱいになったので新しいSSDを買いました。
そのSSDにまたWindows7をインストール。
 
念のため、元のSSDはSATAの3番目に接続して保管している状態に。(セカンダリはHDD)
 
しばらくしてOSをWindows10にアップグレードしました。
10ではDVDが再生できない等の問題もあって元のSSDを残したまま使っていたのですが、10でDVD再生できるフリーソフトを見つけたので、これを機にWindows7のSSDは外付け用にして利用しようと考えました。
 
で、SSDをフォーマットして取り外し。
Windows10がちゃんと起動できるか試したところ…、起動しない!という事態になってしまったのです。
 
ちゃんと起動するか確認してからフォーマットすれば良かったのですが、デュアルブートになってしまっていると思っていなかったのです。
おそらく初めにSSDを買い換えた時に、3番目に元のSSDを繋いだままWindows7をインストールしてしまっていたのでしょう。
新しいSSDにはMBRが作成されず、元のSSDのMBRを利用して起動するようになってしまっていたということになります。
続きを読む…»

3,009 views

すぐできるテレワーク環境構築

新型コロナウイルス感染拡大に伴い、日本政府から「緊急事態宣言」が発令されて、
一般家庭だけでなく、企業においてもテレワークを推奨され、早急な対応が要求されています。
 
そこで私がテレワーク環境を構築した手順をご紹介したいと思います。
テレワーク環境構築の参考になれば幸いです。
 
構築した環境の要点は以下の2点です。
 
1.社外から社内ネットワークへVPNで接続する
2.VPNで接続できたら社内にあるPCにリモートで接続し操作する
 
まず、VPN環境を構築するために「ソフトイーサ株式会社」と「筑波大学」との共同研究により開発されている研究プロジェクト「SoftEther VPN」を利用させていただきました。
※VPNとはVirtual Private Networkの略で仮想的に外部ネットワークに接続するというものです。
 
SoftEther VPN プロジェクト – https://ja.softether.org/

続きを読む…»

1,826 views

Chr関数で表現する制御文字

vbCrLfやvbTabなど、定数が使用できないときにChr関数を使って表現します。

Chr関数の書式

Chr([ASCIIコード])
定数 Chr関数での表記
vbTab Chr(9) タブ
vbCr Chr(13) キャリッジリターン
vbLf Chr(10) ラインフィード
vbCrLf Chr(13) & Chr(10) キャリッジリターン+ラインフィード

ACCESSのクエリでは定数が使用できないので、知っておくと便利です。

1,440 views

Accessで発生するメモリー不足エラー

Accessで「メモリー不足です」という正体不明のエラーが出て困っています。
使用環境はWindows10 Pro 64bit、Access2016・2013です。

これまでも平常通り行ってきた業務をしていたら、上記のように「メモリー不足です」というエラーが発生し、データ元のAccessファイルが壊れてしまうという現象が発生しました。
原因としては多々あるようですが、原因の1つとして分かったことがあったので共有させていただければと思います。

原因の究明

まず、エラーが出るPCと出ないPCがあること。
出るPCと出ないPCの差を見つける。

発見した原因

積んでいるメモリーの差
エラーが出るPC、出ないPCの差を見たところ、OSはどちらもWindows10 Pro 64bit、CPU等も特に目立った違いがない。
記事の最後にリンクを貼っているMicrosoftのページにあるレジストリの値も全て同じ設定でした。
その他で唯一違ったのが積んでいるメモリー容量で32GBと16GBでした。

エラー解消…ではない

先ほど見つけたのがメモリーの違いということで、エラーが発生するPCの32GBのメモリーを16GBに変更しました。
すると明らかにエラーの発生する頻度が激減!

ただし、激減なので全く出なくなったわけではありません。
完全に解消したいとことなのですが、エラーが出ないPCもあるため、原因の究明はかなり難しいものと思われます。

下記URLも参考にさせて頂いたので、同じように悩まれている方がいらっしゃれば参考にしていただければ幸いです。

参考URL:
Access2010およびAccess2019で謎にエラー、「メモリ不足」でクエリー停止、ちょっとだけ解決
Access でメモリ不足エラーが発生する現象の対処策について

4,780 views