「columns(1).numberformatlocal = "@" 意味」
という検索キーワードでアクセスがありました。
誰かが作ったExcelマクロの引継ぎを行っていらしたのでしょうか。
「Columns(1).NumberFormatLocal = "@"」というオブジェクト式が、何を意味しているのかを調べていた方による検索です。
Columns(1).NumberFormatLocal = "@"は1列目全体の表示形式を文字列にするオブジェクト式
まず結論を。
「Columns(1).NumberFormatLocal = "@"」は、アクティブなワークシートの1列目(Colunnns(1))の表示形式(.NumberFormatLocal)を文字列に設定(= "@")するコードです。
「Columns(1).NumberFormatLocal = "@"」というコードを実行した後に、アクティブシートの1列目のどのセルでもいいので、いずれかのセルを選択して、[セルの書式設定]ダイアログ-[表示形式]タブを確認すると、
上図のように文字列書式が設定されているはずです。
Columns(1)で1列目のセルを表すRangeオブジェクトを取得する
「Columns(1).NumberFormatLocal = "@"」の冒頭の「Columns(1)」というオブジェクト式は、1列目全体のセルを表すRangeオブジェクトを返します。
この部分を、例えば「Columns(2)」にした、「Columns(2).NumberFormatLocal = "@"」というオブジェクト式であれば、2列目の表示形式が文字列に設定されることになります。
Range.NumberFormalLocalでセルの書式を取得・設定する
つづく「.NumberFormatLocal」は、RangeオブジェクトのNumberFormatLocalプロパティです。
Range.NumberFormatLocalプロパティを使うと、セルの表示形式を取得・設定できます。
Excel上で[セルの書式設定]ダイアログを表示して、[表示形式]タブでユーザー定義書式を指定する際に、文字列は「@」(アットマーク)で指定します。
この「@」をRange.NumberFormatLocalプロパティに設定しているのが、「.NumberFormatLocal = "@"」の部分です。
Home » Excel VBA Rangeオブジェクト » 表示形式 » Columns(1).NumberFormatLocal = "@"の意味