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

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

Javaアプリケーションが実行できないときの対処法

とあるPCで、Internet ExplorerでもGoogle ChromeでもJavaアプリケーションが実行できないことがありました。

これまではセキュリティレベルを中にすることで大抵は解消されていましたが、それでもエラーが発生し実行できませんでした。

実際にエラーを確認したのはJava7 update55でしたが、これはどうやらJava7 update51から発生しているらしい。

対処法1

コントロールパネルからJavaのコントロールパネルを開く。
[セキュリティ]タブの例外サイト・リストにURLを追加する。

対処法2

同じくJavaのコントロールパネルを開く。
[詳細]タブにて「次世代のJava Plug-inを有効にする(ブラウザの再起動が必要)」のチェックを外す。

セキュリティの問題上、厳しくなってきているようです。
そのため、やみくもに許可していいというわけではありません。
信頼できるサイトのみ、許可するようにしましょう。

7,234 views

Outlookを利用してメール送信 [VBA]

ACCESSからOutlookを起動し、メールを送信することができます。
メール本文等にデータベースの内容などを引用して作成したい場合などに便利です。

【動作確認環境】
Windows XP & Microsof Office 2000
Windows7 & Microsoft Office 2010, 2013

まずは宣言

Dim oApp    As Object 'Outlookのオブジェクト
Dim objMAIL As Object 'メールのオブジェクト

Dim strMOJI As String '本文
Dim strSign As String '署名

Outlookを起動

オートメーションでOutlookを起動します。

Set oApp = CreateObject("Outlook.Application")

Outlook本体の画面も起動したいときは

Dim myNameSpace As Object
Dim myFolder    As Object

Set myNameSpace = oApp.GetNamespace("MAPI")

'規定のフォルダーを指定
Set myFolder = myNameSpace.GetDefaultFolder(6)
myFolder.Display  '表示

メールの作成

Set objMAIL = oApp.CreateItem(0)

objMAIL.Display '編集画面を表示

宛先を指定します。CC、Bccも可能です。
複数の宛先を;(セミコロン)で区切ることもできます。

objMAIL.To = mailTo
objMAIL.CC = mailcc
objMAIL.Bcc = mailbcc

続きを読む…»

84,895 views

小文字の「i」が大文字になってしまう問題 [ACCESS]

例えば、Softbankの「…@i.softbank.jp」というメールアドレスを打ったとき、
@の後のiが大文字になってしまう場合があります。

この問題を解決するにはオートコレクトの設定を変更します。

メニューの[ツール]-[オートコレクト]を開きます。

「入力中にオートコレクト」のチェックを外します。
これで「i」が大文字にならないようになります。

私はついでに以下の2つもチェックを外しています。

・2文字目を小文字にする [THe … → The …]
・文の先頭文字を大文字にする [the … → The …]

3,011 views

既定のプログラムで実行させる

ACCESSにてURLを指定しWEBページを開きたい場合、InternetExplorerのパスを指定して実行させることも可能ですが、ユーザーが設定している既定のブラウザで実行させることも可能です。
その場合は以下のようにします。

Dim ws As Object

Set ws = CreateObject("WScript.Shell")

ws.Run "http://www.yahoo.co.jp/", VbAppWinStyle.vbMaximizedFocus

このWScript.ShellのRunメソッドは、新しいプロセス内でプログラムを実行します。

ブラウザに限らず、他のプログラムでも応用することができます。
2番目の引数はウィンドウステータスを指定します。
主な設定例は以下の通りです。

VbAppWinStyle.vbHide 0
VbAppWinStyle.vbNormalFocus 1
VbAppWinStyle.vbMinimizedFocus 2
VbAppWinStyle.vbMaximizedFocus 3
VbAppWinStyle.vbNormalNoFocus 4
VbAppWinStyle.vbMinimizedNoFocus 6

また、上記では省略していますが、第3引数(bWaitOnReturn)にTRUEを指定すると、プログラムが終了するまでスクリプトの実行を待機します。

詳しくは参考URLをご覧ください。

参考URL
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx

6,898 views