質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1843閲覧

VBA: Outlook予定表より取り込んだ時刻を24時間表記に変えたい

MacKimura

総合スコア15

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/07/09 03:06

Excel VBAにより、Microsoft Outlook予定表よりCSVへデータ取り込み後、
時刻を24h表記に修正するプログラムをVBAで作成しています。
(最終成果物は業務日報です)

下記csv取り込みデータ中、
時刻表記の「AM」/「PM」表記を除いた後、PMの12時間表記 --> 24時間表記へ変更したいのですが、
変更することができません。
コードをご確認頂きたく何卒よろしくお願いします。
※ 下記セル抜粋は、既にAM/PM表記を削除した後です。デフォルトのOutlookには「(文字列の時刻)AMorPM」の形で12時間表記されています。

◆csv --> エクセル取り込み済みセルの抜粋

日時開始時刻業務内容・結果
7月8日4:00議事録フォロー
7月8日12:00支店帰社
7月8日2:30日報作成

◆「開始時刻セル」書式の抜粋

イメージ説明

コード

Sub 時刻修正() Dim i As Long Dim itime As Variant Dim hr As Variant ActiveSheet.UsedRange.Select With Selection .Replace What:="AM", Replacement:="" .Replace What:="PM", Replacement:="" End With For i = 1 To AtEndOfStream = False itime = Range("B:B").Select If itime > CDate("1900/1/0 1:00:00") And itime < CDate("1900/1/0 7:00:00") Then hr = DateAdd("h", 12, itime) Debug.Print (hr) End If Next End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

イミディエイト画面でお試しください。

?format("4:00 PM","h:mm")

投稿2019/07/09 03:33

iruyas

総合スコア1067

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MacKimura

2019/07/09 04:48

iruyasさんの例文コードについて、イミディエイト画面ではうまく動作しました。 しかし、本題の変数に時刻(B列)をi=2~ 定義の上、24h表示への変更にトライしましたが、 うまくいっていません。
iruyas

2019/07/09 05:05

Option Explicit Sub 時刻修正() Dim Cell As Range For Each Cell In Range(Cells(2, "B"), Cells(Rows.Count, "B").End(xlUp)) Cell.Value = Format(Cell.Value, "h:mm") Next Cell End Sub
MacKimura

2019/07/09 05:13

アドバイスありがとうございます。 iruyasさんのシンプルなコードで一発、解決しました。 当方の躓きコードのどの点に問題あったか、考察いたします。 大変にありがとうございました。
guest

0

考え方のみの回答になりますが、
先にAM,PMを除いてしまうと、午前だったか午後だったか分からなくなるので
ループでどちらか確認し、24h表記に変換してから除いてはどうでしょうか。

つまり
セルにPMが含まれているか確認→PMを除いて+12h
それ以外(必ずどちらか入っているならこれでOKのはず)→AMを除いて時間調整なし

投稿2019/07/09 03:26

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MacKimura

2019/07/09 05:15

アドバイスありがとうございます。 上記コンセプトをコードにするも解決されず悩んでおりましたが、 別の回答者様のアドバイスにより、解決いたしました。 ありがとうございました。
m.ts10806

2019/07/09 05:18

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問