【Excel VBA】イテレータを作って、列の選択肢を順番に選んでフィルタをかけるコード

スポンサードリンク


ポイント

Iterator クラスでは、もれなく反復するために、最低次の機能があればよい。

  • HasNext 関数を用意し、次の要素があるかを判定できる機能
  • Next 関数を用意し、次の要素を取得できる機能

“【Excel VBA】イテレータを作って、列の選択肢を順番に選んでフィルタをかけるコード” の続きを読む

調理用温度計を使って真空調理をするときの 2 つの工夫

写真はトンテキ作り中

写真はトンテキ作り中

工夫 1。調理用温度計の鍋へのセット方法。

鍋に調理用温度計を固定する方法ですの♪

  1. 取手部に穴の空いたお玉を用意する。
  2. 温度計の棒をお玉の穴に通す。
  3. 底に着かないようにお玉を鍋に入れる。

工夫 2。真空調理するときの鍋への工夫

真空調理中の食材が直接鍋底に接して温度が上がらないようにする工夫ですの♪

  1. 皿を1枚鍋底に敷く。

その他。真空調理温度について、引用

“調理用温度計を使って真空調理をするときの 2 つの工夫” の続きを読む

【Windows 10 64ビット】Chrome を標準の 32 bit 版から、64 bit 版に入れ替えました♪

Chrome の 32 ビット版、64ビット版を確認

流れ

  1. OS が 64 ビット版かどうかを確認
  2. Chrome が 32 ビット版かどうかを確認
  3. Chrom 64 ビット版をダウンロード、インストール
  4. Chrome が 64 ビット版になったことを確認
  5. インストール後の状態について

“【Windows 10 64ビット】Chrome を標準の 32 bit 版から、64 bit 版に入れ替えました♪” の続きを読む

【Excel VBA】配列を横方向に、縦方向に、縦横範囲に 1 度の操作で書き込むコード

ポイント

  • Range オブジェクトに配列を代入すればよい。
  • Range のセル数と、配列の要素数は一致させること。
  • 1次元配列 ⇒ 横方向に書き込み。
  • 2次元配列 ⇒ 1次元目が行に、2次元目が列に書き込み。
  • 縦方向に書き込むには、1次元配列を WorksheetFunction.Transpose 関数にかけた結果を Range に代入すればよい。

横、縦、縦横方向に書き込むサンプルコード

“【Excel VBA】配列を横方向に、縦方向に、縦横範囲に 1 度の操作で書き込むコード” の続きを読む

【Excel VBA】配列の要素数に変数の数字を設定する方法

ポイント

  • Dim lngArray(lngLength ) As Long といった書き方は不可能で、コンパイルエラーとなった。
  • [コンパイルエラー: 定数式が必要です。]
  • Dim lngArray(100) As Long ならば問題ない。
  • 変数を配列の要素数に割り当てたい場合は、ReDim でサイズを指定する。

サンプルコード

Public Sub Test()
  ' 配列の要素数となる変数
  Dim lngLength As Long
  lngLength = 100
  ' 配列を宣言し、要素数に lngLength を設定
  Dim lngArray() As Long
  ReDim lngArray(lngLength)
  ' 配列の要素数を確認
  Debug.Print UBound(lngArray)
End Sub

“【Excel VBA】配列の要素数に変数の数字を設定する方法” の続きを読む

【Excel VBA】値が入力されている下端の行番号、右端の列番号を取得するコード♪

VBA コードサンプル

  • ワークシートの一番下から上方向に登って行って、入力されたセルと最初にぶつかったところを値が入力されている下端の行番号として取得している。
  • ワークシートの一番右から左方向に戻っていって、入力されたセルと最初にぶつかったところを値が入力されている右端の列番号として取得している。
Public Sub Test()
  ' 右端の列番号を取得
  Dim lngMaxCol As Long
  lngMaxCol = Cells(1, Columns.Count).End(xlToLeft).Column
  Debug.Print lngMaxCol

  ' 下端の行番号を取得
  Dim lngMaxRow As Long
  lngMaxRow = Cells(Rows.Count, 1).End(xlUp).Row
  Debug.Print lngMaxRow
End Sub

“【Excel VBA】値が入力されている下端の行番号、右端の列番号を取得するコード♪” の続きを読む

