0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Excel + VBA + バッチファイルでセットアップ作業の自動化をやってみる

Posted at

概要

なんかのソフトをインストールする際に、手でやる作業を自動化し、時間短縮&ミス防止を図ってみる。
Excelで設定値、実行日時等を管理。ボタンを押したら、VBA or バッチファイル実行など。

IPアドレス取得

Sub IPアドレス取得_Click()
'
' IP アドレス取得
'   WMI を用いて IP アドレスを取得
'
    Dim NetAdapters, objNic, strIPAddress
    Set NetAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") _
                           .ExecQuery("Select * from Win32_NetworkAdapterConfiguration " & _
                           "Where (IPEnabled = TRUE)")
     'ネットワークアダプターが複数ある場合、複数IPが割り当てられている場合は最初のみ取得
    For Each objNic In NetAdapters
        For Each strIPAddress In objNic.IPAddress
            GetIPAddress = strIPAddress
            Range("B4").Value = GetIPAddress
            Exit Sub
        Next
    Next
End Sub

参考: http://mt-soft.sakura.ne.jp/kyozai/excel_vba/300_vba_kiso/70_getinfo/index.htm

ホスト名取得

Sub ホスト名取得_Click()
    Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork
    Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork
      
    Range("B7").Value = WshNetworkObject.ComputerName
    
    Set WshNetworkObject = Nothing
   
End Sub

参考: https://www.moug.net/tech/exvba/0150087.html

hostsファイルへの追記

Sub hostsファイル編集_Click()

    Dim ret As Long

    ' hostsファイルを退避してリネーム
    FileCopy "C:\Windows\System32\drivers\etc\hosts", "C:\Users\81806\Desktop\host_bak"
    ' 退避したファイルから編集用のファイルを作成
    FileCopy "C:\Users\81806\Desktop\host_bak", "C:\Users\81806\Desktop\host_edit"
    ' 編集用のファイルに、IPアドレスとホスト名の組み合わせを追記
    Open "C:\Users\81806\Desktop\host_edit" For Append As #1
        Print #1, Range("B4") & "             " & Range("B7")
    Close #1
    
    ' hostsファイルを置き換え
    If Dir("C:\Work\Test.txt") <> "" Then
        ret = MsgBox("同名のファイルが存在します。" & vbCrLf & _
                  "上書きしますか?", vbYesNo)
        If ret = vbNo Then Exit Sub
    End If
    FileCopy "C:\Tmp\Test.txt", "C:\Work\Test.txt"

End Sub

UAC無効

deleteUac.bat
@echo off
  reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t REG_DWORD /d "0" /f
  reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t REG_DWORD /d "0" /f
  reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t REG_DWORD /d "1" /f
  pause
exit

参考: https://www.atmarkit.co.jp/ait/articles/1810/25/news017.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?