
No.7ベストアンサー
- 回答日時:
No.3です。
>→ Split関数も既に試しているのですが、上記が原因(多分)でデータの抽出はできませんでした。
多分ですがセルのRangeのプロパティを省略したか、或いは『 .Value 』を用いたのでしょう。
そうすると日付型になり文字列として認識しないのでSplitは失敗します。
どのようにデータを取得したいのかはわかりませんが、No.3のコードではプロパティは『 .Text 』を用いており『セルに表示されている文字列』と
言う扱いでSplitしてますので、こちらの検証では問題になってはいません。
めぐみん_さん、ご丁寧な対応、感謝します。
前回、試した時には『 .Text 』を入れていませんでした。
これを追加する事で問題が解決しました。
有り難うございました。
No.4
- 回答日時:
こんばんは。
>表示形式が「標準」だと、その文字列は時刻と判断されてしまう
のを避けるのでしたら、
分
=MINUTE(TIMEVALUE("0:"&TEXT($A1,"h:m")))
秒
=SECOND(TIMEVALUE("0:"&TEXT($A1,"h:m")))
//
VBAでしたら、
Sub Test1()
Dim varTime As Variant
Dim myTime As Variant
Dim min As Long
Dim sec As Long
varTime = ActiveCell.Text
If Len(varTime) - Len(Replace(varTime, ":", "", , , 1)) = 1 Then
myTime = TimeValue("0:" & varTime)
min = Minute(myTime)
sec = Second(myTime)
ActiveCell.Offset(, 1).Resize(, 2).Value = Array(min, sec)
End If
End Sub
ご参考まで
WindFallerさん、具体例を挙げて頂き感謝申し上げます。
めぐみん_さん(No.7)のアドバイスで一旦解決したのですが、後学の為、頂いたサンプルも試してみたいと思います。
有り難うございました。
No.3
- 回答日時:
得点結果が欲しいのではなくて?
Split関数で":"を区切り文字としたら?
セルA1の表示が 4:01 とした場合
Sub megu()
Dim v As Variant
v = Split(Range("A1").Text, ":")
MsgBox (Val(v(0)) & "-------" & Val(v(1)))
End Sub
めぐみん_さん、回答、有り難うございました。
|得点結果が欲しいのではなくて?
→ その通りなのですが、元データに “:” が含まれている為に、これが自動的に時刻表示に変換されてしまうようでその扱いに困っています。
|Split関数で":"を区切り文字としたら?
→ Split関数も既に試しているのですが、上記が原因(多分)でデータの抽出はできませんでした。
No.2
- 回答日時:
表示形式が「標準」だと、その文字列は時刻と判断されてしまうのが原因です。
コピペするセルの表示形式を「文字列」にしてください。
セルを右クリック→セルの書式設定→表示形式
対象のセルをA1とすると左右文字列の取得は以下となります。
左 =LEFT(A1,FIND(":",A1)-1)
右 =RIGHT(A1,LEN(A1)-FIND(":",A1))
siffon9さん、回答を有り難うございました。
|表示形式が「標準」だと、その文字列は時刻と判断されてしまうのが原因です。
|コピペするセルの表示形式を「文字列」にしてください。
→ 実はこれも既に試しているのですが、 4:01 に対してこれを実行すると、セル内、数式窓内ともに 0.167361111111111 という値になってしまい、目的の値を抽出できなかったので質問した次第です。
No.1
- 回答日時:
そもそも時間として入力すると23:59までしか入力できませんが、
そこは問題ないですかね?
問題ないとして、左側の時にあたる部分は「hour」、右側の分にあたる部分は「minute」
関数で抜き出すことができます。
ちなみにVBAでもできますが、普通にExcelのワークシート上でも使えます。
早速の回答、有り難うございました。
|そもそも時間として入力すると23:59までしか入力できませんが、
|そこは問題ないですかね?
→ 抽出対象のデータは 23 以下ですので問題ありません。
|問題ないとして、左側の時にあたる部分は「hour」、右側の分にあたる部分は「minute」関数で抜き出すことができます。
|ちなみにVBAでもできますが、普通にExcelのワークシート上でも使えます。
→ ご指摘の関数はいずれも知りませんでした。
そこで、Hour("4:01:00") のようにしてみたのですが、当該セルには 0:00、数式窓には 1900/1/4 0:00:00 と表示されてしまいました。
関数の使い方に問題があると思いますので、宜しければこの点をご指導下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
CellEnterイベント仕様について
-
特定の色のついたセルを削除
-
複数指定セルの可視セルのみを...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA ダブルクリックし...
-
Excel UserForm の表示位置
-
エクセルVBA 配列からセルに「...
-
CSVファイルを読み込んだらセル...
-
マクロ初心者です。 マクロで範...
-
オートフィルのマクロ
-
DataGridViewでグリッド内に線...
-
ExcelVBAに関する質問
-
【VBA】【ユーザーフォーム_Lis...
-
エクセル、マクロで番号を読込...
-
SPREAD.netで選択セルの合計を...
-
入力規則のリスト選択
-
-1 のセルだけ色付け
-
「Spread」のセルを移動させる...
-
C# DataGridViewで複数選択した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excel UserForm の表示位置
-
特定の色のついたセルを削除
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
【VBA】【ユーザーフォーム_Lis...
-
VBA:日付を配列に入れ別セルに...
-
複数指定セルの可視セルのみを...
-
C# DataGridViewで複数選択した...
-
【Excel VBA】マクロで書き込ん...
-
データグリッドビューの結合セ...
-
DataGridViewのフォーカス遷移...
-
Excel 範囲指定スクショについ...
-
【Excel VBA】一番右端セルまで...
-
EXCEL VBA 文中の書式ごと複写...
-
【VBA】写真の貼り付けコードが...
-
QRコード作成マクロについて
-
入力規則のリスト選択
-
CellEnterイベント仕様について
-
エクセル、マクロで番号を読込...
おすすめ情報