VBAについて教えて下さい。

このQ&Aのポイント
  • VBAの基本的な知識や記述方法について教えてください
  • 特定のexcelファイルにユーザー名と日時を記録する方法を教えてください
  • VBAの学習において参考になる情報源や学習方法を教えてください
回答を見る
  • ベストアンサー

VBAについて教えて下さい。

VBAについて教えて下さい。 昨年度まで担当者として色々と処理を行なっていた人が転勤となり、今のところ不便はないのですが、今後の事を考えると少しでも知識をつけていきたいと感じています。現在利用しているVBAの記述に関しては、少しずつ色々と調べて解読?・理解をしていくつもりです。 そこでWinのVBA記述についてお聞きいたします。 特定のexcelファイルを使った人(ユーザー名)と日時を、特定のファイルに記録していきたいと考えています。日時をtxtファイルに記録(追記)する方法はネット等に出ていましたが、ユーザー名を記録する方法が分かりませんでした。※探し方が悪いのかもしれませんが・・・。 今のところVBA自体に関して殆ど分からない状態です。 お時間のある方、お時間の空いている時で結構ですので、何卒ご教授頂きたいと思います。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

下記を試してみてください。 '----------------------------- Sub Test()   Dim myUser   myUser = CreateObject("WScript.Network").UserName   MsgBox myUser End Sub '----------------------------- 以上です。  

その他の回答 (1)

  • markzein
  • ベストアンサー率0% (0/1)
回答No.1

こんな感じでしょうか。GetUserNameというWindowsAPIを使用します。 Private Declare Function GetUserName _ Lib "advapi32" Alias "GetUserNameA" _ (ByVal lpBuffer As String, _ nSize As Long) As Long Dim userId As String * 1024 Dim result As Long result = GetUserName(userId, Len(userID)) msgbox Left$(userID, InStr(userID, vbNullChar) - 1)

522923
質問者

補足

ご教授ありがとうございます。 Private Declare Function GetUserName _ Lib "advapi32" Alias "GetUserNameA" _ (ByVal lpBuffer As String, _ nSize As Long) As Long Dim userId As String * 1024 Dim result As Long result = GetUserName(userId, Len(userID))              ↑※ここの部分に対してエラーが出てしまいました。 msgbox Left$(userID, InStr(userID, vbNullChar) - 1) 正直この記述をどこで、どのように使用したらよいのかも分かりません。 こちらの知識不足です。本当に申し訳ありません。

