カテゴリー
Google

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

流れ

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

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

ポイント

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

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

カテゴリー
Microsoft

【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
カテゴリー
Microsoft

【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
カテゴリー
Microsoft

【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 属性を付けなかった場合は、どうなったか?

カテゴリー
Microsoft

【Excel VBA】クラスの雛形

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

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

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

NuGet コマンド

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

【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】エクセルファイルのコネクション、名前をすべて削除するコード!

追記: 2015年11月22日

Excel のデータコネクション、セルなどにつけた名前を全てく削除するプロシージャコード

''' <summary>
''' エクセルファイルに存在するコネクションを全て削除します。
''' </summary>
Private Sub DeleteConnections()
  Do While ActiveWorkbook.Connections.Count > 0
    ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
  Loop
End Sub

''' <summary>
''' エクセルファイルに存在する名前を全て削除します。
''' </summary>
Private Sub DeleteNames()
  Do While ActiveWorkbook.Names.Count > 0
    ActiveWorkbook.Names.Item(ActiveWorkbook.Names.Count).Delete
  Loop
End Sub
カテゴリー
コンピューター

2015年10月のアクセス解析

先月 2015 年 10 月の 1 ヶ月間の Google アナリティクスの結果です。

  • ユーザー > サマリー(左に先月、右に先々月と比較表示)
  • 行動 > サイトコンテンツ > すべてのページ
  • 集客 > ソーシャル > 参照元ソーシャル ネットワーク
  • 集客 > 検索エンジン最適化 > 検索クエリ

以上の 4 種類の Google Analytics 結果です。

ユーザー > サマリー(左に先月、右に先々月と比較表示)