日本語入力ソフトとVBAの覚え書き

・各種日本語入力ソフトの辞書解説 ・ちょっと楽になるWord/Excel VBA集 ・ボーダーブレイク用語辞書

セルの内容を調べるExcelVBAコード


f:id:dz_dzone:20170814233145j:plain
一口にセルの内容と言ってもいくつか考えられます。「値」だったり「テキスト」だったり「数式」だったり、また書式によっても内容はいろいろ変わりますよね。ここではいくつかの例を挙げてそれぞれの「セルの内容」を確認します。

コード

Sub ShowCellData()
    Dim StrCellAddress, StrFmt, StrVal, StrVal2, StrTxt, StrFml
    With ActiveCell
        StrCellAddress = "セル : " & .Address
        StrFmt = "書式 : " & .DisplayFormat.NumberFormatLocal
        StrTxt = "Text  : " & .Text
        StrVal = "Value : " & .Value
        StrVal2 = "Value2 : " & .Value2
        StrFml = "Fomula: " & .Formula
    End With
    MsgBox StrCellAddress & vbCrLf & StrFmt & vbCrLf & _
           StrTxt & vbCrLf & StrVal & vbCrLf & _
           StrVal2 & vbCrLf & StrFml
End Sub
Rangeオブジェクトのプロパティ 内容
.Text テキスト
.Value
.Value2 値2
.Formula 数式

数値(1)

f:id:dz_dzone:20170914142838j:plain
C4セルに「123」と数値を入力しました。数式バーも「123」になっています。書式は標準でこれは数値です。この場合はどのプロパティでも「123」になります。
f:id:dz_dzone:20170914143501j:plain
D4セルに「=C4*2」と数式を入力しました。計算されてセルは「246」と表示されています。数式バーは「=C4*2」です。書式は標準でこれは数値です。数式以外のプロパティは「246」になります。

数値(2):分数

f:id:dz_dzone:20170914144553j:plain
C8セルに「0.5」と数値を入力しました。数式バーも「0.5」になっています。書式は標準でこれは数値です。この場合はどのプロパティでも「0.5」になります。
f:id:dz_dzone:20170914144604j:plain
D8セルに「=C8」と数式を入力し、書式を「# ?/?」(分数)に設定しました。書式に従ってセルには「1/2」と表示されています。数式バーは「=C8」です。このとき値としては「0.5」、テキストは「1/2」となります。

文字列

f:id:dz_dzone:20170914145303j:plain
C5セルに「ABC」と文字列を入力しました。数式バーも「ABC」になっています。書式は標準でこれは文字列です。この場合はどのプロパティでも「ABC」になります。
f:id:dz_dzone:20170914145318j:plain
D5セルに「=LEFTB(C5,2)」と数式を入力しました。数式に従いセルは「AB」と表示されています。数式バーは「=LEFTB(C5,2)」です。書式は標準でこれは文字列です。数式以外のプロパティは「AB」となります。

通貨/会計

f:id:dz_dzone:20170914145405j:plain
C6セルに「1234567」と数値を入力しました。数式バーも「1234567」になっています。書式は標準でこれは数値です。この場合はどのプロパティでも「1234567」になります。
f:id:dz_dzone:20170914145415j:plain
D6セルに「=C6」と数式を入力し、書式を「通貨(¥)」に設定しました。書式に従ってセルには「¥1,234,567」と表示されています。数式バーは「=C6」です。このとき値としては「1234567」、テキストは「¥1,234,567」となります。

日付/時刻

f:id:dz_dzone:20170914145427j:plain
C7セルに「2017/9/1」と日付を入力しました。書式は自動的に「yyyy/m/d」になりました。数式バーは「2017/9/1」です。値(Value)は「2017/09/01」になっています。また、値2(Value2)はシリアル値の「42979」になっています。数式もシリアル値になっています。
f:id:dz_dzone:20170914152539j:plain
C7セルを一度クリアして「H29/9/1」と日付を入力しました。書式は自動的に「[$-411]ge.m.d」になりました。数式バーは「2017/9/1」です。値(Value)は「2017/09/01」になっています。また、値2(Value2)はシリアル値の「42979」になっています。数式もシリアル値になっています。
f:id:dz_dzone:20170914145437j:plain
D7セルに「=C7」と数式を入力し、書式を和暦の日付に設定しました。数式バーは「=C7」です。値(Value)は「2017/09/01」になっています。また、値2(Value2)はシリアル値の「42979」になっています。

まとめ

まとめると以下のようになります。

日付/時刻以外の場合

プロパティ 内容
Textプロパティ セルに表示されているもの
Valueプロパティ 入力値または数式の結果で書式が標準のもの
Value2プロパティ Valueと同値
Formulaプロパティ 数式が入力されていれば数式
それ以外は入力値で書式が標準のもの

日付/時刻の場合

プロパティ 内容
Textプロパティ セルに表示されているもの
Valueプロパティ 書式「yyyy/mm/dd」の日付
※書式「h:mm:ss」の時刻
Value2プロパティ シリアル値
Formulaプロパティ 数式が入力されていれば数式
それ以外はシリアル値

以上。

にほんブログ村 IT技術ブログ VBAへ←記事を気に入って頂けたらポチッとしてもらえると励みになります。