2009年02月16日

ExcelでFTPクライアントを作ってみよう!

【ExcelでFTPクライアントを作ってみよう!】第一回

単にFTPクライアントを作るのでは面白くないので、パソコン内の各種情報を取得して、
その情報をサーバーへアップロードするような仕組みを作ってみたい思います。

一般的にVB(VBA)は入門編的な感じがしますが、Windows APIを駆使すれば
結構いろんなことができます。


今回第一回目は、まず自分のパソコンの情報をWindowsAPIを使って画面に
表示してみようと思います。

使うのは、ExcelでOKです。ExcelからもWindowsAPIは使えますし、ExcelVBAで結構な規模のシステムを
構築している会社だってあります。


それでは早速、パソコン内の情報を取得し画面に表示してみましょう。

1.自分の使っているパソコン名
2.ログオンしているユーザー名

1.パソコン名を表示
 使用するAPIは、GetComputerNameです。

 @以下の関数を宣言します。

  Public Declare Function GetComputerName Lib "kernel32" Alias
 "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

 AボタンをExcelに貼り付けてそのボタンに以下の処理を追記します。
 
    Dim Name As String
    Dim Leng As Long
    Dim ret As Long

    'バッファを確保
    Name = String(250, Chr(0))  ←文字列のバッファを確保します。API関数の処理結果が、このNameに返されます。
    Leng = Len(Name)       ←文字列の長さ

    ret = GetComputerName(Name, Leng) ←正常に終了した場合は、1が返ります。
 
    MsgBox "コンピュータ名は:" & Name & " です。"
   
それほど難しいことはありませんね。

それでは次に

2.ログオンしているユーザー名
 使用するAPIは、GetUserNameです。1.と同じような関数ですね。

 @以下の関数を宣言します。

 Public Declare Function GetUserName Lib "advapi32.dll" Alias
 "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long


 AボタンをExcelに貼り付けてそのボタンに以下の処理と追記します。
 
    Dim Name As String
    Dim Leng As Long
    Dim ret As Long

    'バッファを確保
    Name = String(250, Chr(0))  ←文字列のバッファを確保します。API関数の処理結果が、このNameに返されます。
    Leng = Len(Name)       ←文字列の長さ

    ret = GetUserName(Name, Leng) ←正常に終了した場合は、1が返ります。
 
    MsgBox "コンピュータ名は:" & Name & " です。"
   
   
次回第二回目は、使用しているWindowsのOSのバージョン情報についてのAPIをご紹介します。

posted by ラクサス at 18:02| Comment(0) | TrackBack(0) | 【プログラミング】Excel編 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。