関連するQ&A

  • Excel vba ファイルの移動について

    excelのvbaでファイルを管理するツールを作り始めました。vba自体初めて間もないのですが、ファイル移動に関してわからなかった点がありますので、質問させていただきます。 インターネットで調べたところ、固定のファイルを移動及びファイル名の変更をする場合には以下の記述でできそうなんですが、 ************************************************ Option Explicit Private Const cnsSOUR = "C:\AAA\SAMPLE1.txt" Private Const cnsDEST = "C:\BBB\SAMPLE2.txt" Sub MOVE_SAMPLE1() Name cnsSOUR As cnsDEST End Sub ************************************************** この"C:\AAA\SAMPLE1.txt"及び"C:\BBB\SAMPLE2.txt"を 変数で記述するとエラーになってしまい、プログラムが通りません。 何かいい方法がございましたら、ご教授ください。 過去の質問を調べてもいまいちわかりませんでした。

  • あるボタンを押すとtxtファイルができるVBA

    EXCEL VBA初心者です。 次のようなコードを探しています。 この週末、ググって調べようと思いますが、ご推奨の学習サイトあらば紹介いただくとうれしいです <機能要件> 1.特定のセルだけ入力ができる A1とします 2.1に入力ししたあと、ボタンを押すと  A1のはいった次の条件でのテキストファイルが生成される  ・ファイル名:yyyymmdd分秒.txt  ・ファイル名が重複された場合(n)が後につく(nは数字)  ・保存場所はC:\tempの下  ・ボタンを押した人からはファイルがどこに保存されたかわからない  ・VBAのコードはユーザから見えない 3.2の動作のあと、ありがとうございますなどのボックスが出て  クリックするとそのBookが強制終了される

  • EXCEL VBAからイントラネットにログイン

    イントラ内のファイルに対して命令を実行するマクロを作成したいと思っています。 イントラに入る為には、ユーザー名とパスワードが必要なのですが、VBAではどのように記述すればよいかわかりません。 どう記述すればいいのでしょうか?

  • ACCESSのVBAで・・・

    Access2000のVBAで質問があります。 ある特定のフォルダ内のファイル名をコンボボックスのリスト(RowSource)内に入れたいのですが、方法がわかりません。 どなたか分かる人がいらっしゃいましたらご教授願います。

  • アクセス2003・VBA

    アクセス2003を使っています。 アクセスのVBAを使って下記のやり方を教えて下さい。 (1)ファイル名を指定して、エクセルファイルを開く。 (VBA構文上でファイル名を入力し、固定するのではなく、そのVBAを実行すると、ファイルをダイアログで選択する方法です。) (2)その開いたファイルで2行目からデータが入っている行までをコピーし、そのVBAを実行しているアクセスファイルの特定のテーブルに貼り付ける。 上記の方法がお分かりの方、是非教えて下さい。 よろしくお願いします。

  • VBA:ファイルプロパティの一部を取得したい。

    撮った写真の撮影日をファイル名にしようと考えています。カメラはキャノンで、ファイルプロパティの[概要]タブに詳細なプロパティが記述されており、そのなかに[カメラの撮影日]があります。それを取得したいのですがどうすればできるのでしょうか?あくまで撮影日で、作成日時とは違います。ファイルをコピーすると作成日時は変わってしまいあてにならないからです。VBA(エクセル)での操作でしかわからないので、VBA仕様でお答えいただければ助かります。

  • EXCELでのVBAでダイアログボックスの表示方法

    EXCELで簡単なVBAを作成しています。単純に特定のファイルを読み込み 書式設定を変更して印刷をかけるだけのものなのですが、 この変更したEXCELデータをフォルダやファイル名を使用者側で指定できるよう、ダイアログボックスを使用したいと思っていますが、 VBAの記述方法がわかりません。どうかよろしくご指導お願いします!

  • VBAからファイルをセル入力から開く方法

    VBAからファイルをセル入力から開く方法 だれかご教授頂けませんでしょうか?VBAからエクセルファイルを開こうとしています。 そこでシート1のA1セルにファイル名を記述してあり、そのファイル名からファイルを開く事は出来ますでしょうか? 何か良い方法がありましたら教えて頂きたいのですが。

  • CSVデータを用いた日数計算

    perlにてcsvファイルの値(日時)を抜き出して計算したいと思っています。 csvの内容は以下のようになっています。 user1,2022/2/28 21:02,2022/2/28 22:37 user2,2022/2/28 23:55,2022/2/29 23:55 user3,2022/2/28 23:51,2022/3/1 0:19 ユーザー名、ジョブ開始日時、ジョブ終了日時という順番で値が並んでいます。 この中で特定ユーザーのジョブ実行時間を抜き出し、計算させたいと考えています。 「ジョブ終了日」から「ジョブ開始日」を引いて、実行時間を出力するには、 どのような記述が必要でしょうか? どうか、よろしくお願いいたします。

  • EXCEL 2003のVBAでテキストファイルの取り込み方

    EXCEL 2003のVBAでテキストファイルの取り込み方 EXCEL 2003のVBAでテキストファイルのみをとりこむものを組もうと思います。 - 読み込むテキストファイル名は一定の決まりがあります。AAxxxx.txt あるいは ZZxxx.txt といった感じで先頭文字はAAまたはZZで中のxxxは数字の可変(日付)です。 - Directoryはどこに入るか決まりがありません。(このマクロを使用するユーザーがどこのDirectoryにテキストファイルを保存しているかわからないため) FILEN = Application.GetOpenFilename If FILEN = False Then Exit Sub End If Workbooks.OpenText Filename:=FILEN でやると、Directoryの問題は解決しますが、テキストファイル名を絞り込めません いい方法をご教示いただければ助かります。

専門家に質問してみよう