Excel VBA While 繰返し処理 書き方

Excel VBA While文 コード例

Excel VBAで While 文を使った繰返し処理の書き方です。While は、下記コード例のように「While と Wend」間で処理を記述します。

Sub test()
    Dim i As Integer
    i = 1
    While i <= 100   ' i が100以内ならくり返す
        i = i + 1  ' i は1個づつ足されていく
    Wend
    Worksheets("Sheet1").Cells(1, 1).Value = i
End Sub

上記コードの場合 While〜Wendが1〜100まで繰り返され最後に iの中身をセルに書いています。セルには「101」が入ります。

VBAWhile文を使い九九表を作成するコード例です。

Sub kuku()
    Dim nodan As Integer   '○○の段
    Dim row As Integer      ' 行
    Dim kotae As Integer   ' 答え
    nodan = 1
     While nodan <= 9  '1 の段から9の段
        row = 1
        While row <= 9  '1行目〜9行目まで
            kotae = nodan * row '99の計算(掛け算)
            Worksheets("Sheet1").Cells(row, nodan).Value = Str(nodan) & "×" & Str(row) & "=" & Str(kotae)
             If nodan Mod 2 = 0 Then '段が偶数の場合
                Worksheets("Sheet1").Cells(row, nodan).Interior.Color = RGB(235, 240, 235) 'セルの背景色を変更する
             End If
             row = row + 1
        Wend
        nodan = nodan + 1
     Wend
End Sub
Excel VBA While〜Wend 実行結果

C# .NET 6.0 Dictionary to JSON macOS

.NET 6

macOS Monterey.NET 6.0 SDKの環境で 「dotnet new console」すると Program.csが下記のようになっていました。

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

https://aka.ms/new-console-template

.NET 6 以降、console テンプレートを使用した新しいプロジェクトからは、以前のバージョンとは異なるコードが生成されるらしいです

実行されるバージョンを確認したかったのでProgram.csを下記に書き換えて実行しました

string ver = Environment.Version.ToString();
Console.WriteLine(".NET バージョン = {0}", ver);
Environment.Version.ToString() 実行結果

.NET実行バージョンは6.0.1になっていました。

List<Dictionary<string,string>>この構造からJSON変換する下記コード例です。

using System.Text.Json;
var _list = new List<Dictionary<string,string>>()
{
    new() {{"george_orwell","動物農園"}},
    new() {{"ray_douglas_bradbury","華氏451度"}}
};

var json_out = JsonSerializer.Serialize(_list);
Console.WriteLine(json_out);
List<Dictionary<string,string>>からJSON変換結果

JSON文字列に変換されました

C# Base64でエンコードされたHMACSHA256ハッシュ文字列

Base64でエンコードされたHMACSHA256ハッシュ文字列

C#を使ってHMAC SHA256を利用する場合 System.Security.CryptographyをusingするとHMACを継承したHMACSHA256と云うクラスが入っています。そのHMACSHA256クラスを利用します。Base64文字列に変換するにはConvert.ToBase64String()を使います。

下記はコード例です

private string CreateSignature(string inputStr, string secretKey)
{
	HMACSHA256 hmacsha256 = new HMACSHA256(Encoding.UTF8.GetBytes(secretKey));
	var signature = hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(inputStr));
	var base64Signature = Convert.ToBase64String(signature);
	return base64Signature;
}

下記のように、inputStrとsecretKeyに文字列を入れて実行すると、Base64エンコードされたHMACSHA256が作られます。

string inp = textBox1.Text;
string outp = this.CreateSignature(inp, "mjeld1234");
textBox2.Text = outp;
Base64でエンコードされたHMACSHA256ハッシュ文字列
Base64エンコードされた文字列結果

「KEmHEG1L9Y/2kRXNf/zIMfwf4NKIXX70qqjjIgCx3qc=」と表示されました

PythonHMAC SHA256 コード例は下記URLです