対象:Excel 2010, Excel 2013, Windows版Excel 2016
「vba メッセージボックス セルに入力されている時間を表示」
という検索で『インストラクターのネタ帳』へアクセスがありました。
アクティブセルの値をメッセージボックスに表示するサンプルマクロ
以下のようなSubプロシージャを実行して、期待どおりの結果にならないということかもしれません。
Sub アクティブセルの値を表示する()
Dim tmp
tmp = ActiveCell.Value
MsgBox tmp
End Sub
Dim tmp
tmp = ActiveCell.Value
MsgBox tmp
End Sub
[スポンサードリンク]
例えば、「9:15:00」という時間データの入力されているセルがアクティブな状態で、上記のSubプロシージャを実行すると、下図のような結果となります。
「9:15:00」という時間データが、「0.385416666666667」と表示されています。
「vba メッセージボックス セルに入力されている時間を表示」
と検索なさった方は、セルに表示されている「9:15」と表示させる方法を探していらしたのでしょう。
アクティブセルに表示されているデータをメッセージボックスに表示するサンプルマクロ
以下のようなSubプロシージャにすれば、セルに表示されている形式でメッセージボックスが表示されます。
Sub アクティブセルの値を表示する2()
Dim tmp2
tmp2 = ActiveCell.Text
MsgBox tmp2
End Sub
Dim tmp2
tmp2 = ActiveCell.Text
MsgBox tmp2
End Sub
Range.Valueプロパティでは純粋な値が取得でき、Range.Textプロパティなら、セルに表示されている形式でデータを取得できます。
アクティブセルのデータをローカルウィンドウで確認するサンプルマクロ
「vba メッセージボックス セルに入力されている時間を表示」という検索への回答は、上記のとおり「Range.Textプロパティを使いましょう」ですが、Range.ValueプロパティとRange.Textプロパティで取得できるデータを、ローカルウィンドウで確認しておきましょう。
Sub アクティブセルのデータを確認する()
Dim tmp, tmp2
tmp = ActiveCell.Value
tmp2 = ActiveCell.Text
Stop
End Sub
Dim tmp, tmp2
tmp = ActiveCell.Value
tmp2 = ActiveCell.Text
Stop
End Sub
上記のSubプロシージャを実行すると、Stopステートメントでステップ実行になります。
メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示すると、下図のとおり、Range.ValueとRange.Textで取得したデータを確認できます。
[スポンサードリンク]
- Newer:Shape.TextFrame2.TextRange.Itemとは
- Older:リアル書店の在庫確認用リンク
Home » Excel VBA Rangeオブジェクト » 表示形式 » セルに入力されている時間をメッセージボックスに表示する