Excel VBAを使ってCADソフトウェアを起動する方法と応用例

この記事では、ExcelのVBAを利用してCADソフトウェアを起動する方法について詳しく説明します。具体的なコード例とその解説、応用例を含めて、より実践的に利用するための方法を掘り下げていきます。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

Excel VBAを用いたCADソフトウェアの起動

ExcelのVBAを使って、外部のアプリケーションを起動することは、自動化の範疇でよく利用されます。ここではCADソフトウェアを起動する基本的なコードとその解説を行います。


Sub LaunchCAD()
    Dim objShell As Object
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "C:\Program Files\CADSoftware\CAD.exe"
    Set objShell = Nothing
End Sub

このコードでは、WScript.Shellオブジェクトを使用して、ローカルマシン上にインストールされているCADソフトウェアを起動しています。`objShell.Run`メソッドを使ってCADソフトウェアの実行ファイルのパスを指定して起動します。

応用例1:引数を与えてCADソフトウェアを起動

特定のファイルを開きたい場合や、特定のモードでソフトウェアを起動したい場合、引数を付与して起動することが可能です。


Sub LaunchCADWithArgs()
    Dim objShell As Object
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "C:\Program Files\CADSoftware\CAD.exe /open C:\path\to\file.dwg"
    Set objShell = Nothing
End Sub

このコードでは、`/open`の引数を付与して、特定のファイル`file.dwg`を開くようにCADソフトウェアを起動しています。

応用例2:複数のCADファイルを順番に開く

複数のCADファイルを順番に開きたい場合、以下のようにループを使用して開くことができます。


Sub LaunchMultipleCADFiles()
    Dim objShell As Object
    Dim filePaths() As String
    Dim i As Integer

    ' CADファイルのパスリスト
    filePaths = Split("C:\path\to\file1.dwg|C:\path\to\file2.dwg|C:\path\to\file3.dwg", "|")

    Set objShell = CreateObject("WScript.Shell")
    For i = LBound(filePaths) To UBound(filePaths)
        objShell.Run "C:\Program Files\CADSoftware\CAD.exe /open " & filePaths(i)
    Next i

    Set objShell = Nothing
End Sub

応用例3:起動したCADソフトウェアのウィンドウサイズや位置を調整する

CADソフトウェアを起動した後、特定のウィンドウサイズや位置に設定する場合、以下のように設定することができます。


Sub LaunchAndPositionCAD()
    Dim objShell As Object
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "C:\Program Files\CADSoftware\CAD.exe"
    
    ' 少し待つ
    Application.Wait Now + TimeValue("00:00:02")
    
    ' CADソフトウェアのウィンドウを検索して位置やサイズを調整
    ' この部分はCADソフトウェアのウィンドウ名やクラス名に応じて調整が必要
    ' 以下は一例としています
    objShell.AppActivate "CADSoftware - [Untitled]"
    objShell.SendKeys "%{SPACE}M{RIGHT}{DOWN}"
    objShell.SendKeys "%{SPACE}S{RIGHT}500{DOWN}400"

    Set objShell = Nothing
End Sub

このコードは、CADソフトウェアのウィンドウを検索し、特定の位置に移動し、特定のサイズに変更します。ウィンドウの検索や操作は`SendKeys`メソッドを使用して行いますが、これはあくまで一例であり、実際のソフトウェアのウィンドウ名やクラス名に応じて調整が必要です。

まとめ

ExcelのVBAを使ってCADソフトウェアを起動する基本的な方法から、さまざまな応用例を通じてより実践的な利用方法を学びました。これを機に、Excel VBAを利用したさらなる自動化の道を探求してみてはいかがでしょうか。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次