今回は、主に、システム管理者向けのノウハウをお伝えします。
といっても、かなり初級というか、初心者向けで、ノウハウというほどの情報は詰まっていませんが、知らない方向けに
「あっ、Excel でこんなことできるんだ!」
という気付きを得てもらえばいいかな、と思っています。
私も過去に、システムの運用部門にいたことがありますが、Windows だと、コマンドやスクリプトを知らなくても、GUI(グラフィカル・ユーザー・インターフェース)、つまり画面上のマウスとキー操作で、ほとんど作業できてしまう面があり、あえてそんなに使っていませんでした。
今になって、反省しています・・・
それではこれから、Excel VBA を使って、以下の PC の情報をボタンを押して、一発で取得する方法をご覧いただきます。
- ログインユーザー名
- コンピュータ名
- ドメイン名
- OS の詳細バージョン
Excel VBA とは
手抜きしているわけではありませんが、とても、分かりやすく説明している、以下のブログの記事がありますので、Excel VBA の説明は、そちらに委ねるとして、もう早速、本題に入っていきますね。エクセルVBA…まず何をしたら良いかわからない…!という声をよく耳にします。今回はVBAプログラミングをいざ書き始める直前の状態を目標に、エクセルVBAの最低限のセッティングの仕方についてお伝えします。
【Excel VBA】ボタン一発でPC情報取得(デモ)
上述した、PC の情報を取得する動きをこれからご覧入れます。↑ Excel を開いて、「PC情報取得」のボタンを押します。
↑ はい、一瞬で、PCの情報が取得できました。しかも正確に!
取得したい情報をもっと追加していけば、さらに便利になりますでしょ。
例えば、さらに自動化しようと思えば、以下のような処理も全自動で可能なわけです。
- ボタンを押した直後にファイルを保存
- イントラ内ならば、目的の共有ファイルサーバに保存
- ファイルを閉じる
VBA を記述したExcelファイルさえあれば、いつも決まった作業ならば特に、過不足なく、そして、正確に、PCの情報を保存しておけます。
【Excel VBA】VBA の記述内容
VBA の記述内容は、一から、自分で考えて、記述したのでなく、以下の2つのページから、パクって、編集しました!先人は、真似してマネして、成長していってるようですよ。それでイイんですと、教わっております。
実際のコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Option Explicit Sub PC情報取得() Dim WshNetworkObject As Object '---(1) Set WshNetworkObject = CreateObject("WScript.Network") '---(2) Cells(1, 1).Value = "ユーザー名" Cells(2, 1).Value = "コンピュータ名" Cells(3, 1).Value = "ドメイン名" With WshNetworkObject Cells(1, 2).Value = .UserName Cells(2, 2).Value = .ComputerName Cells(3, 2).Value = .UserDomain End With Dim Locator As Object Dim Service As Object Dim OsSet As Object Dim os As Object Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer Set OsSet = Service.ExecQuery("Select * From Win32_OperatingSystem") For Each os In OsSet Cells(4, 1).Value = "OSバージョン" Cells(4, 2).Value = os.Caption & " (" & os.Version & ")" Next os Set Service = Nothing Set OsSet = Nothing Set Locator = Nothing Set WshNetworkObject = Nothing End Sub |
VBA の記述・ボタンへの登録方法
上記のコードをExcel に貼り付けていきますので、まずExcel を開きましょう。↑ Excel の新規ファイルを開いて、Alt + F11 キーを押します。
↑ VBA のエディターが開きます。標準モジュールの画面がなければ、挿入します。
↑ [挿入]メニューから、「標準モジュール」を追加
↑ 上記のコードをコピーして貼り付け ↑ 貼り付けられました。
本来なら、各コードに一言、二言、注釈を入れるべきところですが、また別の機会に詳しく解説しますね。
貼り付け完了したら、また、Alt + F11 キーを押します。
↑ そうすると、元のワークシートに戻りますので、[開発]タブをクリックします。
※[開発]タブがなければ、最初にご紹介した、ブログの記事を参考に追加しましょう。
↑ [挿入]メニューから、フォームコントロールのボタン・アイコンをクリック
※Active コントロールのボタンは使いませんので、ご注意を!
↑ ボタンの大きさを調整して、適当なところに置きます。
すると、「マクロの登録」画面が開きますので、先ほどのモジュール名である、「PC情報取得」を選んでOK
↑ ボタンの名前も変更しましょう。
Ctrlキーを押したままだと、ボタンがクリックされずに選択できて、編集できますよ。
↑ ボタン押して、動作を確認しましょう。
↑ AとBの列、1行目から4行目までのセルに、取得した情報がちゃんと追加されます!
まとめ
Excel VBA を使って、PCの情報を取得するノウハウは、特にシステム管理者向けに、仕事を効率化するうえで、超重要ですし、私としても、優先的な命題として、取り組んでいきます。PC だけでなく、サーバーに対してももちろん使えますよ。
分かりやすく、より実用的な内容にしていきたいと思いますので、これからもよろしくお願いします!
The following two tabs change content below.
小松 英二
代表取締役 : 株式会社ワークスピーディー
ソニーの情報システム子会社で、5万人以上のユーザー向けの社内ヘルプデスクや、認証サーバ・メールサーバの運用を経験。その後、日本マイクロソフトや、レノボ・ジャパンで、大手法人営業のプリセールスSE を担い、ソフトウェアからハードウェアまで幅広い知識と経験を持つ。現在はIT企業、株式会社ワークスピーディーの代表取締役。
詳しくはこちら → プロフィール
最新記事 by 小松 英二 (全て見る)
- 英語の読み書きに役立つツール(ビジネス・仕事向け) - 2024年1月15日
- 【IVRy(アイブリ−】電話の自動応答をするクラウドサービス - 2022年5月5日
- 【iPhone】「ブック」アプリで倍速再生 - 2021年12月31日