ラベル API の投稿を表示しています。 すべての投稿を表示
ラベル API の投稿を表示しています。 すべての投稿を表示

2010/04/29

Google Suggest の検索候補を取得する

Google の検索枠に文字を入力すると、↓のように検索キーワードの候補が表示されますが、これはGoogle サジェストという機能によって提供されています。

この機能は、Google Suggest API として一般に公開されているので手軽に利用できます。今回は、VBAでGoogle Suggest API のキーワード候補をA to Zで取得するループ文を組んでみます。

一旦、シート内のデータをクリアするので、作業中のブックでは実行しないように注意してください。


2010/04/28

VBAでユーザー名を取得する

Option Explicit

' ログイン名取得API '
Private Declare Function GetUserName Lib "ADVAPI32.dll" _
    Alias "GetUserNameA" _
    (ByVal IpBuffer As String, nSize As Long) As Long

' ログイン名を取得する '
Public Function GetUserID()

    Dim UserName As String
    Dim ReturnAPI As Long
    
    UserName = Space(20)
    
    ReturnAPI = GetUserName(UserName, Len(UserName))
    GetUserID = Left(UserName, InStr(1, UserName, Chr(0)) - 1)

End Function

' 取得したユーザー名をメッセージボックスに表示 '
Sub GetUserSample()
    MsgBox GetUserID()
End Sub

まず、GetUserName関数(API)のための宣言を行います。

次に、Functionプロシージャですが、最初にSpace関数でユーザー名を格納するためのバッファを20文字分確保します。取得したユーザー名の末には余分なNullが挿入されるので、Left関数でNullより左側を実際のユーザー名として抜き出しています。なお、"Chr(0)"はNullの意なので、"vbNullChar"としてもOKです。

最後にSubプロシージャのサンプルを付けていますが、ワークシート上でも、"=GetUserID()"とすればユーザー名を引くことができます。

2010/04/25

VBAの処理を一定時間停止する

Option Explicit
Private Declare Sub Sleep Lib "KERNEL32.dll" _
   (ByVal dwMilliseconds As Long)

Sub SleepSample()
   ' 2秒間処理を停止する場合 '
   Sleep 1000 * 2
End Sub

ポイントはスリープ関数(API)の宣言を行うことと、処理を停止する時間をミリ秒単位で指定することの二点です。

1000ミリ秒=1秒なので、例では "1000 * 停止したい秒数" としていますが、直接"Sleep 2000" と指定しても全く問題ありません。