Office関連

RSSの日付を変換するVBAマクロ

RSSから取得した日付(「Wed, 20 Dec 2017 00:02:41 +0000」のようなRFC-822形式)を【年/月/日 時間:分:秒】形式に変換する必要があったので、ScriptControl経由で処理するマクロを書いてみました。

Option Explicit

Public Sub Sample()
  Debug.Print ConvertDate("Wed, 20 Dec 2017 00:02:41 +0000")
End Sub

Private Function ConvertDate(ByVal dt As String) As String
'RFC 822形式の日付を変換
  Dim dtYear As String
  Dim dtMonth As String
  Dim dtDate As String
  Dim dtHours As String
  Dim dtMinutes As String
  Dim dtSeconds As String
  Dim ret As String
  Dim d As Object
  
  With CreateObject("ScriptControl")
    .Language = "JScript"
    .AddCode "function getDate(dt){return new Date(dt);}"
    Set d = .CodeObject.getDate(dt)
    dtYear = CallByName(d, "getFullYear", VbMethod)
    dtMonth = ZeroPadding(CLng(CallByName(d, "getMonth", VbMethod)) + 1, 2)
    dtDate = ZeroPadding(CallByName(d, "getDate", VbMethod), 2)
    dtHours = ZeroPadding(CallByName(d, "getHours", VbMethod), 2)
    dtMinutes = ZeroPadding(CallByName(d, "getMinutes", VbMethod), 2)
    dtSeconds = ZeroPadding(CallByName(d, "getSeconds", VbMethod), 2)
  End With
  ret = dtYear & "/" & dtMonth & "/" & dtDate & " " & dtHours & ":" & dtMinutes & ":" & dtSeconds
  ConvertDate = ret
End Function

Private Function ZeroPadding(ByVal str As String, _
                             ByVal digit As Long) As String
'ゼロ埋め
  ZeroPadding = Right(String(digit, "0") & str, digit)
End Function

上記の通りScriptControlを使用しているので、64ビット版のOfficeでは使えませんが、とりあえずこれで扱いやすい日付形式に変換することができました。

Visual Basic Advent Calendar 2017

Qiitaの「Visual Basic Advent Calendar 2017」に“Officeでも発表できるAdvent Calendar”とあったので、折角なので参加させていただくことにしました!
(大したネタでなくて申し訳ない・・・)

Office クリップボードをマクロで操作する(MSAA)前のページ

Trello APIを使ってカードを投稿するVBAマクロ次のページ

関連記事

  1. Office関連

    フォルダ(サブフォルダ含む)内の特定の拡張子のファイルに処理を行うVBAマクロ

    「Wordマクロ サブフォルダ ファイル処理」といったキーワードでのア…

  2. Office関連

    [OneNote]クリップボードから新しいページに貼り付け

    何かをメモするとき、ファイルを保存するとき等々、私はよくOneNote…

  3. アイコン一覧

    Office 2013 アイコン一覧(S)

    ・Office 2013 アイコン一覧 NUM…

  4. Office アドイン

    Visio JavaScript APIで遊んでみました。

    前回の記事でプレビュー版がリリースされた「Visio JavaScri…

  5. Office関連

    VBAでブラウザーを操作するSeleniumWrapperVBAの紹介

    Internet Explorerのサポートが終わり、VBAマクロから…

  6. Office アドイン

    [Officeアドイン]テーブルやグラフを作成する方法(Excel)

    お久しぶりのOffice アドインの記事です。注目している人はほと…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP