空腹おやじのログと備忘録

VBA(主にExcel)でいろいろな実験的な事とか、Linuxのコマンドとか設定とかについて忘れないように、あれこれと・・・

2020-01-01から1年間の記事一覧

【VBA】暗号化API を使って、ファイルのハッシュ値(SHA-1、SHA-256、SHA-512、MD5)を求めてみた。

ダウンロードしたファイルの検証や、ファイルの改竄がないかの検証などに MD5や、SHA-256などによるハッシュ値が使われる事があります。例えば、下の図は、CrystalDiskInfoのダウンロードサイト に記載されているハッシュ値部分をキャプチャしたものです。 …

【VBA】トライ木を使って、文字列Aにある文字列Bを数えてみた

トライ木とは コード トライ木 InStr 結果 テストデータ 結果 トライ木とは 人に説明できるだけ理解していないので、Wikipediaより抜粋。 順序付き木の一種。あるノードの配下の全ノードは、自身に対応する文字列に共通するプレフィックス(接頭部)があり、…

【C++】Windowsをシャットダウン or サスペンド させる

スタートメニューを辿っていくのが面倒だったので、 実行ファイルを作って、デスクトップにショートカットを作ることにしました。環境 Windows 10 Home 64bit Visual Studio Community 2019 #include <Windows.h> #include <iostream> using namespace std; BOOL EnablePrivileges</iostream></windows.h>…

【C++】フォルダ内のファイル一覧取得(エクスプローラー風ソート)

前置き コード 実行結果 参考 前置き C++で、FindFirstFileEx を使って、ファイルを取得。 エクスプローラー風に、数字が綺麗に昇順になるようにソートする。 サブフォルダは、除外。 コード #include <iostream> #include <vector> #include <algorithm> #include <string> #include <Windows.h> #include <shlwapi.h> /</shlwapi.h></windows.h></string></algorithm></vector></iostream>…

【VBA】Twitter お題 「280バイトを超えない範囲で区切りのよいところで分割したい」を解いてみた

Twitter のお題、 280バイトを超えない範囲で区切りのよいところで分割したい を解いてみました。お題は、こちら【エクセルお題】ツイートの下書きをA1セルに入れています。バイト数はLENB関数で分かりますが、単純に280バイトで区切ってしまうと文章が尻切…

【VBA】組み合わせ数を求める

n個の要素から、r個を抜き出す組み合わせ数を求めてみた。とりあえず、コードだけ。 解説は、時間とその気が出来たら、後日wwwn = 99 なら、全ての r の組み合わせを出力できる。 n = 100 なら、47 コード Public Function nCr(ByVal n As Long, ByVal r As …

【C++】Twitter のお題 「魚の数を数えろ!」を正規表現を使って解いてみた

ゴールデンウィークに行われた、Twitter のお題 「魚の数を数えろ!」 「魚の数を数えろ! 蟹バージョン」 を今更ながら、C++で正規表現を使って解いてみた。物足りない人向けに、ちょっと難易度を上げたアレンジ問題を。タラバガニ毛ガニタラバガニ毛ガニ越…

【VBA】Excelのユーザーフォームをフェードイン、フェードアウトさせてみた

はじめに 処理の概要 使用するAPI FindWindow GetWindowLongPtr SetWindowLongPtrA SetLayeredWindowAttributes 拡張ウィンドウスタイル コード 事前準備 標準モジュール 実行サンプル はじめに Windows では、Windows 2000 Professional 以降のバージョンで…

【VBA】Twitter お題「ねこちゃんの数を数える」を解いてみた

Twitter で、ほえほえ氏から提示されたお題「ねこちゃんの数を数える」を解いてみた。少しお題を考えたので投稿してみます。お題のためのお題ということで少し不自然だし、簡単な解法があるかもしれませんがご容赦を。発展型で言ってみます。お題 ねこちゃん…

【VBA】導関数を求める

Twitter でのお題 「y = 5x^3 + 2x^2 + 7x + 5」の導関数を求めろ! を解いてみた。正規表現を使って、必要なデータを取り出して、ゴニョゴニョしました。使用したパターンは、以下の通り。 "([+-]?)(\d*)x(\^([+-]?\d+))?"大雑把な説明 x に対して、 [+-]? …

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その6 デバッグ編

初めに キーワード アタッチ デタッチ 実際にやってみる 操作の流れ アタッチ ブレークポイント ステップイン ステップオーバー ステップアウト 続行 デバッグの停止 全てデタッチ プロセスに再アタッチ ウォッチ 自動変数 ローカル メモリ 主なショートカッ…

ExcelのVBAで使えるDLLを、C++(Visual Studio 2017)で作る。・・・その5 構造体の受け渡し

初めに 事前準備 アライメント #pragma pac による要素の配置への影響の確認 pacあり、ダミーメンバーなし pacなし、ダミーメンバーなし pacなし、ダミーメンバーあり pacなし、ダミーメンバーあり2 メモ コード DLL AccessibleFromVBA.h AccessibleFromVBA…