カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Outlookメッセージファイル(.msg)からデータを取り出す – VBA

Outlookのメッセージファイル(.msg)から送信元アドレスや件名、本文等のデータを取り出すことができます。
よくあるのは、受信トレイのメールからデータを取り出したりしますが、今回は任意の場所にコピーしたメッセージファイル(.msg)からデータを取り出す方法をご紹介します。

まずは宣言

Dim OL  As Object
Dim msg As Object

Outlookオブジェクトを生成

Set OL = CreateObject("Outlook.Application")

msgファイルを指定

strFileName = "c:\sample.msg"

メッセージファイルをオブジェクトに読み込む

Set msg = OL.CreateItemFromTemplate(strFileName)

各種データを取得します。

Debug.Print "SentOnBehalfOfName: " & msg.SentOnBehalfOfName
Debug.Print "SenderName: " & msg.SenderName
Debug.Print "ReceivedByName: " & msg.ReceivedByName
Debug.Print "ReceivedOnBehalfOfName: " & msg.ReceivedOnBehalfOfName
Debug.Print "ReplyRecipientNames: " & msg.ReplyRecipientNames
Debug.Print "To: " & msg.To
Debug.Print "CC: " & msg.CC
Debug.Print "BCC: " & msg.Bcc
Debug.Print "Subject: " & msg.Subject
Debug.Print "Body: " & msg.Body
Debug.Print "HTMLBody: " & msg.HTMLBody
'Debug.Print "Recipients: " & msg.Recipients
Debug.Print "SenderEmailAddress: " & msg.SenderEmailAddress

プロパティについてはMSDNを参照しましたが、Recipientsはプロパティが存在しないとエラーが発生したのでスキップしています。
続きを読む…»

71,168 views

座標から住所を取得 GoogleMapAPI Geocoder

GoogleMap APIを利用して、座標から住所を取得します。

まず、座標オブジェクトを作成します。

location = new google.maps.LatLng([latitude], [longitude]);

ジオコーダーオブジェクトのインスタンスを生成

geocoder = new google.maps.Geocoder();

google.maps.Geocoderクラスのgeocodeメソッドでリクエストを送信し、返ってきたレスポンスを処理するコールバック関数を指定します。
複数の答えが返ってくる場合があるので、結果は配列になっています。

返ってきた結果のフォーマット済の文字列を取得する例

if(geocoder)
{
    geocoder.geocode(
        {location: location},
        function(geo_result, geo_response)
        {
            if(geo_response == "OK") {

                var tmpadd = "";
                tmpadd = geo_result[0].formatted_address;

                alert("住所:" + tmpadd);

            } else {

                alert(geo_response + "\n\n変換できませんでした。");

            }
        }
    );
}

続きを読む…»

7,661 views

カスタムフィールドを追加し、常に投稿画面に表示させる – WordPress

記事を新規投稿する際、プラグインを使用せずカスタムフィールドの入力欄をデフォルトで表示させる、という方法があったのでご紹介します。
自作のオリジナルテーマであることが前提です。

テーマのfunctions.phpに記述します。

admin_menuアクションフックでカスタムボックスを定義
(管理画面メニューの基本構造が配置された後に実行する)

add_action('admin_menu', 'add_custom_fields');

また、add_meta_boxesアクションフックでも可能なようです。
(投稿編集画面が読み込まれた際に実行する(バージョン3.0以降))

add_action('add_meta_boxes', 'add_custom_fields');

投稿画面にカスタムフィールドを表示するカスタムセクションを追加

function add_custom_fields() {
    add_meta_box('my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'post');
}

固定ページ投稿画面に追加する場合は

add_meta_box('my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'page');

add_meta_box関数について 続きを読む…»

5,033 views

64bit版 Microsoft Officeについて

[Microsoft Outlookの個人用フォルダ(Outlook.pst)が開けなくなったとき]という記事で、
32bitのMicrosft Officeでは2GBを超えるファイルを扱うことができないと書きました。

では2GBを超えるファイルを扱うことはできないのでしょうか?
64bit版のMicrosoft Officeであれば扱うことができます。

ですが、以前Microsoftに32bit版と64bit版、どちらをインストールしてもいいのかと問い合わせしたことがあります。
担当者の解答は、64bit版は安定していないので32bit版をご使用ください、とのことでした。

ということで、現状は2GBを超えないように使ったほうが良いということですね。

3,819 views

VBAでWEBサーバーにHTTPリクエスト

MSXML2.XMLHTTPオブジェクトを利用してWEB上のデータを取得したり、PHP等のプログラムへデータを送信することができます。

ACCESS等で入力したデータをすぐにWEBに反映させたいとき等に便利です。

まずは宣言

Dim xmlHttp  as Object 'HTTPリクエストオブジェクト
Dim url      As String 'リクエストを送るURL
Dim strParam As String 'リクエストパラメータ
Dim strRes   As String '結果を受け取る変数

HTTPリクエスト用オブジェクトのバインド

Set xmlHttp = CreateObject("MSXML2.XMLHTTP")

・GET送信
リクエストするURLを指定

url = "http://www.example.jp/index.html"
With xmlHttp
    .Open "GET", url, False
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .Send
    strRes = .ResponseText
End With

続きを読む…»

55,590 views