【C#】DateTimePickerで日付と曜日を表示する

DateTimePickerの表示形式にて、「2022/02/21 月」のように日付と曜日を表示させることができる。

コントロールのプロパティで、Formatを「Custom」にし、CustomFormatを「yyyy/MM/dd ddd」と変更する。
※FormatをCustomに変更しないと、反映されないので注意!

yyyy/MM/dd ddd とすると、以下の表示になる。

yyyy/MM/dd dddd とすると、以下の表示になる。

 

 

【Excel】LAMBDA(ラムダ)を使って独自の関数を作成する

※2022/2/9に配信されたExcelから利用可能

はじめに

LAMBDA(ラムダ)を使えば、独自の関数を作れるとのことなので、利用する手順を確認してみた。

作成手順

直接セルに関数も書けるようだが、書式タブ→名前の管理を開き、任意の名前と、定義する内容を参照範囲に記載する。

例.  =LAMBDA(value1,value2,value3, value1 + value2 + value3)

ここでは、ORIGINAL_ADDという名前の関数とし、引数を3つ(value1~value3)定義した。LAMBDAの最後の引数が実際の処理になる。ここでは渡されたvalue1~3までを足した値を返すようにした。

実行結果

以下のように渡した3つの値を足した結果が返ってきた。

尚、今回試したところ、次のパターンはエラー(#VALUE)となった(文字列を含む場合)。

  • =ORIGINAL_ADD(1,2,”c”)
  • =ORIGINAL_ADD(“a”,”b”,”c”)

ただし、次の場合にはエラーにはならなかった(引数の値を省略した場合)。

  • =ORIGINAL_ADD(1,,)
    結果は1となる。

まとめ

同じ計算式を複数のセルで利用する場合には便利そうな機能。

ただ、どの環境でも使えるようになるには時間が掛かると思われるので、不特定の人が利用するExcelではいまのところ利用は控えた方がよさそう。

 

【Excel】今年の残り日数を取得する

以下をセルに記載すればOK 

=DAYS(YEAR(TODAY()) &"/12/31",TODAY())

 

ポイント

  • DAYS関数で日数の差を取得できる
  • 年の最後の日付は12/31で決まっているので、TODAY関数をYEAR関数を組み合わせて今年の年末日を取得している
  • 上手く日数が表示されなければ、セルの書式設定で、「数値」を選択すること

【OneDrive】場所が利用できません 再解析ポイント バッファーにあるタグは無効です。エラーになる

OneDriveと同期している特定のフォルダをクリックすると「再解析ポイント バッファーにあるタグは無効です。」といったエラーメッセージが表示されて、フォルダを開くことができない。

Cドライブをスキャンディスクを実施したところ、修復が必要である旨が表示された。

メッセージに従い、再起動したところ該当のフォルダが表示されるようになった。

OneDriveは挙動が良く分からないので、別の場所にもバックアップしておいた方がよさそう・・・

 

 

【C#】Windowsの環境変数の値を取得する

コマンドプロンプトでsetコマンドを実行した際と同じ値をC#で取得する場合のコードは以下の通り(実際に試して値が一致したことを確認した)

echo %APPDATA% と同じ結果

Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));

取得される値:C:¥Users¥(ユーザー名)¥AppData¥Roaming

echo %LOCALAPPDATA% と同じ結果

Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));

取得される値:C:¥Users¥(ユーザー名)¥AppData¥Local

echo %USERPROFILE% または echo %HOMEDRIVE%%HOMEPATH% と同じ結果

Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));

取得される値:C:¥Users¥(ユーザー名) 

 

【SQL Server】記号が含まれる文字を検索できない

例えばA5M2でエクスポートしたExcelファイルのデータをそのままSQL ServerにインポートするとNULL値が、「« NULL »」という文字列で保存されてしまうことがある。

このとき、対象のレコードを抽出したい場合に以下のようなSQLを書いても取得できない。

SELECT
	* 
FROM
	TABLE_NAME
WHERE
	FIELD_NAME = '« NULL »'

この場合は、検索したい文字列の先頭に「N」を付ければOK

SELECT
	* 
FROM
	TABLE_NAME
WHERE
	FIELD_NAME = N'« NULL »'

なので、Updateしたい場合も以下のように書けばOK

UPDATE TABLE_NAME
SET
	FIELD_NAME = null
WHERE
	FIELD_NAME = N'« NULL »'

※データ型がnvarcharの場合

 

【Windows Bat】特定のページを指定したブラウザで開く

それぞれのEXEとURLを指定し、startコマンドで実行してあげればOK

echo Chromeで開く
start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://www.google.com/

echo Edgeで開く
start "" "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" https://www.google.com/

echo Internet Explorerで開く
start "" "C:\Program Files\Internet Explorer\iexplore.exe" https://www.google.com/

【C#】PictureBoxに画像をドラッグ&ドロップできない

原因

  1. AllowDropがtrueになっていない。
    フォームロードで「this.pictureBox1.AllowDrop = true;」を記載する
  2. Visual Studioを管理者で起動している。
    以下のようにタスクバーに「(管理者)」と記載されている場合は、ドラッグ&ドロップできない。一般ユーザーでVisual Stdioを起動すればOK。

【Windows Bat】プログラムを強制終了させる

次のnotepad.exeの部分を書き換える

taskkill /im notepad.exe /f

実行すると強制終了したプログラムのプロセスIDも含めて表示される(以下の例は2つ起動中であった場合に両方とも終了された例)

成功: プロセス "notepad.exe" (PID 15660) は強制終了されました。
成功: プロセス "notepad.exe" (PID 5492) は強制終了されました。

なお、該当するプログラムが起動中でない場合は「エラー: プロセス “notepad.exe” が見つかりませんでした。」といった文字が返る

 

参考

【Windows Bat】プログラムの起動時間とプロセスIDを取得する

【Windows Bat】プログラムの起動時間とプロセスIDを取得する

次のnotepad.exeの部分を書き換える

wmic process where 'name="notepad.exe"' get name,creationdate,processId

実行結果は以下の通り(起動日時、EXE名、プロセスIDが返る)

CreationDate               Name         ProcessId
20211202103244.517899+540  notepad.exe  11476

EXEが1つも起動していない場合は、「利用できるインスタンスがありません。」という文字が返ってくる

 

参考

【Windows Bat】プログラムを強制終了させる