【ASP.NET MVC5】マスタの値が重複しないように、モデルのプロパティにインデックスユニークを付ける

ポイント

  • [Index(IsUnique=true)] という Annotation 属性をプロパティに付けることでそのカラムは一意となる。
  • プロパティの型が String の場合、MaxLength も付ける必要がある。一意性をチェックするためには、カラムへの格納サイズが無限とも思われる String だとパフォーマンスが大きく低下するためと思われる。

モデルのコード

    public class Sex
    {
        public int Id { get; set; }
        [Required]
        [Index(IsUnique=true)]
        [MaxLength(10)]
        public string Name { get; set; }
    }

もし MaxLength 属性を付けなかった場合は、どうなったか?

“【ASP.NET MVC5】マスタの値が重複しないように、モデルのプロパティにインデックスユニークを付ける” の続きを読む

【Excel VBA】クラスの雛形

VBA クラスの雛形のポイント

  • mstrClassName はログ出力用にすべてのクラスに付けている。
  • コメントは、C# のドキュメントコメントに倣っている。正しいかどうかは不明
  • クラス名を、TypeName(Me) で取得し、コンストラクタでプロパティにセットしている。
  • 完全コンストラクタを意識する場合、セッターは使用しないが書いておく。
  • コンストラクタに引数を持たせることができないため、Init という名前の関数をコンストラクタの代わりとして使う。

“【Excel VBA】クラスの雛形” の続きを読む

【ASP.NET MVC5】NuGet のパッケージアップデートを簡単に一発で行います♪【プロジェクト作成後にどうぞ】

NuGet コマンド

# アップデート対象となるパッケージを確認する
Update-Package -WhatIf
# アップデート実行
Update-Package
  • Visual Studio 2015 でプロジェクトを作成すると、様々なパッケージが予めインストールされる。しかし大体バージョンが古い。
  • 依存性を崩さないようにアップデートしたい。
  • 簡単にアップデートしたい。ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージの管理、からでも可能。しかし、1つ1つ手動で行う必要があり、手間がかかり、時間もかかる。
  • そこで、Nuget のパッケージマネージャーコンソールからコマンド1発でパッケージをアップデート

“【ASP.NET MVC5】NuGet のパッケージアップデートを簡単に一発で行います♪【プロジェクト作成後にどうぞ】” の続きを読む

【Excel VBA】はじめて VBA でクラスを使う時のためのメモ

ポイントメモ

  • 挿入 > クラスモジュール、で追加
  • クラスモジュールを入れるフォルダが出現し、その中にクラスファイルが追加される。
  • クラスモジュールフォルダ内に、更にフォルダを作ることはできないようだ。
  • 左の窓、プロパティでクラス名(ファイル名)編集
  • クラス宣言をファイル内に書かない。よって、ファイル内を見てもクラス名は分からない。
  • 引数を渡してのコンストラクタは無い。
  • インスタンス化時に自動で行われる初期化処理はある。
    • クラスに次を書く。Private Sub Class_Initialize()
    • Set CInstance = New ClassSkeleton、したときに呼ばれる。
    • 宣言したプロパティ変数を、明示的に初期化するのによい。
  • デストラクタがある
    • クラスに次を書く。Private Sub Class_Terminate()
    • Set CInstance = Nothing すれば呼ぶことができる。
  • プロパティについて。プロパティプロシージャを使う。セッターと、ゲッターがある。
    • 変数宣言は、クラス内で Private で宣言し、クラス外からはセッター、ゲッターを使用して操作する。
private _hoge As String
  • セッター。
Public Property Let Hoge(strValue As String)
    _hoge = strValue
End Property
  • ゲッター。
Public Property Get Hoge() As String
    Hoge = _hoge
End Property
  • クラス外からセットするとき。
    CInstance.Hoge = "セッターに格納"
    
  • クラス外からゲットするとき。
Dim hoge As String
hoge = CInstance.Hoge
  • TypeName(Me) でこれを書いたクラス名を取得することができる。
  • インスタンス化するときは、変数宣言とまとめないで、2行に分けて行う。
    Class_Initialize プロシージャ呼び出しのタイミングを制御するため。
Dim fuga As Fuga
Set fuga = New Fuga

“【Excel VBA】はじめて VBA でクラスを使う時のためのメモ” の続きを読む